[mythtv-users] Problem adding slave backend "Error, invalid string list" 0.23+fixes24710

James Crow crow.jamesm at gmail.com
Wed May 26 16:57:23 UTC 2010


My SBE appears to be recording just fine now. For other non coders I
thought I would describe how I figured out what was failing.

1) Start by getting the myth source code for your system. I run
Mythbuntu and installed the source package with the required
dependencies.
2) Find the error in the logs. Mine was "writeStringList: Error,
invalid string list"
3) grep the code to find where the error comes from. I used grep -R
"writeStringList" * and grep -R "invalid string list" * This narrowed
my search down to libs/libmythdb/mythsocket.cpp
4) Find what method is called to generate the error. A little
knowledge of programming is very helpful here. Basically a method is a
section of code (enclosed in { }) that takes in data and returns data.
For my error the method is writeStringList().
5) grep the code to see where it is called. grep -R "writeStringList("
I found several calls to this method in
programs/mythbackend/mainserver.cpp
6) Place a logging (or debug) call before each call to the function
generating the error. The logging call I used: VERBOSE(VB_IMPORTANT,
"mainserver.cpp calling writeStringList() at line <whatever line
number I added>"); Basically that logs (at the level of important) the
string between the quotes.
7) Rebuild the mythtv-backend package and install the new package.
8) Run your new binary and see what is logged. I got lucky and one of
my debugging statements always happened just before the original
error. The time difference according to the logs was less than 4 ms. I
knew which call was causing the error.
9) Start over at step 4. In my case the method was SendResponse() in
mainserver.cpp.
10) I then did step 5, 6, 7, and 8 for the SendResponse() method.
11) This led me to the HandleQueryFreeSpace() method in mainserver.cpp;
12) Just before the SendResponse() call there was a call to
BackendQueryDiskSpace().
13) After looking through BackendQueryDiskSpace() I tried to run the
SQL statements and saw that they returned empty results.
14) Fix the SBE storagegroups and things are working now.

Cheers,
James


More information about the mythtv-users mailing list