i can reproduce similarly on my development environment:
ubuntu@saio:~$ dd if=/dev/zero of=/srv/node2/sdb2/containers/767/1d7/bff782c1e5d0944511d817550b5841d7/bff782c1e5d0944511d817550b5841d7.db bs=1024 count=1 oflag=direct
1+0 records in
1+0 records out
1024 bytes (1.0 kB, 1.0 KiB) copied, 0.00116758 s, 877 kB/s
ubuntu@saio:~$ swift-container-info /srv/node2/sdb2/containers/767/1d7/bff782c1e5d0944511d817550b5841d7/bff782c1e5d0944511d817550b5841d7.db
No handlers could be found for logger "root"
Traceback (most recent call last):
File "/usr/local/bin/swift-container-info", line 6, in <module>
exec(compile(open(__file__).read(), __file__, 'exec'))
File "/vagrant/swift/bin/swift-container-info", line 47, in <module>
run_print_info(args, vars(options))
File "/vagrant/swift/bin/swift-container-info", line 23, in run_print_info
print_info('container', *args, **opts)
File "/vagrant/swift/swift/cli/info.py", line 382, in print_info
info = broker.get_info()
File "/vagrant/swift/swift/container/backend.py", line 501, in get_info
with self.get() as conn:
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/vagrant/swift/swift/common/db.py", line 371, in get
self.possibly_quarantine(*sys.exc_info())
File "/vagrant/swift/swift/common/db.py", line 361, in possibly_quarantine
raise sqlite3.DatabaseError(detail)
sqlite3.DatabaseError: Quarantined /srv/node2/sdb2/containers/767/1d7/bff782c1e5d0944511d817550b5841d7 to /srv/node2/sdb2/quarantined/containers/bff782c1e5d0944511d817550b5841d7 due to corrupted database
ubuntu@saio:~$ ls /srv/node2/sdb2/quarantined/containers/bff782c1e5d0944511d817550b5841d7/
bff782c1e5d0944511d817550b5841d7.db
ubuntu@saio:~$ swift-container-info /srv/node2/sdb2/quarantined/containers/bff782c1e5d0944511d817550b5841d7/bff782c1e5d0944511d817550b5841d7.db
Traceback (most recent call last):
File "/usr/local/bin/swift-container-info", line 6, in <module>
exec(compile(open(__file__).read(), __file__, 'exec'))
File "/vagrant/swift/bin/swift-container-info", line 47, in <module>
run_print_info(args, vars(options))
File "/vagrant/swift/bin/swift-container-info", line 23, in run_print_info
print_info('container', *args, **opts)
File "/vagrant/swift/swift/cli/info.py", line 382, in print_info
info = broker.get_info()
File "/vagrant/swift/swift/container/backend.py", line 501, in get_info
with self.get() as conn:
File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__
return self.gen.next()
File "/vagrant/swift/swift/common/db.py", line 371, in get
self.possibly_quarantine(*sys.exc_info())
File "/vagrant/swift/swift/common/db.py", line 350, in possibly_quarantine
renamer(self.db_dir, quar_path, fsync=False)
File "/vagrant/swift/swift/common/utils.py", line 1208, in renamer
os.rename(old, new)
OSError: [Errno 18] Invalid cross-device link
ubuntu@saio:~$ find /srv/node2/sdb2/quarantined/
/srv/node2/sdb2/quarantined/
/srv/node2/sdb2/quarantined/containers
/srv/node2/sdb2/quarantined/containers/bff782c1e5d0944511d817550b5841d7
/srv/node2/sdb2/quarantined/containers/bff782c1e5d0944511d817550b5841d7/.lock
/srv/node2/sdb2/quarantined/containers/bff782c1e5d0944511d817550b5841d7/bff782c1e5d0944511d817550b5841d7.db
i can reproduce similarly on my development environment:
ubuntu@saio:~$ dd if=/dev/zero of=/srv/ node2/sdb2/ containers/ 767/1d7/ bff782c1e5d0944 511d817550b5841 d7/bff782c1e5d0 944511d817550b5 841d7.db bs=1024 count=1 oflag=direct -info /srv/node2/ sdb2/containers /767/1d7/ bff782c1e5d0944 511d817550b5841 d7/bff782c1e5d0 944511d817550b5 841d7.db bin/swift- container- info", line 6, in <module> compile( open(__ file__) .read() , __file__, 'exec')) swift/bin/ swift-container -info", line 47, in <module> print_info( args, vars(options)) swift/bin/ swift-container -info", line 23, in run_print_info info('container ', *args, **opts) swift/swift/ cli/info. py", line 382, in print_info swift/swift/ container/ backend. py", line 501, in get_info python2. 7/contextlib. py", line 17, in __enter__ swift/swift/ common/ db.py", line 371, in get possibly_ quarantine( *sys.exc_ info()) swift/swift/ common/ db.py", line 361, in possibly_quarantine DatabaseError( detail) DatabaseError: Quarantined /srv/node2/ sdb2/containers /767/1d7/ bff782c1e5d0944 511d817550b5841 d7 to /srv/node2/ sdb2/quarantine d/containers/ bff782c1e5d0944 511d817550b5841 d7 due to corrupted database sdb2/quarantine d/containers/ bff782c1e5d0944 511d817550b5841 d7/ 511d817550b5841 d7.db -info /srv/node2/ sdb2/quarantine d/containers/ bff782c1e5d0944 511d817550b5841 d7/bff782c1e5d0 944511d817550b5 841d7.db bin/swift- container- info", line 6, in <module> compile( open(__ file__) .read() , __file__, 'exec')) swift/bin/ swift-container -info", line 47, in <module> print_info( args, vars(options)) swift/bin/ swift-container -info", line 23, in run_print_info info('container ', *args, **opts) swift/swift/ cli/info. py", line 382, in print_info swift/swift/ container/ backend. py", line 501, in get_info python2. 7/contextlib. py", line 17, in __enter__ swift/swift/ common/ db.py", line 371, in get possibly_ quarantine( *sys.exc_ info()) swift/swift/ common/ db.py", line 350, in possibly_quarantine self.db_ dir, quar_path, fsync=False) swift/swift/ common/ utils.py" , line 1208, in renamer sdb2/quarantine d/ sdb2/quarantine d/ sdb2/quarantine d/containers sdb2/quarantine d/containers/ bff782c1e5d0944 511d817550b5841 d7 sdb2/quarantine d/containers/ bff782c1e5d0944 511d817550b5841 d7/.lock sdb2/quarantine d/containers/ bff782c1e5d0944 511d817550b5841 d7/bff782c1e5d0 944511d817550b5 841d7.db
1+0 records in
1+0 records out
1024 bytes (1.0 kB, 1.0 KiB) copied, 0.00116758 s, 877 kB/s
ubuntu@saio:~$ swift-container
No handlers could be found for logger "root"
Traceback (most recent call last):
File "/usr/local/
exec(
File "/vagrant/
run_
File "/vagrant/
print_
File "/vagrant/
info = broker.get_info()
File "/vagrant/
with self.get() as conn:
File "/usr/lib/
return self.gen.next()
File "/vagrant/
self.
File "/vagrant/
raise sqlite3.
sqlite3.
ubuntu@saio:~$ ls /srv/node2/
bff782c1e5d0944
ubuntu@saio:~$ swift-container
Traceback (most recent call last):
File "/usr/local/
exec(
File "/vagrant/
run_
File "/vagrant/
print_
File "/vagrant/
info = broker.get_info()
File "/vagrant/
with self.get() as conn:
File "/usr/lib/
return self.gen.next()
File "/vagrant/
self.
File "/vagrant/
renamer(
File "/vagrant/
os.rename(old, new)
OSError: [Errno 18] Invalid cross-device link
ubuntu@saio:~$ find /srv/node2/
/srv/node2/
/srv/node2/
/srv/node2/
/srv/node2/
/srv/node2/