<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dss/dss.c, branch pu</title>
<subtitle>DSS - dyadic snapshot scheduler</subtitle>
<id>https://git.tue.mpg.de/cgit/dss/atom?h=pu</id>
<link rel='self' href='https://git.tue.mpg.de/cgit/dss/atom?h=pu'/>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/'/>
<updated>2025-03-23T18:13:50Z</updated>
<entry>
<title>Switch back to variadic log macros.</title>
<updated>2025-03-23T18:13:50Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2024-10-23T16:45:30Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=07b73ad8272084b706d18ee2286bf25711dbaabb'/>
<id>urn:sha1:07b73ad8272084b706d18ee2286bf25711dbaabb</id>
<content type='text'>
This essentially reverts commit 66cdd5bc99a5 which aimed to make the
dss log facility C89 conform. While this was a worthwhile goal in
2012, it has little value today, since in 2025 we can safely assume
a C99 compliant compiler.

The patch was created with

	git revert -Xours 66cdd5bc

followed by manual tweaks to make it compile again.
</content>
</entry>
<entry>
<title>Dedoxify the source.</title>
<updated>2025-02-01T19:11:59Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2024-10-22T18:01:10Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=5770e00c6e59528762be20610af6d8bd24d6872f'/>
<id>urn:sha1:5770e00c6e59528762be20610af6d8bd24d6872f</id>
<content type='text'>
The doxygen comments actually make the source code harder to read,
because they tend to document the obvious. Besides, they are not used
uniformly accross the code base anyway.
</content>
</entry>
<entry>
<title>New subcommand: help.</title>
<updated>2024-07-18T12:36:40Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2024-04-28T02:01:50Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=4efda213e4026634173de4baa6024ec8caa60af7'/>
<id>urn:sha1:4efda213e4026634173de4baa6024ec8caa60af7</id>
<content type='text'>
It's sometimes handy to just type e.g. "dss help run" to see the
synopsis and the options of the ls subcommand.
</content>
</entry>
<entry>
<title>build: Dynamic dependency creation and versioning.</title>
<updated>2024-07-02T16:52:03Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2024-04-27T22:35:06Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=ebdb623b5356f43fce841825ee473ea6ea56de20'/>
<id>urn:sha1:ebdb623b5356f43fce841825ee473ea6ea56de20</id>
<content type='text'>
This gets rid of Makefile.deps in favor of one auto-generated .d
file per .c file, and adds version-gen.sh, a shell script executed
by make(1) which tries to determine the version number that is going
to be incorporated into the executable via the generated version.c.
</content>
</entry>
<entry>
<title>Compute ipc key only once.</title>
<updated>2024-05-23T14:52:28Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2024-05-11T21:12:10Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=71f6d9f0a6876e37a95afa93eadaa68d7f912b8c'/>
<id>urn:sha1:71f6d9f0a6876e37a95afa93eadaa68d7f912b8c</id>
<content type='text'>
It's easier if dss.c passes the hash of the the config file path to
the ipc functions than to pass a char pointer.
</content>
</entry>
<entry>
<title>Resolve config file path only once.</title>
<updated>2024-05-23T14:52:28Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2024-04-27T21:45:59Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=73c6357dd381ec9b30d0db7aa1a0bc97ad942ea3'/>
<id>urn:sha1:73c6357dd381ec9b30d0db7aa1a0bc97ad942ea3</id>
<content type='text'>
Currently we call get_config_file_name() before each call call to a
public function of ipc.c because those functions compute the IPC key
from the filename. This is unnecessary and caused several bugs. Clean
up this mess by computing the filename only once and store it in a
global variable.
</content>
</entry>
<entry>
<title>Fix --config-file for relative paths.</title>
<updated>2023-11-07T14:11:55Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2023-09-19T14:31:49Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=cac14c7d96355a9ca02f69627f01ddebe699afcc'/>
<id>urn:sha1:cac14c7d96355a9ca02f69627f01ddebe699afcc</id>
<content type='text'>
The dss lock works by first turning the given config file path
argument into a canonical absolute path using dss_realpath(), then
hashing this absolute path to obtain a key ID for semget(2).

If the given path is relative, we have to compute the ID before
changing to the destination directory because dss_realpath() needs to
call stat(2) to detect symlinks, and this system call will fail if the
current working directory has changed. This is currently not the case
as we change to the destination directory early in check_config().

If dss_realpath() fails, we silently use the unmodified path argument
for hashing to deal with the case that the default config does not
exist. As a result, if relative paths are given, the key ID depends
on whether or not change_to_dest_dir() was called. This is the case
for the run subcommanmd, but not for the kill subcommand. Thus the
kill subcommand does not work as expected if a relative path is given.

Fix this by grabbing the lock before changing the working directory
in all cases.
</content>
</entry>
<entry>
<title>Avoid duplicate error message.</title>
<updated>2020-05-17T15:08:33Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2020-05-17T15:08:33Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=bf0f03c00f6de518d01b6cb1e94c1d447e5cd3b1'/>
<id>urn:sha1:bf0f03c00f6de518d01b6cb1e94c1d447e5cd3b1</id>
<content type='text'>
If parse_config_file() encounters an error, it logs the error *and*
returns the error code, which causes the error message to be logged
again. Fix this by removing the log statement from parse_config_file().
</content>
</entry>
<entry>
<title>Merge branch 'refs/heads/t/prune'</title>
<updated>2019-11-07T11:31:02Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2019-11-07T11:31:02Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=766ebea19c1618ddab85a4fc6af2a5bf53a9ec38'/>
<id>urn:sha1:766ebea19c1618ddab85a4fc6af2a5bf53a9ec38</id>
<content type='text'>
A couple of cleanups and unifications for the snapshot pruning code,
which is executed by the prune and run subcommands. With the patches
applied, both subcommands behave identically, i.e. they consider
the same set of snapshots as candidates for pruning. Also the prune
command gained the new --disk-space option to force it to act as if
disk space was high or low.

Cooking for six weeks.

* refs/heads/t/prune:
  Introduce prune --disk-space.
  Revamp com_prune().
  Factor out find_removable_snapshot().
  prune Simplify rm exit code logic.
  find_oldest_removable_snapshot(): Improve log message.
  prune: Print a message if there is nothing to prune.
  get_snapshot_list(): Add comment about sorting.
  prune: Fail gracefully if pre-rm hook fails.
</content>
</entry>
<entry>
<title>Fix logic to append slash to the source directory.</title>
<updated>2019-10-25T11:29:50Z</updated>
<author>
<name>Andre Noll</name>
<email>maan@tuebingen.mpg.de</email>
</author>
<published>2019-10-25T11:29:50Z</published>
<link rel='alternate' type='text/html' href='https://git.tue.mpg.de/cgit/dss/commit/?id=2f2b61d159e93e3da97c21da3d644c2c549bf12c'/>
<id>urn:sha1:2f2b61d159e93e3da97c21da3d644c2c549bf12c</id>
<content type='text'>
This bug was introduced recently in commit dd3f58c0bdf1
(create_rsync_argv(): Allocate correctly sized arg array) which
redefined N.
</content>
</entry>
</feed>
