# HG changeset patch # User Nicolas Dumazet # Date 1258596361 -32400 # Node ID 8939900073a8864482daba22ff641a5be65610d2 # Parent be574a37a8ae8ae1d0ef3e79f61bc2594f9f7df0 inotify: improve error messages * prefix messages by inotify-(client|server) * make sure that all warning and abort messages use the same format. * in the case where inotify.sock is an old broken symlink, say so and abort instead of trying to overwrite the already existing link diff -r be574a37a8ae -r 8939900073a8 hgext/inotify/client.py --- a/hgext/inotify/client.py Wed Nov 18 22:23:11 2009 -0500 +++ b/hgext/inotify/client.py Thu Nov 19 11:06:01 2009 +0900 @@ -27,8 +27,8 @@ autostart = self.ui.configbool('inotify', 'autostart', True) if err[0] == errno.ECONNREFUSED: - self.ui.warn(_('(found dead inotify server socket; ' - 'removing it)\n')) + self.ui.warn(_('inotify-client: found dead inotify server ' + 'socket; removing it\n')) os.unlink(os.path.join(self.root, '.hg', 'inotify.sock')) if err[0] in (errno.ECONNREFUSED, errno.ENOENT) and autostart: self.ui.debug('(starting inotify server)\n') @@ -41,20 +41,20 @@ # inotify server while this one was starting. self.ui.debug(str(inst)) except Exception, inst: - self.ui.warn(_('could not start inotify server: ' - '%s\n') % inst) + self.ui.warn(_('inotify-client: could not start inotify ' + 'server: %s\n') % inst) else: try: return function(self, *args) except socket.error, err: - self.ui.warn(_('could not talk to new inotify ' - 'server: %s\n') % err[-1]) + self.ui.warn(_('inotify-client: could not talk to new ' + 'inotify server: %s\n') % err[-1]) elif err[0] in (errno.ECONNREFUSED, errno.ENOENT): # silently ignore normal errors if autostart is False self.ui.debug('(inotify server not running)\n') else: - self.ui.warn(_('failed to contact inotify server: %s\n') - % err[-1]) + self.ui.warn(_('inotify-client: failed to contact inotify ' + 'server: %s\n') % err[-1]) self.ui.traceback() raise QueryFailed('inotify query failed') @@ -97,7 +97,8 @@ version = ord(cs.read(1)) except TypeError: # empty answer, assume the server crashed - self.ui.warn(_('received empty answer from inotify server')) + self.ui.warn(_('inotify-client: received empty answer from inotify ' + 'server')) raise QueryFailed('server crashed') if version != common.version: diff -r be574a37a8ae -r 8939900073a8 hgext/inotify/server.py --- a/hgext/inotify/server.py Wed Nov 18 22:23:11 2009 -0500 +++ b/hgext/inotify/server.py Thu Nov 19 11:06:01 2009 +0900 @@ -691,9 +691,13 @@ self.sock.bind(self.sockpath) except socket.error, err: if err[0] == errno.EADDRINUSE: - raise AlreadyStartedException(_('could not start server: %s') - % err[1]) + raise AlreadyStartedException( _('cannot start: socket is ' + 'already bound')) if err[0] == "AF_UNIX path too long": + if os.path.islink(self.sockpath) and \ + not os.path.exists(self.sockpath): + raise util.Abort('inotify-server: cannot start: ' + '.hg/inotify.sock is a broken symlink') tempdir = tempfile.mkdtemp(prefix="hg-inotify-") self.realsockpath = os.path.join(tempdir, "inotify.sock") try: @@ -706,8 +710,9 @@ pass os.rmdir(tempdir) if inst.errno == errno.EEXIST: - raise AlreadyStartedException(_('could not start server: %s') - % inst.strerror) + raise AlreadyStartedException(_('cannot start: tried ' + 'linking .hg/inotify.sock to a temporary socket but' + ' .hg/inotify.sock already exists')) raise else: raise @@ -841,7 +846,7 @@ try: self.master = master(ui, dirstate, root, timeout) except AlreadyStartedException, inst: - raise util.Abort(str(inst)) + raise util.Abort("inotify-server: %s" % inst) def run(self): try: diff -r be574a37a8ae -r 8939900073a8 tests/test-inotify --- a/tests/test-inotify Wed Nov 18 22:23:11 2009 -0500 +++ b/tests/test-inotify Thu Nov 19 11:06:01 2009 +0900 @@ -33,6 +33,10 @@ # let the daemon finish its stuff sleep 1 + +echo % cannot start, already bound +hg inserve + # issue907 hg status echo % clean diff -r be574a37a8ae -r 8939900073a8 tests/test-inotify-issue1208.out --- a/tests/test-inotify-issue1208.out Wed Nov 18 22:23:11 2009 -0500 +++ b/tests/test-inotify-issue1208.out Thu Nov 19 11:06:01 2009 +0900 @@ -1,7 +1,7 @@ % fail -abort: could not start server: File exists -could not talk to new inotify server: No such file or directory -abort: could not start server: File exists +abort: inotify-server: cannot start: .hg/inotify.sock is a broken symlink +inotify-client: could not talk to new inotify server: No such file or directory +abort: inotify-server: cannot start: .hg/inotify.sock is a broken symlink % inserve % status ? hg.pid diff -r be574a37a8ae -r 8939900073a8 tests/test-inotify.out --- a/tests/test-inotify.out Wed Nov 18 22:23:11 2009 -0500 +++ b/tests/test-inotify.out Thu Nov 19 11:06:01 2009 +0900 @@ -10,6 +10,8 @@ 8 files updated, 0 files merged, 0 files removed, 0 files unresolved M a % inserve +% cannot start, already bound +abort: inotify-server: cannot start: socket is already bound ? hg.pid % clean C a