- 21 Jun, 2021 4 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
* t: . X wcfs: Fix ZSync to close wconn on zdb.close, even if zconn stays alive X lib/zodb: Connection += onShutdownCallback . X wcfs: lsof +D misbehaves - don't use it X wcfs: _fuse_unmount: Try first `kill -TERM` before `kill -QUIT` wcfs X wcfs: Tune _fuse_unmount to include `fusermount -u` error message into raised exception X wcfs: Teach start to start successfully even after unclean wcfs shutdown fixup! X wcfs: Run fusermount and friends with /bin:/usr/bin always on path X wcfs: Run fusermount and friends with /bin:/usr/bin always on path X wcfs: Add start to spawn a Server that can be later stopped (draft)
-
- 20 Jun, 2021 1 commit
-
-
Kirill Smelkov authored
-
- 18 Jun, 2021 7 commits
-
-
Kirill Smelkov authored
Even if ZODB DB is closed and releases zconn from its .pool, zconn can still stay alive being referenced from any other live python object - e.g. from a frame, a traceback etc. This situation in particular happens under ERP5's runUnitTest. As the result, if we don't hook into DB.close and close wconn only on zconn GC, files opened on WCFS filesystem stay opened, and WCFS server cannot be cleanly unmounted when test run completes. -> Fix it. P.S. ZODB@bbd03b3a is good, but does not really solve this problem because, once again, zconn stays referenced from objects besides DB.
-
Kirill Smelkov authored
In the next patch we'll need this functionality to subscribe ZSync into db.close to know when ZODB Connection is shut down even if it stays alive referenced by some other objects.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
For example even with live wcfs lsof +D output differes from regular lsof and is misleading: LSOF /dev/shm/wcfs/b53b61099c740b452b383db6df6dce4ad6d23ba2: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME runUnitTe 29137 slapuser34 24r REG 0,48 111 4 /dev/shm/wcfs/b53b61099c740b452b383db6df6dce4ad6d23ba2/.wcfs/zurl runUnitTe 29137 slapuser34 25u REG 0,48 0 7 /dev/shm/wcfs/b53b61099c740b452b383db6df6dce4ad6d23ba2/head/watch runUnitTe 29137 slapuser34 26r REG 0,48 2097152 9 /dev/shm/wcfs/b53b61099c740b452b383db6df6dce4ad6d23ba2/head/bigfile/00000000000077e2 LSOF +D /dev/shm/wcfs/b53b61099c740b452b383db6df6dce4ad6d23ba2: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME runUnitTe 29137 slapuser34 24r REG 0,48 111 4294967295 /dev/shm/wcfs/b53b61099c740b452b383db6df6dce4ad6d23ba2/.wcfs/zurl runUnitTe 29137 slapuser34 25u REG 0,48 0 4294967295 /dev/shm/wcfs/b53b61099c740b452b383db6df6dce4ad6d23ba2/.wcfs/zurl runUnitTe 29137 slapuser34 26r REG 0,48 2097152 4294967295 /dev/shm/wcfs/b53b61099c740b452b383db6df6dce4ad6d23ba2/.wcfs/zurl
-
Kirill Smelkov authored
Just aborting the FUSE connection does not make WCFS to exit. This abort is needed to avoid deadlocks, but we should also signal WCFS it should stop. Not doing so will lead to timeout in wait after FUSE connection abort and `kill -QUIT` triggered, which makes WCFS crash and print lots of traceback to stderr before exiting.
-
Kirill Smelkov authored
Previously that message was printed to stderr and it was very confusing: we had something in the exception message, something in the log and something in stderr. Now exception message is self-sufficient and log provides more details.
-
Kirill Smelkov authored
This patch does to start what b0ca031f did for join/serve. Stop duplicating the code and factor logic to "attach to wcsrv, or prepare to start" into _try_attach_wcsrv function.
-
- 17 Jun, 2021 2 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
For example runUnitTest in ERP5 runs test program with $PATH set without those directores. This leads to failures like File "/srv/slapgrid/slappart16/srv/testnode/djk/soft/950bed0366ff018b829e9bbb7dc3326f/parts/wendelin.core/wcfs/__init__.py", line 533, in _is_mountpoint mounted = (0 == subprocess.call(["mountpoint", "-q", path])) File "/srv/slapgrid/slappart16/srv/testnode/djk/shared/python2.7/a8bdae732e550b385eb04a06ed09d383/lib/python2.7/subprocess.py", line 172, in call return Popen(*popenargs, **kwargs).wait() File "/srv/slapgrid/slappart16/srv/testnode/djk/shared/python2.7/a8bdae732e550b385eb04a06ed09d383/lib/python2.7/subprocess.py", line 394, in __init__ errread, errwrite) File "/srv/slapgrid/slappart16/srv/testnode/djk/shared/python2.7/a8bdae732e550b385eb04a06ed09d383/lib/python2.7/subprocess.py", line 1047, in _execute_child raise child_exception OSError: [Errno 2] No such file or directory where those system programs are not found.
-
- 16 Jun, 2021 2 commits
-
-
Kirill Smelkov authored
Implement Server.stop using most of the functionality that was previously living in tWCFS test part.
-
Kirill Smelkov authored
-
- 15 Jun, 2021 6 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 14 Jun, 2021 8 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
* t: fixup! X wcfs: v↑ go-fuse (checkpoint)
-
Kirill Smelkov authored
I forgot to update go.sum entry there and it started to fail to build. Thanks to Rafael for the bug report.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 13 Jun, 2021 1 commit
-
-
Kirill Smelkov authored
-
- 11 Jun, 2021 9 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
This will, hopefully, be used to fix rebuild. * t2: . . . . . . . X treediff ret += δtkeycov . .
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-