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

joergs


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

joergs


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

joergs


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

joergs


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

joergs


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

joergs


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

arogge


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

joergs


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

joergs


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

joergs


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

joergs


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

joergs


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

joergs


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

joergs


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
 First  Prev  1 2 3 ... 13 14 15 16 17 18 19 ... 60 ... 120 ... 180 ... 240 ... 300 ... 360 ... 420 ... 480 ... 540 ... 600 ... 641 642 643  Next  Last