[Hamara-devel] libraries for retrying and giving failure notices to users.
shirish
shirish at hamaralinux.org
Wed Jun 3 16:54:02 BST 2015
Hi all,
TL;DR - Rant about using software libraries to retry when a network
service goes down (that is not thought or used much) as well as giving
proper reasons when a failure does occur. Do have a tip for Aparna to
add to the battery of tests whenever she starts doing that.
Just like today I have been having a hell day in getting my net working
and getting IRC disconnected and connected number of times.
Latest example via cli :-
─[$] quassel
No DockManager available
("QIBASE", "QSQLITE", "QSQLITE2", "QMYSQL3", "QMYSQL", "QODBC3",
"QODBC", "QPSQL7", "QPSQL", "QTDS7", "QTDS")
2015-06-03 20:59:23 Info: SQLite Storage Backend is ready. Quassel
Schema Version: 17
2015-06-03 20:59:23 Info: Restoring previous core state...
InputWidget::updateNickSelector(): can't find Identity for Network 14
IdentityId: 0
Could not connect to Freenode (The TLS/SSL connection has been closed)
Could not connect to Freenode (The TLS/SSL connection has been closed)
Could not connect to Freenode (The remote host closed the connection)
Could not connect to Gimpnet (The remote host closed the connection)
Could not connect to Freenode (The remote host closed the connection)
SignalProxy::handleInitRequest() received initRequest for unregistered
Object: "IrcUser" "2/Riastradh"
Could not connect to EFnet (The remote host closed the connection)
Could not connect to EFnet (The remote host closed the connection)
UserId: 1 Network: "EFnet" missed 1 pings. BA: 0 BTW: 0
Could not connect to EFnet (Connection timed out)
I am sure you must have faced such problems as well. This is a reality
which we face in India almost daily and more frequently than probably
others.
I had come across three and more libraries for the same :-
https://pypi.python.org/pypi/retrying
https://github.com/ajalt/fuckitpy
https://pypi.python.org/pypi/redo
Now while the above are more about retrying I have also seen various
network services where the client doesn't get any information if the
network has failed.
I have literally wasted days and weeks when such weirdness happens,
hunting down where the issue failed and at times found much to my
chagrin unable to do something about it other than to work-around or
just give up the service. Sometimes big brother censorship, blacklisting
of countries, domains has also played part in accessing network services
as well. TOR has made things a little bearable but even that is a
workaround as well.
This is an issue not just in commercial software but also in free
software. While I have raised bugs in past and have been somewhat
moderately successful in also asking the developers to have such network
failures known to users in a user-friendly manner.
I have said 'moderately successful' because for many developers who are
in first world this isn't a problem they have and for some reason isn't
in their consciousness.
I know this is a rant borne out of today's frustrations with IRC and
network in general but this is an important test which I hope Aparna
takes care to include in the battery of unit tests for various softwares
that she will be doing. That would be very important as failures are
bound to happen and there will be lot of times when fixing the issue
might not have a straight-forward answer.
For e.g. I have seen the resistance to change in many people (including
self) because even though we may be dissatisfied with the current
service provider, we don't know how good or bad the other service
provider would be.
Looking forward to feedback.
--
Regards,
Shirish Agarwal,
Community Lead,
Hamaralinux.org
More information about the Hamara-devel
mailing list