[tahoe-lafs-trac-stream] [tahoe-lafs] #1418: "cannot convert float NaN to integer" in next_power_of_k, during upload via helper

tahoe-lafs trac at tahoe-lafs.org
Thu Mar 1 06:57:17 UTC 2012


#1418: "cannot convert float NaN to integer" in next_power_of_k, during upload via
helper
-------------------------+-------------------------------------------------
     Reporter:  rycee    |      Owner:  rycee
         Type:  defect   |     Status:  new
     Priority:  major    |  Milestone:  undecided
    Component:  code     |    Version:  1.8.2
   Resolution:           |   Keywords:  helper upload heisenbug
Launchpad Bug:           |  floatingpoint debian pycryptopp
-------------------------+-------------------------------------------------

Comment (by zooko):

 Hm, well okay so we're pretty sure there is a bug in Crypto++ 5.6.0 that
 is fixed in Crypto++ 5.6.1, right? Maybe we could let it go at that, since
 it is apparently fixed. The steps to reproduce are:

 1. Get and build Crypto++ 5.6.0
 2. Build pycryptopp with the {{{--disable-embedded-cryptopp}}} option so
 that it will link against the .so generated in step 1 instead of using its
 own bundled copy of Crypto++ source code
 3. Run {{{python setup.py test -s
 allmydata.test.test_cli.Backup.test_backup}}}

 On your machine this 100% reproducible triggers the problem, and swapping
 in Crypto++ 5.6.1 for 5.6.0 makes it stop happening?

 Okay one more thing: how do I know I don't have the same bug in the copy
 of Crypto++ that is bundled inside pycryptopp? I don't think we've
 upgraded the embedded copy of Crypto++ a newer version of Crypto++ since
 this patch [91f454b47f66636fffde68e8a8bf4364bed7516e]:

 {{{
 commit 91f454b47f66636fffde68e8a8bf4364bed7516e
 Author: weidai <weidai>
 Date:   Sat Feb 2 00:40:27 2008 -0800
 }}}

 Four years ago, before Crypto++ 5.6.0 [http://cryptopp.com/#news was
 released]. Since then we've just been cherry-picking patches from upstream
 Crypto++. So if this bug was present in the version that we copied, and if
 we didn't realize that we needed to cherry-pick the patch that fixes it,
 then it could be present in the embedded copy of Crypto++ inside
 pycryptopp.

 Could you please replace step 2 above with building and omitting the
 {{{--disable-embedded-cryptopp}}} flag, to force it to use its embedded
 version of Crypto++? I think you've probably done that already in this
 process, but if you could do it again now just to be sure, that would make
 me feel better.

-- 
Ticket URL: <https://tahoe-lafs.org/trac/tahoe-lafs/ticket/1418#comment:47>
tahoe-lafs <https://tahoe-lafs.org>
secure decentralized storage


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