[MXS-65] Omitting <any|all|strict_all> in users directive causes crash in libdbfwfilter.so(link_rules) Created: 2015-03-27  Updated: 2015-04-27  Resolved: 2015-03-28

Status: Closed
Project: MariaDB MaxScale
Component/s: dbfwfilter
Affects Version/s: 1.1.0
Fix Version/s: 1.1.0

Type: Bug Priority: Critical
Reporter: Kolbe Kegel (Inactive) Assignee: Timofey Turenko
Resolution: Fixed Votes: 0
Labels: None
Environment:

CentOS 6



 Description   

Debug log:

2015-03-21 06:01:54   Receiving connection from 'kolbe' to database 'test'.
2015-03-21 06:01:54   140266973984736 [MySQL Client Auth], checking user [kolbe@192.168.30.38] db: test
2015-03-21 06:01:54   140266973984736 [MySQL Client Auth], checking user [kolbe@192.168.30.38] with wildcard host [%]
2015-03-21 06:01:54   140266973984736 [gw_do_connect_to_backend] Connected to backend server 192.168.30.33:3306, fd 20.
2015-03-21 06:01:54   140266973984736 [gw_create_backend_connection] Connection pending to 192.168.30.33:3306, protocol fd 20 client fd 19.
2015-03-21 06:01:54   140266973984736 [dcb_connect] Connected to server 192.168.30.33:3306, from backend dcb 0x34cd380, client dcp 0x34ccce0 fd 19.
2015-03-21 06:01:54   140266973984736 [dcb_set_state_nomutex] dcb 0x34cd380 fd 20 DCB_STATE_ALLOC -> DCB_STATE_POLLING
2015-03-21 06:01:54   140266973984736 [poll_add_dcb] Added dcb 0x34cd380 in state DCB_STATE_POLLING to poll set.
2015-03-21 06:01:54   140266973984736 [gw_do_connect_to_backend] Connected to backend server 192.168.30.31:3306, fd 21.
2015-03-21 06:01:54   140266973984736 [gw_create_backend_connection] Connection pending to 192.168.30.31:3306, protocol fd 21 client fd 19.
2015-03-21 06:01:54   140266973984736 [dcb_connect] Connected to server 192.168.30.31:3306, from backend dcb 0x34c3730, client dcp 0x34ccce0 fd 19.
2015-03-21 06:01:54   140266973984736 [dcb_set_state_nomutex] dcb 0x34c3730 fd 21 DCB_STATE_ALLOC -> DCB_STATE_POLLING
2015-03-21 06:01:54   140266973984736 [poll_add_dcb] Added dcb 0x34c3730 in state DCB_STATE_POLLING to poll set.
2015-03-21 06:01:54   140266477876992 [poll_waitevents] epoll_wait found 2 fds
2015-03-21 06:01:54   140266477876992 [poll_waitevents] event 5 dcb 0x34c3730 role DCB_ROLE_REQUEST_HANDLER
2015-03-21 06:01:54   140266477876992 [gw_write_backend_event] wrote to dcb 0x34c3730 fd 21, return 1
2015-03-21 06:01:54   140266477876992 [poll_waitevents] Read in dcb 0x34c3730 fd 21
2015-03-21 06:01:54   140266477876992 [gw_read_backend_event] Read dcb 0x34c3730 fd 21 protocol state 2, MYSQL_CONNECTED.
2015-03-21 06:01:54   140266477876992 [dcb_read] Read 103 bytes from dcb 0x34c3730 in state DCB_STATE_POLLING fd 21.
2015-03-21 06:01:54   140266477876992 [dcb_write] Wrote 90 Bytes to dcb 0x34c3730 in state DCB_STATE_POLLING fd 21
2015-03-21 06:01:54   140266477876992 [gw_receive_backend_auth] Read zero bytes from backend dcb 0x34c3730 fd 21 in state DCB_STATE_POLLING. n 0, head (nil), len 0
2015-03-21 06:01:54   140266477876992 [gw_read_backend_event] gw_receive_backend_auth read successfully nothing. dcb 0x34c3730 fd 21, user kolbe.
2015-03-21 06:01:54   140266477876992 [poll_waitevents] epoll_wait found 1 fds
2015-03-21 06:01:54   140266477876992 [poll_waitevents] epoll_wait found 1 fds
2015-03-21 06:01:54   140266477876992 [poll_waitevents] event 5 dcb 0x34cd380 role DCB_ROLE_REQUEST_HANDLER
2015-03-21 06:01:54   140266477876992 [gw_write_backend_event] wrote to dcb 0x34cd380 fd 20, return 1
2015-03-21 06:01:54   140266477876992 [poll_waitevents] Read in dcb 0x34cd380 fd 20
2015-03-21 06:01:54   140266477876992 [gw_read_backend_event] Read dcb 0x34cd380 fd 20 protocol state 2, MYSQL_CONNECTED.
2015-03-21 06:01:54   140266477876992 [dcb_read] Read 103 bytes from dcb 0x34cd380 in state DCB_STATE_POLLING fd 20.
2015-03-21 06:01:54   140266477876992 [dcb_write] Wrote 90 Bytes to dcb 0x34cd380 in state DCB_STATE_POLLING fd 20
2015-03-21 06:01:54   140266477876992 [gw_receive_backend_auth] Read zero bytes from backend dcb 0x34cd380 fd 20 in state DCB_STATE_POLLING. n 0, head (nil), len 0
2015-03-21 06:01:54   140266477876992 [gw_read_backend_event] gw_receive_backend_auth read successfully nothing. dcb 0x34cd380 fd 20, user kolbe.
2015-03-21 06:01:54   140266384127744 [poll_waitevents] epoll_wait found 1 fds
2015-03-21 06:01:54   140266384127744 [poll_waitevents] event 5 dcb 0x34c3730 role DCB_ROLE_REQUEST_HANDLER
2015-03-21 06:01:54   140266384127744 [gw_write_backend_event] wrote to dcb 0x34c3730 fd 21, return 1
2015-03-21 06:01:54   140266384127744 [poll_waitevents] Read in dcb 0x34c3730 fd 21
2015-03-21 06:01:54   140266384127744 [gw_read_backend_event] Read dcb 0x34c3730 fd 21 protocol state 4, MYSQL_AUTH_RECV.
2015-03-21 06:01:54   140266384127744 [dcb_read] Read 11 bytes from dcb 0x34c3730 in state DCB_STATE_POLLING fd 21.
2015-03-21 06:01:54   140266384127744 [gw_read_backend_event] gw_receive_backend_auth succeed. dcb 0x34c3730 fd 21, user kolbe.
2015-03-21 06:01:54   140266384127744 [gw_read_backend_event] gw_receive_backend_auth succeed. Fd 21, user kolbe.

Error log:

2015-03-21 06:01:54   Fatal: MaxScale received fatal signal 11. Attempting backtrace.
2015-03-21 06:01:54     /usr/local/mariadb-maxscale/bin/maxscale() [0x52248c]
2015-03-21 06:01:54     /lib64/libpthread.so.0(+0xf710) [0x7f92725ac710]
2015-03-21 06:01:54     /lib64/libc.so.6(+0x138454) [0x7f9270f65454]
2015-03-21 06:01:54     /usr/local/mariadb-maxscale/modules/libdbfwfilter.so(link_rules+0x17a) [0x7f925414d5a6]
2015-03-21 06:01:54     /usr/local/mariadb-maxscale/modules/libdbfwfilter.so(+0x5536) [0x7f925414e536]
2015-03-21 06:01:54     /usr/local/mariadb-maxscale/bin/maxscale(filterApply+0x9c) [0x5431eb]
2015-03-21 06:01:54     /usr/local/mariadb-maxscale/bin/maxscale() [0x52dcba]
2015-03-21 06:01:54     /usr/local/mariadb-maxscale/bin/maxscale(session_alloc+0x32b) [0x52c78f]
2015-03-21 06:01:54     /usr/local/mariadb-maxscale/modules/libMySQLClient.so(+0x5144) [0x7f9256f77144]
2015-03-21 06:01:54     /usr/local/mariadb-maxscale/bin/maxscale() [0x534515]
2015-03-21 06:01:54     /usr/local/mariadb-maxscale/bin/maxscale(poll_waitevents+0x634) [0x533dd4]
2015-03-21 06:01:54     /usr/local/mariadb-maxscale/bin/maxscale(main+0x1a45) [0x524f9d]
2015-03-21 06:01:54     /lib64/libc.so.6(__libc_start_main+0xfd) [0x7f9270e4bd5d]
2015-03-21 06:01:54     /usr/local/mariadb-maxscale/bin/maxscale() [0x5212a9]



 Comments   
Comment by Kolbe Kegel (Inactive) [ 2015-03-27 ]

[Database Firewall]
type=filter
module=dbfwfilter
rules=/home/skysql/dbfwfilter_rules.txt

  1. cat /home/skysql/dbfwfilter_rules.txt
    rule calmdown deny wildcard
    users %@% match rules calmdown
Comment by Kolbe Kegel (Inactive) [ 2015-03-27 ]

The documentation made it look like the <any|all|strict_all> clause in the "users" directive was optional, but omitting it leads to a crash.

Comment by markus makela [ 2015-03-28 ]

The filter creation will now fail if the rule syntax is not correct.

Generated at Thu Feb 08 03:56:31 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.