#590 closed Defect (fixed)
Project with many app files causes "No app version for result" on clients
Reported by: | omar | Owned by: | davea |
---|---|---|---|
Priority: | Undetermined | Milestone: | Undetermined |
Component: | Server - Other | Version: | |
Keywords: | app_info blob buffer | Cc: |
Description
I am running a BOINC grid with one application that has about 100 different executables / dlls contained within it, and more being added every week. Last week, after adding a few more files to the mix, I noticed all the clients had stopped crunching. After doing some digging into the database and log files, I noticed that there appears to be a hard limit of 64KB on the size of the xml_doc field in the app_version table. Anything beyond that is simply truncated, which causes the xml file (I believe it becomes the app_info.xml file on the clients) to be "invalid" and fail to parse thereby producing the no app version error on the clients. Apparently, when I added those new executables it had pushed the size of the file/field over 64KB.
I do not see any reason for this limit, since the xml_doc field is of BLOB type, so I am classifying it as a defect.
Change History (5)
comment:1 Changed 17 years ago by
comment:2 Changed 17 years ago by
Keywords: | blob buffer added; application client error no app version for result limit 64KB removed |
---|
In addition, it should give an error if the length limit is exceeded, not silently truncate.
In fact, I wouldn't be surprised if you were causing a buffer overflow in the C++ code.
comment:3 Changed 17 years ago by
Resolution: | → fixed |
---|---|
Status: | new → closed |
Fixed in changeset 14986. I changed the DB field to mediumblob (up to 16MB) and the struct field to 256KB (can increase this further if needed). Make sure you run db_update.php and recompile all server software.
comment:4 Changed 17 years ago by
Resolution: | fixed |
---|---|
Status: | closed → reopened |
Thanks for such a quick turn around, but I do not think this totally fixes it! I ran db_update.php and recompiled all the server progs, but my clients now say "[error] No close tag in scheduler reply".
To make sure I did not mess anything up between the upgrades, I recreated the project from scratch. I then added a few applications files and created some work. Up until this point the system works as expected. It is once I add the rest of the application files (107 files to be exact) the error appears again. I do not think think it is truncating the reply message since the sched_reply file is 68,159 in size and it is "nicely" missing the end tag.
comment:5 Changed 17 years ago by
Resolution: | → fixed |
---|---|
Status: | reopened → closed |
possible fixed in changeset 15008
After looking at the MySQL docs, I modified the database and changed xml_doc field from type BLOB to type MEDIUM BLOB, which fixes the problem. I was mixed up with the different definitions of BLOB between Oracle (2GB) and MySQL (64KB).
May I suggest that in future releases BOINC use a MEDIUM BLOB for the xml_doc field by default.