mirror of
https://github.com/ceph/ceph
synced 2025-02-28 13:32:27 +00:00
Merge pull request #337 from ceph/wip-umount
lsof on umount failure; catpure logs for aggressively
This commit is contained in:
commit
e4ac55a627
@ -76,7 +76,40 @@ def ceph_log(ctx, config):
|
||||
yield
|
||||
|
||||
finally:
|
||||
pass
|
||||
if ctx.archive is not None and \
|
||||
not (ctx.config.get('archive-on-error') and ctx.summary['success']):
|
||||
# and logs
|
||||
log.info('Compressing logs...')
|
||||
run.wait(
|
||||
ctx.cluster.run(
|
||||
args=[
|
||||
'sudo',
|
||||
'find',
|
||||
'/var/log/ceph',
|
||||
'-name',
|
||||
'*.log',
|
||||
'-print0',
|
||||
run.Raw('|'),
|
||||
'sudo',
|
||||
'xargs',
|
||||
'-0',
|
||||
'--no-run-if-empty',
|
||||
'--',
|
||||
'gzip',
|
||||
'--',
|
||||
],
|
||||
wait=False,
|
||||
),
|
||||
)
|
||||
|
||||
log.info('Archiving logs...')
|
||||
path = os.path.join(ctx.archive, 'remote')
|
||||
os.makedirs(path)
|
||||
for remote in ctx.cluster.remotes.iterkeys():
|
||||
sub = os.path.join(path, remote.shortname)
|
||||
os.makedirs(sub)
|
||||
teuthology.pull_directory(remote, '/var/log/ceph',
|
||||
os.path.join(sub, 'log'))
|
||||
|
||||
|
||||
def assign_devs(roles, devs):
|
||||
@ -728,16 +761,24 @@ def cluster(ctx, config):
|
||||
for remote, dirs in devs_to_clean.iteritems():
|
||||
for dir_ in dirs:
|
||||
log.info('Unmounting %s on %s' % (dir_, remote))
|
||||
remote.run(
|
||||
args=[
|
||||
'sync',
|
||||
run.Raw('&&'),
|
||||
'sudo',
|
||||
'umount',
|
||||
'-f',
|
||||
dir_
|
||||
try:
|
||||
remote.run(
|
||||
args=[
|
||||
'sync',
|
||||
run.Raw('&&'),
|
||||
'sudo',
|
||||
'umount',
|
||||
'-f',
|
||||
dir_
|
||||
]
|
||||
)
|
||||
except Exception as e:
|
||||
remote.run(args=[
|
||||
'sudo',
|
||||
run.Raw('PATH=/usr/sbin:$PATH'),
|
||||
'lsof'
|
||||
])
|
||||
raise e
|
||||
|
||||
if config.get('tmpfs_journal'):
|
||||
log.info('tmpfs journal enabled - unmounting tmpfs at /mnt')
|
||||
@ -748,7 +789,8 @@ def cluster(ctx, config):
|
||||
)
|
||||
|
||||
if ctx.archive is not None and \
|
||||
not (ctx.config.get('archive-on-error') and ctx.summary['success']):
|
||||
not (ctx.config.get('archive-on-error') and ctx.summary['success']):
|
||||
|
||||
# archive mon data, too
|
||||
log.info('Archiving mon data...')
|
||||
path = os.path.join(ctx.archive, 'data')
|
||||
@ -761,40 +803,6 @@ def cluster(ctx, config):
|
||||
'/var/lib/ceph/mon',
|
||||
path + '/' + role + '.tgz')
|
||||
|
||||
# and logs
|
||||
log.info('Compressing logs...')
|
||||
run.wait(
|
||||
ctx.cluster.run(
|
||||
args=[
|
||||
'sudo',
|
||||
'find',
|
||||
'/var/log/ceph',
|
||||
'-name',
|
||||
'*.log',
|
||||
'-print0',
|
||||
run.Raw('|'),
|
||||
'sudo',
|
||||
'xargs',
|
||||
'-0',
|
||||
'--no-run-if-empty',
|
||||
'--',
|
||||
'gzip',
|
||||
'--',
|
||||
],
|
||||
wait=False,
|
||||
),
|
||||
)
|
||||
|
||||
log.info('Archiving logs...')
|
||||
path = os.path.join(ctx.archive, 'remote')
|
||||
os.makedirs(path)
|
||||
for remote in ctx.cluster.remotes.iterkeys():
|
||||
sub = os.path.join(path, remote.shortname)
|
||||
os.makedirs(sub)
|
||||
teuthology.pull_directory(remote, '/var/log/ceph',
|
||||
os.path.join(sub, 'log'))
|
||||
|
||||
|
||||
log.info('Cleaning ceph cluster...')
|
||||
run.wait(
|
||||
ctx.cluster.run(
|
||||
|
Loading…
Reference in New Issue
Block a user