[Bug 1190986] Re: ERROR Nonce already used

Greg Lutostanski 1190986 at bugs.launchpad.net
Fri Aug 29 20:05:27 UTC 2014


** Description changed:

+ 
+ SRU for secondary fix (branch lp:~julian-edwards/maas/nonce-fix-bug-1190986)
+ [Impact]
+  * Minimize possibility of hitting a nonce collision by using a longer nonce (uuid4) in both python-maas-client and commissioning scripts.
+ 
+ [Testcase]
+  * Do some api calls and make sure that the piston_nonce postgres table is using the larger uuid nonce for the calls
+ 
+ [Regression Potential]
+  * Minimal; replace random string of length 8 with uuidgen.
+ 
+ 
  The error below happens sometimes. (~5% of all requests fail)
  
  System: Ubuntu 12.04.2
  MAAS-version: 1.2+bzr1373+dfsg-0ubuntu1~12.04.1
  Juju-version: 0.7+bzr628+bzr631~precise1
  
  $ juju status
  2013-06-14 13:59:36,213 INFO Connecting to environment...
  2013-06-14 13:59:36,295 ERROR Cannot connect to environment: Nonce already used: 55941407
  Traceback (most recent call last):
-   File "/usr/lib/python2.7/dist-packages/juju/providers/common/connect.py", line 43, in run
-     client = yield self._internal_connect(share)
-   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1037, in _inlineCallbacks
-     result = result.throwExceptionIntoGenerator(g)
-   File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
-     return g.throw(self.type, self.value, self.tb)
-   File "/usr/lib/python2.7/dist-packages/juju/providers/common/connect.py", line 59, in _internal_connect
-     candidates = yield self._provider.get_zookeeper_machines()
-   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1037, in _inlineCallbacks
-     result = result.throwExceptionIntoGenerator(g)
-   File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
-     return g.throw(self.type, self.value, self.tb)
-   File "/usr/lib/python2.7/dist-packages/juju/providers/common/findzookeepers.py", line 32, in find_zookeepers
-     machine = yield provider.get_machine(instance_id)
-   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1037, in _inlineCallbacks
-     result = result.throwExceptionIntoGenerator(g)
-   File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
-     return g.throw(self.type, self.value, self.tb)
-   File "/usr/lib/python2.7/dist-packages/juju/providers/maas/provider.py", line 125, in get_machines
-     instances = yield self.maas_client.get_nodes(instance_ids)
-   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 545, in _runCallbacks
-     current.result = callback(current.result, *args, **kw)
-   File "/usr/lib/python2.7/dist-packages/juju/providers/maas/maas.py", line 95, in _process_error
-     raise ProviderError(error.response)
+   File "/usr/lib/python2.7/dist-packages/juju/providers/common/connect.py", line 43, in run
+     client = yield self._internal_connect(share)
+   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1037, in _inlineCallbacks
+     result = result.throwExceptionIntoGenerator(g)
+   File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
+     return g.throw(self.type, self.value, self.tb)
+   File "/usr/lib/python2.7/dist-packages/juju/providers/common/connect.py", line 59, in _internal_connect
+     candidates = yield self._provider.get_zookeeper_machines()
+   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1037, in _inlineCallbacks
+     result = result.throwExceptionIntoGenerator(g)
+   File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
+     return g.throw(self.type, self.value, self.tb)
+   File "/usr/lib/python2.7/dist-packages/juju/providers/common/findzookeepers.py", line 32, in find_zookeepers
+     machine = yield provider.get_machine(instance_id)
+   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 1037, in _inlineCallbacks
+     result = result.throwExceptionIntoGenerator(g)
+   File "/usr/lib/python2.7/dist-packages/twisted/python/failure.py", line 382, in throwExceptionIntoGenerator
+     return g.throw(self.type, self.value, self.tb)
+   File "/usr/lib/python2.7/dist-packages/juju/providers/maas/provider.py", line 125, in get_machines
+     instances = yield self.maas_client.get_nodes(instance_ids)
+   File "/usr/lib/python2.7/dist-packages/twisted/internet/defer.py", line 545, in _runCallbacks
+     current.result = callback(current.result, *args, **kw)
+   File "/usr/lib/python2.7/dist-packages/juju/providers/maas/maas.py", line 95, in _process_error
+     raise ProviderError(error.response)
  ProviderError: Nonce already used: 55941407
  2013-06-14 13:59:36,297 ERROR Nonce already used: 55941407
  
  I think the problem is caused by the MAAS-database table "piston_nonce"
  In my system this table contains a hughe amount of tokens that are never deleted:
  maasdb=# SELECT count(id) FROM piston_nonce;
-   count  
+   count
  ---------
-  3619099
+  3619099
  (1 row)

** Summary changed:

- ERROR Nonce already used
+ [SRU] ERROR Nonce already used

-- 
You received this bug notification because you are a member of Ubuntu
Server Team, which is subscribed to juju in Ubuntu.
https://bugs.launchpad.net/bugs/1190986

Title:
  [SRU] ERROR Nonce already used

To manage notifications about this bug go to:
https://bugs.launchpad.net/juju-core/+bug/1190986/+subscriptions



More information about the Ubuntu-server-bugs mailing list