odbedit -R does not work if odb is corrupted
Issue #230
resolved
“odbedit -R” is used to get rid of stuck shared memory segments when there are problems with ODB (corruption, etc). SYSV shared memory provided the “ipcrm” command for this, linux posix shared memory provides “rm /dev/shm/*odb*”. mac os posix shared memory provides no way to do this, so “odbedit -R” (calls ss_shm_delete()) is required.
It turns out that “odbedit -R” has a bug - it does not work without connecting to ODB first. So if odb is corrupted, odbedit cannot connect to it and cannot remove it. The user is stuck.
K.O.
Comments (3)
-
reporter -
reporter branch feature/improve_exptab is ready for merge. K.O.
-
reporter - changed status to resolved
- Log in to comment
fix is on branch feature/improve_exptab. it turns out ss_shm_delete() needs information about the experiment settings - in the general case, the shared memory name is formed from the experiment name and the experiment path (from exptab). To permit “odbedit -R” to get this information consistently with db_connect_database(), I had to reshuffle quite a bit of exptab-related code. After some more testing I will merge this into develop.
K.O.