Changesets: bareos
master d5e06ccc 2024-07-12 07:33 Sebastian Sura Ported: N/A Details Diff |
virtualfull-test: fix not counting files anymore | ||
mod - systemtests/tests/virtualfull-basic/testrunner | Diff File | ||
master eff198b5 2024-07-12 07:33 Sebastian Sura Ported: N/A Details Diff |
CMakeLists: enable building tools on cross chain | ||
mod - core/src/tools/CMakeLists.txt | Diff File | ||
master 8f56ab12 2024-07-12 07:19 Sebastian Sura Ported: N/A Details Diff |
glob: fix calling strlen on path | ||
mod - core/src/win32/compat/glob.cc | Diff File | ||
master c38a9ac2 2024-07-11 17:06 Committer: Bareos Bot Ported: N/A Details Diff |
core: handle PluginOptionsACL and regexwhere On ModifyJobParameters, check PluginOptionsACL and the WhereACL also for regexwhere. |
||
mod - core/src/dird/ua_run.cc | Diff File | ||
master 84dbca4f 2024-07-11 17:05 Committer: Bareos Bot Ported: N/A Details Diff |
core: always allow 'exit' cmd exit is an alias to quit, so handle exit identical as quit. |
||
mod - core/src/dird/ua_cmds.cc | Diff File | ||
master fc4a8a2f 2024-07-11 15:53 Committer: Bareos Bot Ported: N/A Details Diff |
Update systemtests/python-modules/bareos_unittest/json.py Co-authored-by: Sebastian Sura <124262655+sebsura@users.noreply.github.com> |
||
mod - systemtests/python-modules/bareos_unittest/json.py | Diff File | ||
master c89a8816 2024-07-11 15:41 Committer: Bareos Bot Ported: N/A Details Diff |
docs: rear: applied review suggestions | ||
mod - docs/manuals/source/Appendix/DisasterRecoveryUsingBareos.rst | Diff File | ||
master 63564a36 2024-07-11 15:37 Sebastian Sura Ported: N/A Details Diff |
attribs: fix missing utimes on mingw cross build | ||
mod - core/src/findlib/find.h | Diff File | ||
mod - core/src/win32/compat/include/compat.h | Diff File | ||
master 4e2fd398 2024-07-11 14:25 Sebastian Sura Ported: N/A Details Diff |
cmakelists: make bash optional | ||
mod - systemtests/CMakeLists.txt | Diff File | ||
mod - systemtests/cmake/BareosSystemtestFunctions.cmake | Diff File | ||
master 568102c8 2024-07-11 08:15 Sebastian Sura Committer: Bareos Bot Ported: N/A Details Diff |
db: fix not locking the db to print its error db->strerror() should only be called with the lock held unless the db is private. 90% of the time db calls look like ``` if (!db->Function()) { Error(db->strerror()); } ``` In these cases we can need to lock the db during the if, otherwise we could read stale info (or even run into a race condition as strerror is unsynchronized). |
||
mod - core/src/cats/postgresql.cc | Diff File | ||
mod - core/src/dird/admin.cc | Diff File | ||
mod - core/src/dird/archive.cc | Diff File | ||
mod - core/src/dird/backup.cc | Diff File | ||
mod - core/src/dird/bsr.cc | Diff File | ||
mod - core/src/dird/catreq.cc | Diff File | ||
mod - core/src/dird/check_catalog.cc | Diff File | ||
mod - core/src/dird/consolidate.cc | Diff File | ||
mod - core/src/dird/dbcheck.cc | Diff File | ||
mod - core/src/dird/dbcheck_utils.cc | Diff File | ||
mod - core/src/dird/fd_cmds.cc | Diff File | ||
mod - core/src/dird/job.cc | Diff File | ||
mod - core/src/dird/migrate.cc | Diff File | ||
mod - core/src/dird/ndmp_dma_backup_NDMP_BAREOS.cc | Diff File | ||
mod - core/src/dird/ndmp_dma_backup_NDMP_NATIVE.cc | Diff File | ||
mod - core/src/dird/ndmp_dma_backup_common.cc | Diff File | ||
mod - core/src/dird/ndmp_dma_restore_NDMP_BAREOS.cc | Diff File | ||
mod - core/src/dird/ndmp_dma_restore_NDMP_NATIVE.cc | Diff File | ||
mod - core/src/dird/ndmp_fhdb_helpers.cc | Diff File | ||
mod - core/src/dird/ndmp_ndmmedia_db_helpers.cc | Diff File | ||
mod - core/src/dird/newvol.cc | Diff File | ||
mod - core/src/dird/next_vol.cc | Diff File | ||
mod - core/src/dird/quota.cc | Diff File | ||
mod - core/src/dird/restore.cc | Diff File | ||
mod - core/src/dird/ua_cmds.cc | Diff File | ||
mod - core/src/dird/ua_dotcmds.cc | Diff File | ||
mod - core/src/dird/ua_output.cc | Diff File | ||
mod - core/src/dird/ua_run.cc | Diff File | ||
mod - core/src/dird/vbackup.cc | Diff File | ||
mod - core/src/dird/verify.cc | Diff File | ||
mod - core/src/stored/bscan.cc | Diff File | ||
master 549531e7 2024-07-11 07:58 Sebastian Sura Committer: Bareos Bot Ported: N/A Details Diff |
python-fd: fix python crash Python uses a (Type, Name) -> Object cache for member lookups inside of types. This cache was shared globally by all interpreters up until 3.10, where it was made to be per-interpreter instead: ``` // typeobject.c static struct method_cache_entry method_cache[1 << MCACHE_SIZE_EXP]; ``` The cache does sanity checking to make sure to only return the correct answers: ``` if (method_cache[h].version == type->tp_version_tag && method_cache[h].name == name) { method_cache_hits++; return method_cache[h].value; } ``` but the problem is that this does not correctly work with static types: Their type id (type->tp_version_tag) is the same for all interpreters since they all reuse the same type. This means that if you ask for the same members in two different interpreters and those member names are allocated *at the same address*, then you will get the same object pointer back. This object pointer may not belong to one of those interpreters though and in fact can be a dangling pointer if the other interpreter was already killed. This actually happened at a customer when accessing `datetime.datetime.max` where the `Lookup(datetime, max)` call actually returned a cached result from a previous interpreter. This may have to do with string interning (which caused the 'max' name to have the same address), but it could also have been a pure coincidence. Thankfully python offers a (stable api) call to clear the cache. This bug can be worked around by just calling that function everytime we destroy an interpreter so that the map never contains dangling pointers. This obviously does not fix the problem completely but it should at least fix it for cases where there are no concurrent python jobs running. Its possible that there are more suprises like this in the python code base. |
||
mod - core/src/plugins/filed/python/python-fd.cc | Diff File | ||
master eeb105c6 2024-07-11 07:52 Sebastian Sura Committer: Bareos Bot Ported: N/A Details Diff |
python-fd: fix calling bareosfd functions to early While it should technically be no problem to call the bareosfd capi without holding the gil, we have to keep in mind that we are still modifying shared global state and as such we need to serialize those calls. (Ab-)Using the gil to do so is the easiest way to fix these problems. I am not 100% sure how running multiple plugin jobs in parallel never ran into issues considering that handlePluginEvent was constantly clobbering the global "plugin context" in bareosfd. Its possible that im overlooking something. |
||
mod - core/src/plugins/filed/python/python-fd.cc | Diff File | ||
master b1bf2450 2024-07-11 07:49 Sebastian Sura Committer: Bareos Bot Ported: N/A Details Diff |
python-fd: serialize calls to PyThreadState_New with GIL I am not sure if this is necessary, but the documentation says: ``` The global interpreter lock need not be held, but may be held if it is necessary to serialize calls to this function. ``` But it does not elaborate on *when* it is necessary to serialize those calls. As such I will pretend that it is also necessary and use the gil to do so. |
||
mod - core/src/plugins/filed/python/python-fd.cc | Diff File | ||
master 16e2fbf8 2024-07-10 23:31 Committer: Bareos Bot Ported: N/A Details Diff |
systemtests: replace config-syntax-crash test Invalid chars in WhereAcls are now properly marked as configuration errors. Therefore in the original test config-syntax-crash, the Bareos Director refuses to start (with a proper error message), instead of just ignoring the invalid entry. Instead of adapting the config-syntax-crash, the test for invalid chars is now added to the python-bareos tests and the config-syntax-crash removed. |
||
mod - systemtests/python-modules/bareos_unittest/json.py | Diff File | ||
mod - systemtests/tests/CMakeLists.txt | Diff File | ||
rm - systemtests/tests/config-syntax-crash/CMakeLists.txt | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/catalog/MyCatalog.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/client/bareos-fd.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/director/bareos-dir.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/fileset/Catalog.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/fileset/SelfTest.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/job/RestoreFiles.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/job/backup-bareos-fd.conf | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/jobdefs/DefaultJob.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/messages/Daemon.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/messages/Standard.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/pool/Differential.conf | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/pool/Full.conf | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/pool/Incremental.conf | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/pool/Scratch.conf | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/profile/operator.conf | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-dir.d/storage/File.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-fd.d/client/myself.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-fd.d/director/bareos-dir.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-fd.d/messages/Standard.conf | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-sd.d/device/FileStorage.conf | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-sd.d/director/bareos-dir.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-sd.d/messages/Standard.conf | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bareos-sd.d/storage/bareos-sd.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/etc/bareos/bconsole.conf.in | Diff File | ||
rm - systemtests/tests/config-syntax-crash/testrunner | Diff File | ||
mod - systemtests/tests/python-bareos/test_json_config.py | Diff File | ||
master faa34dbe 2024-07-10 19:22 Committer: Bareos Bot Ported: N/A Details Diff |
systemtests: prevent problems with WhereACL path In some automated systemtests, the path did contain the "~", which is considerd invalid in a WhereACL. Changed the WhereACL to circumvent that. |
||
master 3bb317ee 2024-07-10 17:52 Bareos Bot Committer: GitHub Ported: N/A Details Diff |
Merge pull request #1846 Improve PythonFdWrapper class |
||
mod - CHANGELOG.md | Diff File | ||
mod - core/src/plugins/filed/python/pyfiles/BareosFdWrapper.py | Diff File | ||
mod - devtools/pip-tools/pr_tool/main.py | Diff File | ||
master 0851a7d2 2024-07-10 17:52 Bareos Bot Ported: N/A Details Diff |
Update CHANGELOG.md | ||
mod - CHANGELOG.md | Diff File | ||
master 82a76ae9 2024-07-09 17:32 Committer: bruno-at-bareos Ported: N/A Details Diff |
packaging: clean up suse macros | ||
mod - core/platforms/packaging/bareos.spec | Diff File | ||
master 3e59d0e4 2024-07-09 17:23 Committer: Bareos Bot Ported: N/A Details Diff |
docs: regenerate autogenerated files | ||
mod - docs/manuals/source/include/autogenerated/bareos-dir-config-schema.json | Diff File | ||
master d3eaeb35 2024-07-09 16:06 Committer: Bareos Bot Ported: N/A Details Diff |
systemtests python-bareos: check WhereACL | ||
mod - systemtests/python-modules/bareos_unittest/json.py | Diff File | ||
rm - systemtests/tests/python-bareos/etc/bareos/bareos-dir.d/console/limited-operator.conf | Diff File | ||
add - systemtests/tests/python-bareos/etc/bareos/bareos-dir.d/console/limited-operator.conf.in | Diff File | ||
mod - systemtests/tests/python-bareos/test_acl.py | Diff File | ||
master 1dcc2623 2024-07-09 16:04 Committer: Bareos Bot Ported: N/A Details Diff |
systemtests python-bareos: reuse operator profile | ||
mod - systemtests/tests/python-bareos/etc/bareos/bareos-dir.d/console/client-bareos-fd.conf | Diff File | ||
master a74c18fe 2024-07-09 14:50 Committer: Bareos Bot Ported: N/A Details Diff |
core: handle WhereACL like all other ACLs The documenation and code comments have described that an empty WhereACL would accept all input, like "*all*". In fact, that has never (?) been implemented in that way, therefore we removed this special case and handle the WhereACL like all other ACLs. |
||
mod - core/src/dird/dird_conf.cc | Diff File | ||
mod - core/src/dird/ua_acl.cc | Diff File | ||
mod - docs/manuals/source/manually_added_config_directive_descriptions/dir-console-WhereAcl.rst.inc | Diff File | ||
master ea241197 2024-07-09 14:40 Committer: Bareos Bot Ported: N/A Details Diff |
core: cleanup | ||
mod - core/src/dird/ua_acl.cc | Diff File | ||
master 57ab8b25 2024-07-09 14:37 Committer: Bareos Bot Ported: N/A Details Diff |
core: empty Where_ACL allows restoring everywhere This is now implemented like it has been documented. |
||
mod - core/src/dird/ua_acl.cc | Diff File | ||
master 65a5502d 2024-07-09 14:20 Committer: Bareos Bot Ported: N/A Details Diff |
core: WhereACL: adding missing check when modify job | ||
mod - core/src/dird/ua_run.cc | Diff File |