18 Sep 2026, Derek Fujimoto, Info, NOTICE: MIDAS Repository Host Migration
|
Dear MIDAS Community,
In a little over a week from today, on September 28, we will migrate the MIDAS repository away from bitbucket and to TRIUMF's self-hosted
gitlab instance. |
18 Sep 2026, Konstantin Olchanski, Info, mhttpd cleanup
|
some cleanup of mhttpd:
- remove obsolete c-generated equipment view page (replaced by eqtable.html)
- remove support for obsolete versions of mongoose (HAVE_MONGOOSE4, HAVE_MONGOOSE6, mhttpd6)
|
18 Sep 2026, Konstantin Olchanski, Bug Fix, odb json encoder fixes
|
we have one computer that crashes regularly and produces a corrupted ODB. while
debugging it, I discovered that for some ODB corruptions and for some unexpected
ODB errors, the ODB JSON encoder will produce invalid JSON files that cannot be
|
23 Jul 2026, Konstantin Olchanski, Info, ODB links to array elements explained
|
this is a draft message, it will be updated with additional information. K.O.
Back in 2007, Stefan implemented the very useful feature, ODB links to array elements,
|
09 Sep 2026, Konstantin Olchanski, Info, ODB links to array elements explained
|
My update of db_get_data_vec() got delayed because I had to figure out
how the links to array elements work and fix a number of places
where they are not handled correctly or consistently.
|
09 Sep 2026, Konstantin Olchanski, Info, added db_get_data_vec() & co
|
The MIDAS RPC layer can pass std::string and std::vector data of arbitrary size.
I am adding corresponding ODB API functions to use this. Instead of taking a pointer to preallocated array
|
17 Aug 2026, Konstantin Olchanski, Info, change in cm_shutdown and the Programs page
|
There was a bit of confusion on the MIDAS Programs page with programs that have
similar names. This confusion relates to the use of bUnique in cm_shutdown() and
cm_exist().
|
09 Sep 2026, Konstantin Olchanski, Info, change in cm_shutdown and the Programs page
|
> There was a bit of confusion on the MIDAS Programs page with programs that have
> similar names. This confusion relates to the use of bUnique in cm_shutdown() and
> cm_exist().
|
07 Sep 2026, Stefan Ritt, Info, ODB Browser Update   
|
A major update of the ODB Browser has been made in the last few days. Here are the new features:
The browser supports now multiple tabs. You can open as many tabs as you like, and they stay persistent even if you
navigate away and come back to the ODB page (unless you close the browser). This allows easily swiching between different subdirectories in the ODB.
A |
01 Sep 2026, Derek Fujimoto, Info, Feature Release: Shift Scheduler  
|
Motivation
Most experimental groups, especially those that take beam, need to coordinate shifts. This addition addresses this need.
Main Features
Main functionality
Assign, or sign up for specific shifts (via drop-down menu)
Indicate
availability for complex scheduling tasks
Force assignments only to available shifters
Write notes for each day
Self-registration: |
14 Aug 2026, Julian Wollrath, Info, mplot.js: viridis colour scheme for 2D plots
|
Dear all,
please do not be surprised if your 2D plots start looking different: The default
|
14 Aug 2026, Stefan Ritt, Info, mplot.js: viridis colour scheme for 2D plots
|
Here is an example how a 2D plot looks like.
Stefan |
07 Jul 2026, Marius Koeppel, Suggestion, Multithreaded PySequencer
|
Dear all,
I was wondering if one can use multiple pysequencers at the same time and if not
|
08 Jul 2026, Konstantin Olchanski, Suggestion, Multithreaded PySequencer
|
> I was wondering if one can use multiple pysequencers at the same time and if not
> if this feature is planned in the future? Our experiment (mu3e) has one frontend
> per detector and each sequencer would only access a subset of ODB entries.
|
03 Aug 2026, Mark Grimes, Suggestion, Multithreaded PySequencer
|
> > I was wondering if one can use multiple pysequencers at the same time and if not
> > if this feature is planned in the future? Our experiment (mu3e) has one frontend
> > per detector and each sequencer would only access a subset of ODB entries.
|
06 Aug 2026, Konstantin Olchanski, Suggestion, Multithreaded PySequencer
|
> > > I was wondering if one can use multiple pysequencers at the same time and if not
> > > if this feature is planned in the future? Our experiment (mu3e) has one frontend
> > > per detector and each sequencer would only access a subset of ODB entries.
|
17 Jul 2026, Konstantin Olchanski, Bug Fix, repair of corrupted ODB free lists
|
I finished debugging the code I wrote to check and repair the ODB key area and data area free lists, this
should fix the famous "ODB is full" error.
|
20 Jul 2026, Konstantin Olchanski, Bug Fix, repair of corrupted ODB free lists
|
> I finished debugging the code I wrote to check and repair the ODB key area and data area free lists, this
> should fix the famous "ODB is full" error.
|
23 Jul 2026, Konstantin Olchanski, Bug Fix, repair of corrupted ODB free lists
|
> > I finished debugging the code I wrote to check and repair the ODB key area and data area free lists, this
> > should fix the famous "ODB is full" error.
>
|
25 Jun 2026, Konstantin Olchanski, Forum, midas forum elog updated
|
I updated the midas forum elog to the latest version from git: 083448f7
Also investigated elogd failure to start on reboot,
|
20 Jul 2026, Konstantin Olchanski, Forum, midas forum elog crashed, restarted
|
> I updated the midas forum elog to the latest version from git: 083448f7
>
> Also investigated elogd failure to start on reboot,
|
20 Jul 2026, Konstantin Olchanski, Forum, midas forum elog crashed, restarted
|
Also a crash soon after startup:
https://elog.psi.ch/elogs/Forum/69934
|
21 Jul 2026, Konstantin Olchanski, Forum, midas forum elog crashed, restarted
|
crashed again, restarted. gcc address sanitizer disables core dumps by default, to enable, do this:
export ASAN_OPTIONS=abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1
K.O. |
22 Jul 2026, Konstantin Olchanski, Forum, midas forum elog crashed, restarted
|
> crashed again, restarted. gcc address sanitizer disables core dumps by default, to enable, do this:
> export ASAN_OPTIONS=abort_on_error=1:disable_coredump=0:unmap_shadow_on_exit=1
|
16 Jul 2026, Konstantin Olchanski, Info, c++ exceptions, follow up
|
Bjarne Stroustrup gave a nice talk at CERN, good enough to bring Rene Brun out of retirement to ask a few
questions at the 1:16:50 mark.
|
16 Jul 2026, Konstantin Olchanski, Info, c++ exceptions, follow up
|
> If you did not want to use exceptions before watching this talk, you will after!
Not me. One issue, exceptions are unpredictable, for example, does this code always print "hello, world"?
|
16 Jul 2026, Yiwen Yang, Info, c++ exceptions, follow up
|
Thanks for sharing the videos, Konstantin.
> Unpredictable code can be dangerous:
|
16 Jul 2026, Yiwen Yang, Info, c++ exceptions, follow up
|
| Looks like the code formatting got messed up by the elog... here it is in the attachment instead. |
20 Jul 2026, Konstantin Olchanski, Info, c++ exceptions, follow up
|
> Looks like the code formatting got messed up by the elog... here it is in the attachment instead.
unfortunately, your code does nothing because you do not call "i2c_set_bit(10, 1);".
|
01 Jun 2026, Yiwen Yang, Suggestion, Multithreaded deferred transitions
|
Hi,
On the DAQ system for T2K's ND280 near detector, we use deferred
|
11 Jun 2026, Stefan Ritt, Suggestion, Multithreaded deferred transitions
|
Multithreaded transitions were introduced by KO in 2019. Please ask him to make deferred transitions work
again or simply use non-multithreaded transitions.
|
25 Jun 2026, Konstantin Olchanski, Suggestion, Multithreaded deferred transitions
|
> Multithreaded transitions were introduced by KO in 2019. Please ask him to make deferred transitions work
> again or simply use non-multithreaded transitions.
|
25 Jun 2026, Yiwen Yang, Suggestion, Multithreaded deferred transitions
|
> I recommend against using them. Maybe you can explain what you do and I can suggest a way
> to avoid using the
deferred transition.
|
08 Jul 2026, Konstantin Olchanski, Suggestion, Multithreaded deferred transitions
|
> Deferred transition is registered by the FPN00
FPN00, yes, this rings a bell.
|
16 Jul 2026, Yiwen Yang, Suggestion, Multithreaded deferred transitions
|
> > (main clock) process to make sure the logger has finished logging all events before continuing to stop readout
>
> of other frontends. There is also a timeout, in case sometimes an event goes missing, to proceed with the run
|
06 Jul 2026, Joel Sander, Suggestion, mlogger MySQL improved connection
|
We recently had an instance where mlogger lost its connection to the database resulting in 317 write errors on mysql_insert and (Good) did report connection
errors to the Midas log but (Bad) didn't attempt to restore the connection. With some help from Gemini, I've drafted a potential solution to reheal.
Our copy uses mysql_query_debug line 1903 in our copy that inserts rows, creates tables, etc: |
08 Jul 2026, Konstantin Olchanski, Suggestion, mlogger MySQL improved connection
|
you can also copy the reconnect code from history_schema.cxx.
if I remember right, the test case for correct reconnect is to start the mlogger,
|
07 Jul 2026, Derek Fujimoto, Info, Automated Testing
|
I've been working on updating MIDAS' testing suite. It is yet incomplete, but the basic structure is there. Once the code coverage reaches a
more acceptable level and it is decided that the new tests are good replacements to the existing tests, it will be merged into develop.
Tests are located in $MIDASSYS/tests directory in the automated_testing branch. |
26 Jun 2026, Derek Fujimoto, Info, MySQL Add Column
|
Hello,
The UCN group at TRIUMF has used the history system extensively with a MySQL backend. They see long wait times (up to 20 mins) to add new logged variables |
21 May 2026, Konstantin Olchanski, Bug Report, incompatible ODB XML dumps
|
While testing manalyzer, I found that it dies from an exception on odbxx, error message is "/home/olchansk/packages/midas/include/odbxx.h:1231: No "handle"
attribute found in XML data".
|
09 Jun 2026, Stefan Ritt, Bug Report, incompatible ODB XML dumps
|
I fixed that by not requiring the handle explicitly:
if (mxml_get_attribute(node, "handle") != nullptr)
|
25 Jun 2026, Konstantin Olchanski, Bug Report, incompatible ODB XML dumps
|
> I fixed that by not requiring the handle explicitly ...
>
> [it was...] an uncaught exception. If you do not want the abort, catch the exception.
|
29 May 2026, Zaher Salman, Info, ODBvalue timeout
|
Dear all, I implemented an optional timeout for the wait ODBvalue command. The way it works is similar to the standard wait command:
WAIT ODBvalue, /Equipment/HV/Variables/Measured[3], <, 100, timeout, 60
|
29 May 2026, Stefan Ritt, Info, ODBvalue timeout
|
> Dear all, I implemented an optional timeout for the wait ODBvalue command. The way it works is similar to the standard wait command:
>
> WAIT ODBvalue, /Equipment/HV/Variables/Measured[3], <, 100, timeout, 60
|
29 May 2026, Zaher Salman, Info, ODBvalue timeout
|
>
> How can the MSL code figure out if the wait succeeded or timed out?
>
|
29 May 2026, Stefan Ritt, Info, ODBvalue timeout
|
> >
> > How can the MSL code figure out if the wait succeeded or timed out?
> >
|
29 May 2026, Zaher Salman, Info, ODBvalue timeout
|
> > >
> > > How can the MSL code figure out if the wait succeeded or timed out?
> > >
|
29 May 2026, Stefan Ritt, Info, ODBvalue timeout
|
> > > >
> > > > How can the MSL code figure out if the wait succeeded or timed out?
> > > >
|
21 May 2026, Konstantin Olchanski, Info, manalyzer --save-odb
|
Due my oversight, the code for extracting ODB dumps from MIDAS data files from rootana/old_analyzer/event_dump.cxx was missing in
manalyzer.cxx.
|