The Jul2021 documentation can be found here.
A bug was fixed when upgrading a database from the Oct2020 releases (11.39.X) or older when the write-ahead log (WAL) was not empty and contained instructions to create new tables.
Avoid logging of failure to backup files that didn’t need to be backed up in the first place.
Avoid an attempt to access a file when the database is in memory.
When destroying a bat, make sure there are no files left over in the BACKUP directory since they can cause problems when the bat id gets reused.
Fixed an off-by-one error in the logger which caused older log files to stick around longer in the write-ahead log than necessary.
When an empty BAT is committed, skip writing (and synchronizing to disk) the heap (tail and theap) files and write 0 for their sizes to the BBP.dir file. When reading the BBP.dir file, if an empty BAT is encountered, set the sizes of those files to 0. This fixes potential issues during startup of the server (BBPcheckbats reporting errors).
Make sure heap files of transient bats get deleted when the bat is destroyed. If the bat was a partial view (sharing the vheap but not the tail), the tail file wasn’t deleted.
Various changes were made to satisfy newer compilers.
The batDirtydesc and batDirtyflushed Boolean values have been deprecated and are no longer used. They were both holdovers from long ago.
Various race conditions (data races) have been fixed.
All accesses to the BACKUP directory need to be protected by the same lock. The lock already existed (GDKtmLock), but wasn’t used consistently. This is now fixed. Hopefully this makes the hot snapshot code more reliable.
When multiple identical messages are written to the log, write the first one, and combine subsequent ones in a single message.
Fixed a leak where the log file wasn’t closed when it was reopened after a log rotation (SIGHUP signal).
Try to deal more gracefully with “inherited” mserver5 processes. This includes not complaining about an “impossible state”, and allowing such processes to be stopped by the monetdbd process.
When a transient failure occurs during processing of a new connection to the monetdbd server, sleep for half a second so that if the transient failure occurs again, the log file doesn’t get swamped with error messages.
Fixed a race condition which could cause a too large size being written for a .theap file to the BBP.dir file after the correct size file had been saved to disk.
We now ignore the size and capacity columns in the BBP.dir file. These values are essential during run time, but not useful in the on-disk image of the database.
Fixed race condition during backup of BATs.
Fixed append to BATs of type msk (bit mask).
Fix to WAL logger when a BAT gets replaced within a transaction.
Add number of rows affected by output statements into the total rowcount.
Fix to MAL code generation.
7225: Invalid memory access when extending a BAT during appends
7228: COMMIT: transaction is aborted because of concurrency conflicts, will ROLLBACK instead