[MXS-1705] Maxscale 2.2.2 crashes on startup with CentOS 7 Created: 2018-03-06 Updated: 2018-03-08 Resolved: 2018-03-08 |
|
| Status: | Closed |
| Project: | MariaDB MaxScale |
| Component/s: | Core |
| Affects Version/s: | 2.2.2 |
| Fix Version/s: | 2.2.4 |
| Type: | Bug | Priority: | Major |
| Reporter: | jerry wiersma | Assignee: | Johan Wikman |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Description |
|
The Maxscale service crashes on start-up on a fresh CentOS 7 host. The latest version of Maxscale 2.2.2 has been Downloaded as RPM and installed through Yum on a freshly provisioned CentOS 7 host with the following error(s): This happens both with the default config template and with our custom settings. |
| Comments |
| Comment by Johan Wikman [ 2018-03-06 ] | |
|
Please ensure that warnings are on
rerun and provide the complete log. | |
| Comment by jerry wiersma [ 2018-03-06 ] | |
|
To add to this issue: Our config already includes the log_warning=1 value. See: [MySQL1] [MySQL2] [Sharded-Service] [Sharded-Service-Listener] [MySQL-Monitor] [MaxAdmin-Service] [MaxAdmin-Listener] | |
| Comment by Johan Wikman [ 2018-03-06 ] | |
|
Ok, a CentOS7 container is quite different from a CentOS7 machine. But could you provide the full log. The one you initially provided seems be just the end of the log. | |
| Comment by markus makela [ 2018-03-07 ] | |
|
What sort of a container is it? | |
| Comment by Johan Wikman [ 2018-03-07 ] | |
|
jerry-wiersma
is known and can easily be dealt with. But please provide the full log nonetheless. | |
| Comment by Johan Wikman [ 2018-03-07 ] | |
|
There were two problems. We would like to use O_DIRECT with pipes that are used internally, but that flag is supported in conjunction with pipes only form kernel version 3.4 onward. We dealt with this by figuring out the kernel version and then using O_DIRECT if it is supported and not if it isn't. Apparently, in that CentOS7 container it appears to be supported, while it in reality is not. That caused the worker creation to fail. In addition there was a bug, which led to a crash if a signal was received after the worker creation has failed. Namely, the code made a note about the number of workers before they actually had been created, which then led to illegal access when performing shutdown processing due to the signal. The first problem has been fixed by not attempting to figure out beforehand whether O_DIRECT is supported, but instead simply using it and if the pipe creation fails with EINVAL make a second creation attempt without it. The second problem has been solved by making a note about the number of worker only after they really have been created. |