RTEMS task var lock compromised in thread show function
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
EPICS Base |
Fix Released
|
Low
|
mdavidsaver | ||
3.14 |
Fix Released
|
Low
|
mdavidsaver | ||
3.15 |
Fix Released
|
Low
|
mdavidsaver | ||
3.16 |
Fix Released
|
Low
|
mdavidsaver |
Bug Description
I see that this code
void epicsThreadShow (epicsThreadId id, unsigned int level)
{
struct taskVar *v;
if (!id) {
return;
}
taskVarLock ();
for (v = taskVarHead ; v != NULL ; v = v->forw) {
if ((rtems_id)id == v->id) {
return;
}
}
taskVarUnlock ();
fprintf(
}
needs a fix like this otherwise we can see (we have observed) a system lock up when epicsThreadShow is called on RTEMS
bzr diff src/libCom/
=== modified file 'src/libCom/
--- src/libCom/
+++ src/libCom/
@@ -672,6 +672,7 @@
for (v = taskVarHead ; v != NULL ; v = v->forw) {
if ((rtems_id)id == v->id) {
+ taskVarUnlock ();
}
}
Changed in epics-base: | |
importance: | Undecided → High |
status: | New → Confirmed |
no longer affects: | epics-base/3.13 |
Yup, looks like this has been broken for quite some time.