maria-developers team mailing list archive
-
maria-developers team
-
Mailing list archive
-
Message #04784
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/steps/test/logs/stdio
-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/logs/stdio
-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@xxxxxxxxxxxx-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
Follow ups