[Maria-developers] Fixing 10.0 buildbot: OS-dependent error messages
Hi! As some have noticed, 10.0 tree is red for all non-Linux builds. The errors look like this (on Windows) http://buildbot.askmonty.org/buildbot/builders/win64-release2/builds/1558/st... -ERROR HY000: Got error 1478 "Unknown error 1478" from storage engine +ERROR HY000: Got error 1478 "Unknown error" from storage engine ... -Error 1005 Can't create table 'test.t1' (errno: 1478 "Unknown error 1478") +Error 1005 Can't create table 'test.t1' (errno: 1478 "Unknown error") or like this (on Mac) http://buildbot.askmonty.org/buildbot/builders/labrador/builds/95/steps/test... -ERROR HY000: Got error 1478 "Unknown error 1478" from storage engine +ERROR HY000: Got error 1478 "Unknown error: 1478" from storage engine ... -ERROR HY000: Out of resources when opening file '<partition file>' (Errcode: 24 - Too many open files) +ERROR HY000: Out of resources when opening file '<partition file>' (Errcode: 24 "Too many open files") I've narrowed it down. It is caused by revision 3414 monty@askmonty.org-20120529213755-876ptdhhaj0t7l8r. The revision adds %M modifier to error error messages, which prints "error number - system-error-text" into the error message (see strings/my_vsnprintf.c, my_strerror()). The problem is that system-error-text depends on the OS one is running. grep '%M' sql/share/errmsg-utf8.txt | grep 'eng ' | wc -l 27 There are currently 27 errors that use %M modifier in the error message The testsuite's .result files have only 5 of the errors, but there are lots of occurrences. Buildbot can get at least 3 variants of error message (Windows, Mac, Linux). I suppose, --replace_result will be too complex and fragile. We need to solve it somewhere else. My first idea was to: make mysql-test-run recognize error messages that have the %M pattern and remove the custom text, leaving the error code. To keep things simple/loosely coupled, I'd base recognition of error messages on list of patterns. I'm not sure where to keep the patterns and where to do the matching: should it be done inside mysql-test-run, or inside mysqltest.cc, or I should introduce some commands into mysqltest.cc that will make it apply rewrite rules to all error messages. Any ideas? -- BR Sergei -- Sergei Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
-----Original Message----- From: Sergei Petrunia [mailto:psergey@askmonty.org] Sent: Mittwoch, 4. Juli 2012 23:23 To: maria-developers@lists.launchpad.net Cc: igor@askmonty.org; monty@askmonty.org; serg@askmonty.org; Vladislav Vaintroub Subject: Fixing 10.0 buildbot: OS-dependent error messages
He Sergey,
Hi!
As some have noticed, 10.0 tree is red for all non-Linux builds. The errors look like this (on Windows)
<skip>
The problem is that system-error-text depends on the OS one is running.
grep '%M' sql/share/errmsg-utf8.txt | grep 'eng ' | wc -l 27
There are currently 27 errors that use %M modifier in the error message The testsuite's .result files have only 5 of the errors, but there are lots of occurrences. Buildbot can get at least 3 variants of error message (Windows, Mac, Linux).
But there are also Solaris and FreeBSD?
Any ideas?
Maybe we can have more portable my_strerror(), with predefined English texts for common values of errno, like here http://pubs.opengroup.org/onlinepubs/009604599/basedefs/errno.h.html ? Using error text as defined by OS can bring yet another problems, e.g in localized environment (LC_MESSAGE, localized Windows, who knows what else)
-- BR Sergei -- Sergei Petrunia, Software Developer Monty Program AB, http://askmonty.org Blog: http://s.petrunia.net/blog
participants (2)
-
Sergei Petrunia
-
Vladislav Vaintroub