[tahoe-lafs-trac-stream] [tahoe-lafs] #1418: "cannot convert float NaN to integer" in next_power_of_k

tahoe-lafs trac at tahoe-lafs.org
Tue Jun 14 04:13:29 PDT 2011


#1418: "cannot convert float NaN to integer" in next_power_of_k
---------------------+---------------------------
 Reporter:  rycee    |          Owner:  nobody
     Type:  defect   |         Status:  new
 Priority:  major    |      Milestone:  undecided
Component:  unknown  |        Version:  1.8.2
 Keywords:           |  Launchpad Bug:
---------------------+---------------------------
 While performing a backup just a few minutes ago, I got the following
 exception:

 {{{
 Traceback (most recent call last):
   File "/home/rycee/bin/allmydata-tahoe-1.8.2/support/bin/tahoe", line 9,
 in <module>
     load_entry_point('allmydata-tahoe==1.8.2', 'console_scripts',
 'tahoe')()
   File "/home/rycee/bin/allmydata-
 tahoe-1.8.2/src/allmydata/scripts/runner.py", line 113, in run
     rc = runner(sys.argv[1:], install_node_control=install_node_control)
   File "/home/rycee/bin/allmydata-
 tahoe-1.8.2/src/allmydata/scripts/runner.py", line 99, in runner
     rc = cli.dispatch[command](so)
   File "/home/rycee/bin/allmydata-
 tahoe-1.8.2/src/allmydata/scripts/cli.py", line 540, in backup
     rc = tahoe_backup.backup(options)
   File "/home/rycee/bin/allmydata-
 tahoe-1.8.2/src/allmydata/scripts/tahoe_backup.py", line 325, in backup
     return bu.run()
   File "/home/rycee/bin/allmydata-
 tahoe-1.8.2/src/allmydata/scripts/tahoe_backup.py", line 118, in run
     new_backup_dircap = self.process(options.from_dir)
   File "/home/rycee/bin/allmydata-
 tahoe-1.8.2/src/allmydata/scripts/tahoe_backup.py", line 188, in process
     childcap = self.process(childpath)
   File "/home/rycee/bin/allmydata-
 tahoe-1.8.2/src/allmydata/scripts/tahoe_backup.py", line 188, in process
     childcap = self.process(childpath)
   File "/home/rycee/bin/allmydata-
 tahoe-1.8.2/src/allmydata/scripts/tahoe_backup.py", line 188, in process
     childcap = self.process(childpath)
   File "/home/rycee/bin/allmydata-
 tahoe-1.8.2/src/allmydata/scripts/tahoe_backup.py", line 188, in process
     childcap = self.process(childpath)
   File "/home/rycee/bin/allmydata-
 tahoe-1.8.2/src/allmydata/scripts/tahoe_backup.py", line 194, in process
     childcap, metadata = self.upload(childpath)
   File "/home/rycee/bin/allmydata-
 tahoe-1.8.2/src/allmydata/scripts/tahoe_backup.py", line 305, in upload
     raise HTTPError("Error during file PUT", resp)
 allmydata.scripts.common_http.HTTPError: Error during file PUT: 500
 Internal Server Error
 }}}

 The remote exception was:
 {{{
 Traceback (most recent call last):
 Failure: foolscap.tokens.RemoteException: <RemoteException around
 '[CopiedFailure instance: Traceback from remote host -- Traceback (most
 recent call last):
   File "/home/rycee/allmydata-tahoe-1.8.2/support/lib/python2.6/site-
 packages/foolscap-0.6.1-py2.6.egg/foolscap/call.py", line 674, in _done
     self.request.complete(res)
   File "/home/rycee/allmydata-tahoe-1.8.2/support/lib/python2.6/site-
 packages/foolscap-0.6.1-py2.6.egg/foolscap/call.py", line 60, in complete
     self.deferred.callback(res)
   File "/home/rycee/allmydata-tahoe-1.8.2/support/lib/python2.6/site-
 packages/Twisted-10.2.0-py2.6-linux-i686.egg/twisted/internet/defer.py",
 line 361, in callback
     self._startRunCallbacks(result)
   File "/home/rycee/allmydata-tahoe-1.8.2/support/lib/python2.6/site-
 packages/Twisted-10.2.0-py2.6-linux-i686.egg/twisted/internet/defer.py",
 line 455, in _startRunCallbacks
     self._runCallbacks()
 --- <exception caught here> ---
   File "/home/rycee/allmydata-tahoe-1.8.2/support/lib/python2.6/site-
 packages/Twisted-10.2.0-py2.6-linux-i686.egg/twisted/internet/defer.py",
 line 542, in _runCallbacks
     current.result = callback(current.result, *args, **kw)
   File "/home/rycee/allmydata-
 tahoe-1.8.2/src/allmydata/immutable/upload.py", line 924, in
 locate_all_shareholders
     num_segments, n, k, desired)
   File "/home/rycee/allmydata-
 tahoe-1.8.2/src/allmydata/immutable/upload.py", line 225, in
 get_shareholders
     None)
   File "/home/rycee/allmydata-
 tahoe-1.8.2/src/allmydata/immutable/layout.py", line 88, in
 make_write_bucket_proxy
     num_share_hashes, uri_extension_size_max, nodeid)
   File "/home/rycee/allmydata-
 tahoe-1.8.2/src/allmydata/immutable/layout.py", line 108, in __init__
     effective_segments = mathutil.next_power_of_k(num_segments,2)
   File "/home/rycee/allmydata-tahoe-1.8.2/src/allmydata/util/mathutil.py",
 line 35, in next_power_of_k
     x = int(math.log(n, k) + 0.5)
 exceptions.ValueError: cannot convert float NaN to integer
 }}}

 I have previously performed successful backups with this precise setup, no
 configurations have been changed or servers restarted recently.  The
 storage node has ample available space.

 I tried running the backup several times and the error occur each time.
 However, when running a second time the file on which the first run failed
 is reported as uploaded and the second run fails on the next file.
 Running a check on the reported cap gives:

 {{{
 $ tahoe check --verify --raw URI:CHK:2pqpbe...
 {
  "results": {
   "needs-rebalancing": false,
   "count-shares-expected": 3,
   "healthy": false,
   "count-unrecoverable-versions": 1,
   "count-shares-needed": 1,
   "sharemap": {},
   "count-recoverable-versions": 0,
   "servers-responding": [
    "5yea4my3w3frgp524lgthrb7rdd6frtr",
    "44g5kkgwulzrrrntdzci7jtt5rgt6nuo",
    "bzyf23mghgxycnr34pdkqdmybnevf4ks"
   ],
   "count-good-share-hosts": 0,
   "count-wrong-shares": 0,
   "count-shares-good": 0,
   "count-corrupt-shares": 3,
   "list-corrupt-shares": [
    [
     "bzyf23mghgxycnr34pdkqdmybnevf4ks",
     "barr7kgra3pst6icbtnmxrggca",
     0
    ],
    [
     "44g5kkgwulzrrrntdzci7jtt5rgt6nuo",
     "barr7kgra3pst6icbtnmxrggca",
     1
    ],
    [
     "5yea4my3w3frgp524lgthrb7rdd6frtr",
     "barr7kgra3pst6icbtnmxrggca",
     2
    ]
   ],
   "recoverable": false
  },
  "storage-index": "barr7kgra3pst6icbtnmxrggca",
  "summary": "Not Healthy: 0 shares (enc 1-of-3)"
 }
 }}}

 Without using --verify

 {{{
 $ tahoe check --raw URI:CHK:2pqp...
 {
  "results": {
   "needs-rebalancing": false,
   "count-shares-expected": 3,
   "healthy": true,
   "count-unrecoverable-versions": 0,
   "count-shares-needed": 1,
   "sharemap": {
    "0": [
     "bzyf23mghgxycnr34pdkqdmybnevf4ks"
    ],
    "1": [
     "44g5kkgwulzrrrntdzci7jtt5rgt6nuo"
    ],
    "2": [
     "5yea4my3w3frgp524lgthrb7rdd6frtr"
    ]
   },
   "count-recoverable-versions": 1,
   "servers-responding": [
    "5yea4my3w3frgp524lgthrb7rdd6frtr",
    "44g5kkgwulzrrrntdzci7jtt5rgt6nuo",
    "bzyf23mghgxycnr34pdkqdmybnevf4ks"
   ],
   "count-good-share-hosts": 3,
   "count-wrong-shares": 0,
   "count-shares-good": 3,
   "count-corrupt-shares": 0,
   "list-corrupt-shares": [],
   "recoverable": true
  },
  "storage-index": "barr7kgra3pst6icbtnmxrggca",
  "summary": "Healthy"
 }
 }}}

 Both client and server nodes are running 1.8.2 on Debian stable.  Sorry
 for the big pastes, if there is any other information you would like
 please let me know.

-- 
Ticket URL: <http://tahoe-lafs.org/trac/tahoe-lafs/ticket/1418>
tahoe-lafs <http://tahoe-lafs.org>
secure decentralized storage


More information about the tahoe-lafs-trac-stream mailing list