Request Files for EPICS modules are only in Db folder, and not db#567
Request Files for EPICS modules are only in Db folder, and not db#567kgofron wants to merge 3 commits intoareaDetector:masterfrom
Conversation
|
The first commit requires changes to iocBoot/EXAMPLE_commonPlugins.cmd |
Segmentation faultCommit 2: "fix: prevent SIGSEGV on IOC exit when pvAccess holds NDArrays after driver/pool destroyed" refers to Segmentation fault after ioc exits, when acquisition was performed (memory/pool allocated). Fix applied to ADCore 3.14.0 master.ProblemWhen an IOC exits (e.g. user types exit) after acquisition has run, the process can hit a SIGSEGV (signal 11). The crash is in NDArrayPool::release() (or equivalent use of the pool) after the detector driver and its NDArrayPool have already been destroyed. ApproachTwo parts:
asynNDArrayDriver destructor
Changes
References
|
|
I don’t understand the first commit. The Makefiles for sscan and calc both install the .req files into db/. https://github.com/epics-modules/sscan/blob/master/sscanApp/Db/Makefile https://github.com/epics-modules/calc/blob/master/calcApp/Db/Makefile These work fine in my installations of calc and sscan. @kgofron are these not working for you? |
|
CALC: I do not have .req files in db folder. I do see a Makefile line that is supposed to do it I am using newest commit in master branch:
|
|
I am using:
It works fine for me. The calc/calcApp/Db/Makefile uses the symbol REQ for installing .req files, while ADCore/ADApp/Db/Makefile uses DB. Is there is a difference in the rules we are using? I don't know where that difference would be. |
|
This is a problem with symbol REQ in calc/calcApp/Db/Makefile#L25. The .req files are not in /db folder of the EPICS module (calc,..)
|
|
In your epics-base, can you search for REQ symbol in configure/RULES.Db? kg1@lap133454:/epics/epics-base/configure$ grep -r REQ *
I am not finding REQ symbol in base. DB_INSTALLS – extra files to install into the db directory (no processing, just copy) |
The string REQ does not occur anywhere in base-7.0.10/configure or lower. This is git status on my base. Note that the only changes are support for a different Linux arch, linux-x86_64-ub22. In my support tree with all the synApps modules, including areaDetector, these are all Makefile lines that contain the string '.req'. Note that some of them use 'REQ +=', some use 'DB +=', and some use 'DB_INSTALL +='. They all work fine with no errors or warnings, and the .req files are all in the appropriate db/ directory. |
|
I believe I figured it out. I build the synApps modules, including calc, sscan, etc. in a support tree with a top-level configure directory cloned from https://github.com/EPICS-synApps/support. That contains this file: It also contains a Makefile that contains this line: That copies CONFIG_REQ to support/cfg where the build system picks it up when I build calc, sscan, etc. As you can see above, many of the synApps modules (calc, sscan, autosave, modbus, measComp, etc.) rely on this rule. We could discuss how this should best be handled in the future, but for now I don't want to change EXAMPLE_commonPlugins.cmd to look in the App/Db directory. |
|
Would moving that rule to the autosave module like was done with Would just need to define a path to |
|
I am fine running the modified version for now. I checked our beamline deployments, and none of them have .req files in /db folder.
Perhaps you used synaApps command 'make release' or similar, while I did not?? |
|
Reverted the request file source, since it can be resolved elswhere, perhaps synApps, or at module level. |
No description provided.