elastio / elastio-snap

kernel module for taking block-level snapshots and incremental backups of Linux block devices
GNU General Public License v2.0
21 stars 6 forks source link

`test_destroy_dormant_*` are failing on Ubuntu 22.04 with kernel `5.15.0-60-generic` #268

Open e-kov opened 1 year ago

e-kov commented 1 year ago

Note: This bug is a candidate for ice box because it's reproducible on the single machine and not reproducible on other envs with the same Ubuntu 22.04 and 5.15.0-60-generic kernel. Logs: failng_tests.log dmesg.log

Problems:

  1. System call table is not located. However kernel-config.h contains not empty SYS_CALL_TABLE_ADDR value. dmesg:
    [  146.205629] elastio-snap: failed to locate system call table, persistence disabled: -2
    [  146.205631] elastio-snap: couldn't hook the syscall table: -2
  2. Probably due to this issue with system call table test_destroy_dormant_* and test_reload are failing:
    
    ======================================================================
    ERROR: test_destroy_dormant_incremental (test_destroy.TestDestroy)
    ----------------------------------------------------------------------
    Traceback (most recent call last):
    File "/home/zheka/elastio/elastio-snap/tests/test_destroy.py", line 74, in test_destroy_dormant_incremental
    util.unmount(self.mount)
    File "/home/zheka/elastio/elastio-snap/tests/util.py", line 41, in unmount
    raise subprocess.CalledProcessError(p.returncode, cmd, "Command failed " + str(retries) + "times")
    subprocess.CalledProcessError: Command '['umount', '/tmp/elastio-snap_022']' returned non-zero exit status 32.

====================================================================== ERROR: test_destroy_dormant_snapshot (test_destroy.TestDestroy)

Traceback (most recent call last): File "/home/zheka/elastio/elastio-snap/tests/test_destroy.py", line 55, in test_destroy_dormant_snapshot util.unmount(self.mount) File "/home/zheka/elastio/elastio-snap/tests/util.py", line 41, in unmount raise subprocess.CalledProcessError(p.returncode, cmd, "Command failed " + str(retries) + "times") subprocess.CalledProcessError: Command '['umount', '/tmp/elastio-snap_022']' returned non-zero exit status 32.

====================================================================== ERROR: test_reload_verified_inc (test_reload.TestReload)

Traceback (most recent call last): File "/home/zheka/elastio/elastio-snap/tests/test_reload.py", line 124, in test_reload_verified_inc util.unmount(self.mount) File "/home/zheka/elastio/elastio-snap/tests/util.py", line 41, in unmount raise subprocess.CalledProcessError(p.returncode, cmd, "Command failed " + str(retries) + "times") subprocess.CalledProcessError: Command '['umount', '/tmp/elastio-snap_016']' returned non-zero exit status 32.

====================================================================== ERROR: tearDownClass (test_reload.TestReload)

Traceback (most recent call last): File "/home/zheka/elastio/elastio-snap/tests/devicetestcase.py", line 66, in tearDownClass util.unmount(cls.mount) File "/home/zheka/elastio/elastio-snap/tests/util.py", line 41, in unmount raise subprocess.CalledProcessError(p.returncode, cmd, "Command failed " + str(retries) + "times") subprocess.CalledProcessError: Command '['umount', '/tmp/elastio-snap_016']' returned non-zero exit status 32.


Some other tests are failing too probably as result of the previous failures. The full log is attached above.

Also this bug is reproducible on a bit newer kernel `5.15.0-73-generic` and it's **NOT** reproducible in our Ubuntu 22.04 vagrant box. It has already Linux kernel 5.19. But the issue is not reproducible after kernel downgrade to ``5.15.0-73-generic`.
Also the issue is not reproducible on my env with the newer  `5.19.0-43-generic`.