Opened 18 years ago
Closed 17 years ago
#4768 closed defect (duplicate)
After 16233, channel change to new input segfaults backend
Reported by: | Owned by: | Isaac Richards | |
---|---|---|---|
Priority: | minor | Milestone: | 0.22 |
Component: | mythtv | Version: | head |
Severity: | medium | Keywords: | |
Cc: | Ticket locked: | no |
Description
This happens very reliably. Two sets of backtraces and backend logs attached. The backtraces don't make any sense to me.
Attachments (8)
Change History (20)
comment:2 by , 18 years ago
After more investigation, this issue appears to be a race condition. By adding an extra VERBOSE within mythevent, I'm unable to make it fail. I don't know that valgrind will catch this, but admittedly, I'm not well versed in valgrind.
comment:3 by , 18 years ago
Daniel, can we change that QDeepCopy<QStringList> to:
QStringList list = lextradata; QStringList::Iterator it; for (it = list.begin(); it != list.end(); ++it)
extradata << QDeepCopy<QString>(*it);
To be honest, I have no evidence as to why this should work better than the other and it may very well simply be slowing it down just enough to avoid the race.
comment:4 by , 18 years ago
comment:5 by , 18 years ago
Mark, I think the problem may actually be somewhere in the overall handling of MythEvents with extradata. There are only 16 instances in the MythTV code where this type of MythEvent is used and the signal monitor dispatches by far the greatest number of these events.
The code you posted just slows down the copy a little, adding a usleep() in there would probably have the same effect.
comment:6 by , 18 years ago
Resolution: | → duplicate |
---|---|
Status: | new → closed |
Hmm, it looks like this is a duplicate of #4168...
comment:7 by , 18 years ago
Resolution: | duplicate |
---|---|
Status: | closed → new |
not really a duplicate of #4168...
comment:8 by , 18 years ago
comment:9 by , 18 years ago
Milestone: | unknown → 0.22 |
---|
Moving to 0.22, my stop-gap fixes appear to have just made the problem worse, we need to address the QString is not thread-safe problem with a more comprehensive solution.
comment:11 by , 17 years ago
Well, it was an issue with QString/QStringList not being thread safe, I believe. Last I looked, there was a ticket in trunk to come up with a new MString class to work around the issue.
- Mark.
comment:12 by , 17 years ago
Resolution: | → duplicate |
---|---|
Status: | infoneeded_new → closed |
Duplicate of #5311
Backtrace 1