- 11 Dec, 2020 7 commits
-
-
Kirill Smelkov authored
* master: tests: Don't try to access db.storage when automatically closing connections bigfile/py: Garbage-collect BigFile <=> BigFileH cycles bigfile/py: Move PyVMA's support for cyclic GC close to pyvma_dealloc t/tfault-run: Require bash t/tfault-run: Clear state from previous run before starting Add way to run tests via nxdtest
-
Kirill Smelkov authored
-
Kirill Smelkov authored
- it is more logical - this way !wcfs tests don't try to excerceise wcfs functionality (and unexpectedly spawn wcfs server).
-
Kirill Smelkov authored
DB.close() does `del self.storage`. https://github.com/zopefoundation/ZODB/blob/5.6.0-14-g0eae10cd0/src/ZODB/DB.py#L646 This way if DB was closed, but some conn(s) were not, it will crash in teardown as e.g. below: _____________ ERROR at teardown of test_bigfile_zblk1_zdata_reuse ______________ def teardown_module(): > testdb.teardown() bigfile/tests/test_filezodb.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <wendelin.lib.testing.TestDB_ZEO object at 0x7fb9c0216350> def teardown(self): # close connections that test code forgot to close for connref, tb in self.connv: conn = connref() if conn is None: continue if not conn.opened: continue # still alive, but closed print("W: testdb: teardown: %s left not closed by test code" "; opened by:\n%s" % (conn, tb), file=sys.stderr) db = conn.db() > stor = db.storage E AttributeError: 'DB' object has no attribute 'storage' lib/testing.py:217: AttributeError The fix is simple - don't use db.storage at all, because it is not actually used in that code.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
- use +D to request recursive search of everything under mntpt - use -w to avoid seeing many-many warnings in case there are stale FUSE mounts.
-
Kirill Smelkov authored
DB.close() does `del self.storage`. https://github.com/zopefoundation/ZODB/blob/5.6.0-14-g0eae10cd0/src/ZODB/DB.py#L646 This way if DB was closed, but some conn(s) were not, it will crash in teardown as e.g. below: _____________ ERROR at teardown of test_bigfile_zblk1_zdata_reuse ______________ def teardown_module(): > testdb.teardown() bigfile/tests/test_filezodb.py:58: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <wendelin.lib.testing.TestDB_ZEO object at 0x7fb9c0216350> def teardown(self): # close connections that test code forgot to close for connref, tb in self.connv: conn = connref() if conn is None: continue if not conn.opened: continue # still alive, but closed print("W: testdb: teardown: %s left not closed by test code" "; opened by:\n%s" % (conn, tb), file=sys.stderr) db = conn.db() > stor = db.storage E AttributeError: 'DB' object has no attribute 'storage' lib/testing.py:217: AttributeError The fix is simple - don't use db.storage at all, because it is not actually used in that code.
-
- 10 Dec, 2020 1 commit
-
-
Kirill Smelkov authored
-
- 09 Dec, 2020 5 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
Depends on custom patch to remember SSL credentials on NEO Client, and also on patches to rework neo:// URLs to not keep credentials inside query. neo@b9a42957 neo@8c974485 neo@a2f192cb
-
Kirill Smelkov authored
-
Kirill Smelkov authored
This way when wcfs is started via _start it also takes default options into account. Noticid while running test_join with $WENDELIN_CORE_WCFS_OPTIONS set and not propagated to spawned wcfs.
-
Kirill Smelkov authored
go123 update is NFC.
-
- 04 Dec, 2020 1 commit
-
-
Kirill Smelkov authored
-
- 29 Nov, 2020 3 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 27 Nov, 2020 2 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 20 Nov, 2020 6 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 18 Nov, 2020 1 commit
-
-
Kirill Smelkov authored
-
- 17 Nov, 2020 3 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
Since ZBigFile keeps references to fileh objects that are created through it it forms a file <=> fileh cycle that is not collected without cyclic GC: https://lab.nexedi.com/nexedi/wendelin.core/blob/v0.13-52-ga702d41/bigfile/file_zodb.py#L497 https://lab.nexedi.com/nexedi/wendelin.core/blob/v0.13-52-ga702d41/bigfile/file_zodb.py#L566-571 We did not noticed this leak until now because it is small, but with upcoming wendelin.core 2 it is important to release a fileh, because there is WCFS connection associated with fileh, and if fileh is not released, that connection also stays alive, keeping on-WCFS resources still being used, and preventing WCFS from being unmounted cleanly. -> Add cyclic GC support to PyBigFile / PyBigFileH NOTE: we still don't allow PyVMA <=> PyBigFileH cycles to be collected, because fileh_close called from fileh.__del__ asserts that there are no live mappings left. See added comments for details. There is no known practical need to use such cycles, so this should be ok. See also other patches on cyclic GC topic: - 450ad804 (bigarray: ArrayRef support for BigArray) // adds cyclic GC support for PyVMA - d97641d2 (bigfile/py: Properly untrack PyVMA from GC before dealloc) /proposed-for-review-on nexedi/wendelin.core!12
-
Kirill Smelkov authored
The logic in pyvma_traverse and pyvma_clear needs to be synchronized with PyVMA deallocation. In the next patche we'll be amending this logic, and it will help a reader to keep all those functions together. For the reference: PyVMA support for cyclic GC was introduced in 450ad804 (bigarray: ArrayRef support for BigArray). See also d97641d2 (bigfile/py: Properly untrack PyVMA from GC before dealloc). /proposed-for-review-on nexedi/wendelin.core!12
-
- 09 Nov, 2020 4 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
Kirill Smelkov authored
-
- 08 Nov, 2020 2 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
Since ZBigFile keeps references to fileh objects that are created through it it forms a file <=> fileh cycle that is not collected without cyclic GC: https://lab.nexedi.com/nexedi/wendelin.core/blob/v0.13-52-ga702d41/bigfile/file_zodb.py#L497 https://lab.nexedi.com/nexedi/wendelin.core/blob/v0.13-52-ga702d41/bigfile/file_zodb.py#L566-571 We did not noticed this leak until now because it is small, but with upcoming wendelin.core 2 it is important to release a fileh, because there is WCFS connection associated with fileh, and if fileh is not released, that connection also stays alive, keeping on-WCFS resources still being used, and preventing WCFS from being unmounted cleanly. -> Add cyclic GC support to PyBigFile / PyBigFileH NOTE: we still don't allow PyVMA <=> PyBigFileH cycles to be collected, because fileh_close called from fileh.__del__ asserts that there are no live mappings left. See added comments for details. There is no known practical need to use such cycles, so this should be ok. See also other patches on cyclic GC topic: - 450ad804 (bigarray: ArrayRef support for BigArray) // adds cyclic GC support for PyVMA - d97641d2 (bigfile/py: Properly untrack PyVMA from GC before dealloc)
-
- 05 Nov, 2020 4 commits
-
-
Kirill Smelkov authored
-
Kirill Smelkov authored
X bigfile/_file_zodb: Fix ZSync to close not only wconn, but also wconn.wc through which wconn was created pywconnOf, before creating wconn, performs wc=wcfs.join(zurl) which creates new filesystem-level connection to WCFS server. This wc is used only to create wconn. So if we do not close wc, after releaseing wconn, it will leak opened file descriptor, to e.g. .wcfs/zurl and prevent tests from finishing cleanly.
-
Kirill Smelkov authored
-
Kirill Smelkov authored
Its just a debugging print - helpful to debug zwatcher, but not helpful to understand which events the system was observing.
-
- 04 Nov, 2020 1 commit
-
-
Kirill Smelkov authored
-