[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