When image register fails, the underlying exception gets eaten because out of scope variables are being referenced in the error log.
2011-08-15 14:36:10,385 DEBUG nova.utils [-] Running cmd (subprocess): openssl enc -d -aes-128-cbc -in /tmp/tmpIHkMkG/image.encrypted -K 57fbea5c3e106e0e6aec2d89ef5171ea -iv 77f27e730c319a341782b091b97216a5 -out /tmp/tmpIHkMkG/image.tar.gz from (pid=16720) execute /home/ctoteam/nova/nova/utils.py:143Traceback (most recent call last): File "/usr/lib/python2.6/logging/__init__.py", line 776, in emit msg = self.format(record) File "/usr/lib/python2.6/logging/__init__.py", line 654, in format
return fmt.format(record) File "/home/ctoteam/nova/nova/log.py", line 214, in format
return logging.Formatter.format(self, record)
File "/usr/lib/python2.6/logging/__init__.py", line 436, in format
record.message = record.getMessage()
File "/usr/lib/python2.6/logging/__init__.py", line 306, in getMessage
msg = msg % self.args
KeyError: u'image_location'
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/eventlet/hubs/poll.py", line 97, in wait
readers.get(fileno, noop).cb(fileno)
File "/home/ctoteam/nova/nova/image/s3.py", line 267, in delayed_create
raise
TypeError: exceptions must be old-style classes or derived from BaseException, not NoneType
Removing descriptor: 6
Furthermore, it appears that now that we have an eventlet friendly-db library, we can't do db updates in exception handlers and reraise:
2011-08-15 16:43:30,086 ERROR nova.image.s3 [-] Failed to upload ttbb2/ttylinux- uec-i386- 11.2_2. 6.35-16_ 1.img.manifest. xml to /tmp/tmp7jXqlf python2. 6/dist- packages/ eventlet/ hubs/poll. py", line 97, in wait get(fileno, noop).cb(fileno) ctoteam/ nova/nova/ image/s3. py", line 271, in delayed_create
Traceback (most recent call last):
File "/usr/lib/
readers.
File "/home/
raise
TypeError: exceptions must be old-style classes or derived from BaseException, not NoneType