← Back to team overview

touch-packages team mailing list archive

[Bug 1435242] Re: Problematic type casting between int/long?

 

>>> import os
>>> os.minor(os.makedev(8,65))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
SystemError: ../Objects/longobject.c:998: bad argument to internal function
>>> os.major(os.makedev(8,65))
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
SystemError: ../Objects/longobject.c:998: bad argument to internal function

casting to a long works ...

>>> os.major(long(os.makedev(8,65)))
8

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to python2.7 in Ubuntu.
https://bugs.launchpad.net/bugs/1435242

Title:
  Problematic type casting between int/long?

Status in Python:
  New
Status in cinder package in Ubuntu:
  Fix Released
Status in python2.7 package in Ubuntu:
  New

Bug description:
  We're seeing this error with the new kilo-3 milestone:

  ======================================================================
  FAIL: cinder.tests.test_utils.GetBlkdevMajorMinorTestCase.test_get_blkdev_major_minor_file
  cinder.tests.test_utils.GetBlkdevMajorMinorTestCase.test_get_blkdev_major_minor_file
  ----------------------------------------------------------------------
  _StringException: Traceback (most recent call last):
    File "/build/buildd/cinder-2015.1~b3/cinder/tests/test_utils.py", line 721, in test_get_blkdev_major_minor_file
      dev = self._test_get_blkdev_major_minor_file('/dev/made_up_disk1')
    File "/usr/lib/python2.7/dist-packages/mock.py", line 1210, in patched
      return func(*args, **keywargs)
    File "/build/buildd/cinder-2015.1~b3/cinder/tests/test_utils.py", line 712, in _test_get_blkdev_major_minor_file
      dev = utils.get_blkdev_major_minor(test_file)
    File "/build/buildd/cinder-2015.1~b3/cinder/utils.py", line 656, in get_blkdev_major_minor
      return get_blkdev_major_minor(devpath, False)
    File "/build/buildd/cinder-2015.1~b3/cinder/utils.py", line 645, in get_blkdev_major_minor
      return '%d:%d' % (os.major(st.st_rdev), os.minor(st.st_rdev))
  SystemError: ../Objects/longobject.c:998: bad argument to internal function
  Traceback (most recent call last):
  _StringException: Empty attachments:
    stderr
    stdout

  Traceback (most recent call last):
    File "/build/buildd/cinder-2015.1~b3/cinder/tests/test_utils.py", line 721, in test_get_blkdev_major_minor_file
      dev = self._test_get_blkdev_major_minor_file('/dev/made_up_disk1')
    File "/usr/lib/python2.7/dist-packages/mock.py", line 1210, in patched
      return func(*args, **keywargs)
    File "/build/buildd/cinder-2015.1~b3/cinder/tests/test_utils.py", line 712, in _test_get_blkdev_major_minor_file
      dev = utils.get_blkdev_major_minor(test_file)
    File "/build/buildd/cinder-2015.1~b3/cinder/utils.py", line 656, in get_blkdev_major_minor
      return get_blkdev_major_minor(devpath, False)
    File "/build/buildd/cinder-2015.1~b3/cinder/utils.py", line 645, in get_blkdev_major_minor
      return '%d:%d' % (os.major(st.st_rdev), os.minor(st.st_rdev))
  SystemError: ../Objects/longobject.c:998: bad argument to internal function

  Traceback (most recent call last):
  _StringException: Empty attachments:
    stderr
    stdout

  Traceback (most recent call last):
    File "/build/buildd/cinder-2015.1~b3/cinder/tests/test_utils.py", line 721, in test_get_blkdev_major_minor_file
      dev = self._test_get_blkdev_major_minor_file('/dev/made_up_disk1')
    File "/usr/lib/python2.7/dist-packages/mock.py", line 1210, in patched
      return func(*args, **keywargs)
    File "/build/buildd/cinder-2015.1~b3/cinder/tests/test_utils.py", line 712, in _test_get_blkdev_major_minor_file
      dev = utils.get_blkdev_major_minor(test_file)
    File "/build/buildd/cinder-2015.1~b3/cinder/utils.py", line 656, in get_blkdev_major_minor
      return get_blkdev_major_minor(devpath, False)
    File "/build/buildd/cinder-2015.1~b3/cinder/utils.py", line 645, in get_blkdev_major_minor
      return '%d:%d' % (os.major(st.st_rdev), os.minor(st.st_rdev))
  SystemError: ../Objects/longobject.c:998: bad argument to internal function

  This is evidently not impacting cinder on 14.04, just 15.04 so I would
  suspect some sort of python 2.7.9 issue.

  Casting to long appears to workaround this problem.

To manage notifications about this bug go to:
https://bugs.launchpad.net/python/+bug/1435242/+subscriptions


References