After writing this up, I rebooted the maas server and noticed a couple things I didnt notice before... first, in clusterd.log there is a traceback when the cluster restarted:
2015-09-10 14:21:47-0400 [-] Unhandled error in Deferred:
2015-09-10 14:21:47-0400 [-] Unhandled Error
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 783, in __bootstrap self.__bootstrap_inner()
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs)
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py", line 191, in _worker
result = context.call(ctx, function, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
return func(*args,**kw)
File "/usr/lib/python2.7/dist-packages/provisioningserver/utils/twisted.py", line 158, in wrapper
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/provisioningserver/rpc/boot_images.py", line 92, in _run_import reload_boot_images()
File "/usr/lib/python2.7/dist-packages/provisioningserver/rpc/boot_images.py", line 57, in reload_boot_images CACHED_BOOT_IMAGES = tftppath.list_boot_images(config.tftp_root)
File "/usr/lib/python2.7/dist-packages/provisioningserver/boot/tftppath.py", line 266, in list_boot_images extract_image_params(path, metadata) for path in paths))
File "/usr/lib/python2.7/dist-packages/provisioningserver/boot/tftppath.py", line 266, in <genexpr> extract_image_params(path, metadata) for path in paths))
File "/usr/lib/python2.7/dist-packages/provisioningserver/boot/tftppath.py", line 180, in extract_image_params
arch, subarch, release, label)
File "/usr/lib/python2.7/dist-packages/provisioningserver/drivers/osystem/custom.py", line 58, in get_xinstall_parameters
with ClusterConfiguration.open() as config:
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/usr/lib/python2.7/dist-packages/provisioningserver/config.py", line 674, in open
with cls.backend.open(filepath) as store:
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/usr/lib/python2.7/dist-packages/provisioningserver/config.py", line 549, in open
with RunLock(path).wait(timeout=5.0):
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/usr/lib/python2.7/dist-packages/provisioningserver/utils/fs.py", line 440, in wait
raise self.NotAvailable(self.fslock.name) provisioningserver.utils.fs.NotAvailable: /run/lock/maas.L2V0Yy9tYWFzL2NsdXN0ZXJkLmNvbmY=.lock
2015-09-10 14:21:47-0400 [-] Unhandled error in Deferred:
2015-09-10 14:21:47-0400 [-] Unhandled Error
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 783, in __bootstrap self.__bootstrap_inner()
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs)
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py", line 191, in _worker
result = context.call(ctx, function, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
return func(*args,**kw)
File "/usr/lib/python2.7/dist-packages/provisioningserver/utils/twisted.py", line 158, in wrapper
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/provisioningserver/rpc/boot_images.py", line 92, in _run_import reload_boot_images()
File "/usr/lib/python2.7/dist-packages/provisioningserver/rpc/boot_images.py", line 57, in reload_boot_images CACHED_BOOT_IMAGES = tftppath.list_boot_images(config.tftp_root)
File "/usr/lib/python2.7/dist-packages/provisioningserver/boot/tftppath.py", line 266, in list_boot_images extract_image_params(path, metadata) for path in paths))
File "/usr/lib/python2.7/dist-packages/provisioningserver/boot/tftppath.py", line 266, in <genexpr> extract_image_params(path, metadata) for path in paths))
File "/usr/lib/python2.7/dist-packages/provisioningserver/boot/tftppath.py", line 180, in extract_image_params
arch, subarch, release, label)
File "/usr/lib/python2.7/dist-packages/provisioningserver/drivers/osystem/custom.py", line 58, in get_xinstall_parameters
with ClusterConfiguration.open() as config:
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/usr/lib/python2.7/dist-packages/provisioningserver/config.py", line 674, in open
with cls.backend.open(filepath) as store:
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/usr/lib/python2.7/dist-packages/provisioningserver/config.py", line 549, in open
with RunLock(path).wait(timeout=5.0):
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/usr/lib/python2.7/dist-packages/provisioningserver/utils/fs.py", line 440, in wait
raise self.NotAvailable(self.fslock.name) provisioningserver.utils.fs.NotAvailable: /run/lock/maas.L2V0Yy9tYWFzL2NsdXN0ZXJkLmNvbmY=.lock
and corresponding tracebacks (timing wise) in regiond.log:
2015-09-10 14:21:51 [-] Error on request (119) general.osinfo: string index out of range
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 783, in __bootstrap self.__bootstrap_inner()
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run self.__target(*self.__args, **self.__kwargs)
--- <exception caught here> ---
File "/usr/lib/python2.7/dist-packages/twisted/python/threadpool.py", line 191, in _worker
result = context.call(ctx, function, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 118, in callWithContext
return self.currentContext().callWithContext(ctx, func, *args, **kw)
File "/usr/lib/python2.7/dist-packages/twisted/python/context.py", line 81, in callWithContext
return func(*args,**kw)
File "/usr/lib/python2.7/dist-packages/maasserver/utils/orm.py", line 474, in call_within_transaction
return func_outside_txn(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/maasserver/utils/orm.py", line 301, in retrier
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/db/transaction.py", line 339, in inner
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/provisioningserver/utils/twisted.py", line 158, in wrapper
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/maasserver/utils/orm.py", line 458, in call_within_transaction
return func_within_txn(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/django/db/transaction.py", line 339, in inner
return func(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/maasserver/websockets/base.py", line 332, in execute
return m(params)
File "/usr/lib/python2.7/dist-packages/maasserver/websockets/handlers/general.py", line 60, in osinfo
kernels = list_all_usable_hwe_kernels(releases)
File "/usr/lib/python2.7/dist-packages/maasserver/utils/osystems.py", line 82, in list_all_usable_hwe_kernels
if release_a_newer_than_b(i, release['name'])])
File "/usr/lib/python2.7/dist-packages/maasserver/utils/osystems.py", line 239, in release_a_newer_than_b
num_a = get_release_num(a)
File "/usr/lib/python2.7/dist-packages/maasserver/utils/osystems.py", line 234, in get_release_num
return ord(release[0]) exceptions.IndexError: string index out of range
However, these tracebacks in the region log start earlier than the ones in clusterd... by a few seconds at any rate...
After writing this up, I rebooted the maas server and noticed a couple things I didnt notice before... first, in clusterd.log there is a traceback when the cluster restarted:
2015-09-10 14:21:47-0400 [-] Unhandled error in Deferred: python2. 7/threading. py", line 783, in __bootstrap
self. __bootstrap_ inner() python2. 7/threading. py", line 810, in __bootstrap_inner
self. run() python2. 7/threading. py", line 763, in run
self. __target( *self._ _args, **self.__kwargs) python2. 7/dist- packages/ twisted/ python/ threadpool. py", line 191, in _worker python2. 7/dist- packages/ twisted/ python/ context. py", line 118, in callWithContext text(). callWithContext (ctx, func, *args, **kw) python2. 7/dist- packages/ twisted/ python/ context. py", line 81, in callWithContext python2. 7/dist- packages/ provisioningser ver/utils/ twisted. py", line 158, in wrapper python2. 7/dist- packages/ provisioningser ver/rpc/ boot_images. py", line 92, in _run_import
reload_ boot_images( ) python2. 7/dist- packages/ provisioningser ver/rpc/ boot_images. py", line 57, in reload_boot_images
CACHED_ BOOT_IMAGES = tftppath. list_boot_ images( config. tftp_root) python2. 7/dist- packages/ provisioningser ver/boot/ tftppath. py", line 266, in list_boot_images
extract_ image_params( path, metadata) for path in paths)) python2. 7/dist- packages/ provisioningser ver/boot/ tftppath. py", line 266, in <genexpr>
extract_ image_params( path, metadata) for path in paths)) python2. 7/dist- packages/ provisioningser ver/boot/ tftppath. py", line 180, in extract_ image_params python2. 7/dist- packages/ provisioningser ver/drivers/ osystem/ custom. py", line 58, in get_xinstall_ parameters ation.open( ) as config: python2. 7/contextlib. py", line 17, in __enter__ python2. 7/dist- packages/ provisioningser ver/config. py", line 674, in open open(filepath) as store: python2. 7/contextlib. py", line 17, in __enter__ python2. 7/dist- packages/ provisioningser ver/config. py", line 549, in open path).wait( timeout= 5.0): python2. 7/contextlib. py", line 17, in __enter__ python2. 7/dist- packages/ provisioningser ver/utils/ fs.py", line 440, in wait le(self. fslock. name)
provisioningse rver.utils. fs.NotAvailable : /run/lock/ maas.L2V0Yy9tYW FzL2NsdXN0ZXJkL mNvbmY= .lock python2. 7/threading. py", line 783, in __bootstrap
self. __bootstrap_ inner() python2. 7/threading. py", line 810, in __bootstrap_inner
self. run() python2. 7/threading. py", line 763, in run
self. __target( *self._ _args, **self.__kwargs) python2. 7/dist- packages/ twisted/ python/ threadpool. py", line 191, in _worker python2. 7/dist- packages/ twisted/ python/ context. py", line 118, in callWithContext text(). callWithContext (ctx, func, *args, **kw) python2. 7/dist- packages/ twisted/ python/ context. py", line 81, in callWithContext python2. 7/dist- packages/ provisioningser ver/utils/ twisted. py", line 158, in wrapper python2. 7/dist- packages/ provisioningser ver/rpc/ boot_images. py", line 92, in _run_import
reload_ boot_images( ) python2. 7/dist- packages/ provisioningser ver/rpc/ boot_images. py", line 57, in reload_boot_images
CACHED_ BOOT_IMAGES = tftppath. list_boot_ images( config. tftp_root) python2. 7/dist- packages/ provisioningser ver/boot/ tftppath. py", line 266, in list_boot_images
extract_ image_params( path, metadata) for path in paths)) python2. 7/dist- packages/ provisioningser ver/boot/ tftppath. py", line 266, in <genexpr>
extract_ image_params( path, metadata) for path in paths)) python2. 7/dist- packages/ provisioningser ver/boot/ tftppath. py", line 180, in extract_ image_params python2. 7/dist- packages/ provisioningser ver/drivers/ osystem/ custom. py", line 58, in get_xinstall_ parameters ation.open( ) as config: python2. 7/contextlib. py", line 17, in __enter__ python2. 7/dist- packages/ provisioningser ver/config. py", line 674, in open open(filepath) as store: python2. 7/contextlib. py", line 17, in __enter__ python2. 7/dist- packages/ provisioningser ver/config. py", line 549, in open path).wait( timeout= 5.0): python2. 7/contextlib. py", line 17, in __enter__ python2. 7/dist- packages/ provisioningser ver/utils/ fs.py", line 440, in wait le(self. fslock. name)
provisioningse rver.utils. fs.NotAvailable : /run/lock/ maas.L2V0Yy9tYW FzL2NsdXN0ZXJkL mNvbmY= .lock
2015-09-10 14:21:47-0400 [-] Unhandled Error
Traceback (most recent call last):
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
--- <exception caught here> ---
File "/usr/lib/
result = context.call(ctx, function, *args, **kwargs)
File "/usr/lib/
return self.currentCon
File "/usr/lib/
return func(*args,**kw)
File "/usr/lib/
return func(*args, **kwargs)
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
arch, subarch, release, label)
File "/usr/lib/
with ClusterConfigur
File "/usr/lib/
return self.gen.next()
File "/usr/lib/
with cls.backend.
File "/usr/lib/
return self.gen.next()
File "/usr/lib/
with RunLock(
File "/usr/lib/
return self.gen.next()
File "/usr/lib/
raise self.NotAvailab
2015-09-10 14:21:47-0400 [-] Unhandled error in Deferred:
2015-09-10 14:21:47-0400 [-] Unhandled Error
Traceback (most recent call last):
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
--- <exception caught here> ---
File "/usr/lib/
result = context.call(ctx, function, *args, **kwargs)
File "/usr/lib/
return self.currentCon
File "/usr/lib/
return func(*args,**kw)
File "/usr/lib/
return func(*args, **kwargs)
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
arch, subarch, release, label)
File "/usr/lib/
with ClusterConfigur
File "/usr/lib/
return self.gen.next()
File "/usr/lib/
with cls.backend.
File "/usr/lib/
return self.gen.next()
File "/usr/lib/
with RunLock(
File "/usr/lib/
return self.gen.next()
File "/usr/lib/
raise self.NotAvailab
and corresponding tracebacks (timing wise) in regiond.log:
2015-09-10 14:21:51 [-] Error on request (119) general.osinfo: string index out of range python2. 7/threading. py", line 783, in __bootstrap
self. __bootstrap_ inner() python2. 7/threading. py", line 810, in __bootstrap_inner
self. run() python2. 7/threading. py", line 763, in run
self. __target( *self._ _args, **self.__kwargs) python2. 7/dist- packages/ twisted/ python/ threadpool. py", line 191, in _worker python2. 7/dist- packages/ twisted/ python/ context. py", line 118, in callWithContext text(). callWithContext (ctx, func, *args, **kw) python2. 7/dist- packages/ twisted/ python/ context. py", line 81, in callWithContext python2. 7/dist- packages/ maasserver/ utils/orm. py", line 474, in call_within_ transaction txn(*args, **kwargs) python2. 7/dist- packages/ maasserver/ utils/orm. py", line 301, in retrier python2. 7/dist- packages/ django/ db/transaction. py", line 339, in inner python2. 7/dist- packages/ provisioningser ver/utils/ twisted. py", line 158, in wrapper python2. 7/dist- packages/ maasserver/ utils/orm. py", line 458, in call_within_ transaction txn(*args, **kwargs) python2. 7/dist- packages/ django/ db/transaction. py", line 339, in inner python2. 7/dist- packages/ maasserver/ websockets/ base.py" , line 332, in execute python2. 7/dist- packages/ maasserver/ websockets/ handlers/ general. py", line 60, in osinfo usable_ hwe_kernels( releases) python2. 7/dist- packages/ maasserver/ utils/osystems. py", line 82, in list_all_ usable_ hwe_kernels a_newer_ than_b( i, release['name'])]) python2. 7/dist- packages/ maasserver/ utils/osystems. py", line 239, in release_ a_newer_ than_b python2. 7/dist- packages/ maasserver/ utils/osystems. py", line 234, in get_release_num
exceptions. IndexError: string index out of range
Traceback (most recent call last):
File "/usr/lib/
File "/usr/lib/
File "/usr/lib/
--- <exception caught here> ---
File "/usr/lib/
result = context.call(ctx, function, *args, **kwargs)
File "/usr/lib/
return self.currentCon
File "/usr/lib/
return func(*args,**kw)
File "/usr/lib/
return func_outside_
File "/usr/lib/
return func(*args, **kwargs)
File "/usr/lib/
return func(*args, **kwargs)
File "/usr/lib/
return func(*args, **kwargs)
File "/usr/lib/
return func_within_
File "/usr/lib/
return func(*args, **kwargs)
File "/usr/lib/
return m(params)
File "/usr/lib/
kernels = list_all_
File "/usr/lib/
if release_
File "/usr/lib/
num_a = get_release_num(a)
File "/usr/lib/
return ord(release[0])
However, these tracebacks in the region log start earlier than the ones in clusterd... by a few seconds at any rate...