[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
Fri Mar 2 10:13:47 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 rycee):

 Replying to [comment:49 davidsarah]:
 > Replying to [comment:48 rycee]:
 > > Note, when I used `--disable-embedded-cryptopp` it was built against
 the Debian version of Crypto++ 5.6.0 since I don't know how to convince
 `setup.py` to look for headers and libraries in a non-standard directory.
 It still fails in the same way, though, if I use LD_LIBRARY_PATH to force
 it to load the upstream Crypto++ 5.6.0.
 >
 > This is almost sufficient to convince me that this is a fixed bug in
 Crypto++ (despite it not being clear which change fixed it). However, we
 haven't excluded the possibility that the problem interacts with the
 dynamic linking, i.e. that it fails in non-embedded mode.
 Ok, so I tried a new way. I unpacked pycryptopp twice. In one of the trees
 I replaced the `embeddedcryptopp` directory by a pristine upstream
 Crypto++ 5.6.0 and in the other I replaced `embeddedcryptopp` by a
 pristine upstream Crypto 5.6.1. I then did a `python setup.py build`
 followed by `python setup.py test` in each of the two trees. The
 pycryptopp statically built with 5.6.0 failed the test (in the same way as
 the previously attached test log) while the build using Crypto++ 5.6.1 ran
 all tests successfully.

 I'm a bit curious, however, as to why the `cryptest.exe` program from
 Crypto++ 5.6.0 didn't fail, maybe the failing test from pycryptopp could
 be ported to a test in `cryptest.exe`?

 > > Using the same technique to force it to use Crypto++ 5.6.1 results in
 an undefined symbol error.
 >
 > It sounds like we should open a new (pycryptopp) ticket for that, since
 at some point Debian or Ubuntu will upgrade to 5.6.1 and then it may fail
 with the same error.
 It's like [comment:50 zooko said]. Since I don't know how to make
 `setup.py` use a custom directly header-directory it built against the
 standard Debian Cryptop++ 5.6.0 headers.

 However, curiously enough, when I used Debian's pycryptopp – which is
 dynamically linked against Debian's Crypto++ – I ''was'' able to change
 out the `.so` file from 5.6.0 to 5.6.1 without problem. Doing this is how
 I found out that 5.6.1 worked. I suppose it has something to do with the
 patches and how the Debian pycryptopp and Crypto++ packages are built.

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


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