[MXS-3654] Critical read error with MX on sync forced mariadb cluster Created: 2021-07-01  Updated: 2021-08-15  Resolved: 2021-08-15

Status: Closed
Project: MariaDB MaxScale
Component/s: N/A
Affects Version/s: 2.5.13
Fix Version/s: N/A

Type: Bug Priority: Major
Reporter: Maiavria Assignee: Unassigned
Resolution: Not a Bug Votes: 0
Labels: None
Environment:

Debian 10.10, v10.5.11-MariaDB Galera cluster



 Description   

Hello,

I'm using latest maxscale on Debian 10.10 with 10.5.11-MariaDB with a read-write split router configuration.

The mariadb galera cluster nodes have syncing forced enabled with this parameter:
wsrep_sync_wait=7

That means consistency is enabled on the cluster at the cost of performance, so that if something is written at moment t, when a user reads at moment t+1 on another node, this node has to wait to be synced with all t-time writesets before answering.

Nevertheless, a critical read error happens every day in the process of inserting an item and then reading it, using Maxscale's read-write split router.

The read part fails as if the nodes of the cluster were not synced as it is not finding the just inserted row.

My MX configuration :

[maxscale]
threads=auto
#log_notice=1
#log_debug=1
#log_info=1
syslog=false
auth_connect_timeout=3s
auth_read_timeout=3s
auth_write_timeout=3s
 
[MySQLMonitorLocal]
type=monitor
module=galeramon
servers=marianode1,marianode2,marianode3
user=maxscale
password=hidden
monitor_interval=1000
backend_connect_timeout=3s
backend_write_timeout=3s
backend_read_timeout=3s
 
# =============== Services ================ #
 
[RW2]
type=service
router=readwritesplit
# deprecated
#localhost_match_wildcard_host=1
servers=marianode1,marianode2,marianode3
max_slave_connections=2
user=maxscale
password=hidden
max_connections=350
strip_db_esc=true
 
# ===============  Listeners ================ #
 
[RWListenerLocal]
type=listener
service=RW2
protocol=MariaDBClient
port=3310
address=127.0.0.1
 
[RWListenerLocalSocket]
type=listener
service=RW2
protocol=MariaDBClient
socket=/var/lib/maxscale/rwsplit.sock
 
# =============== Servers ================ #
 
[marianode1]
type=server
address=10.100.20.50
port=3306
protocol=MariaDBBackend
#persistpoolmax=100
#persistmaxtime=60s
#rank=primary
 
[marianode2]
type=server
address=10.100.20.51
port=3306
protocol=MariaDBBackend
#persistpoolmax=100
#persistmaxtime=60s
#rank=secondary
 
[marianode3]
type=server
address=10.100.20.52
port=3306
protocol=MariaDBBackend
#persistpoolmax=100
#persistmaxtime=60s
#rank=primary

Any clues ?



 Comments   
Comment by markus makela [ 2021-07-11 ]

If you rely on Galera for consistency and that is not working, I suspect the problem is there.

Comment by markus makela [ 2021-08-15 ]

I'm closing this as Not a Bug since MaxScale doesn't do anything special for Galera read synchronization.

If you can better describe the problem you're seeing and what you think MaxScale should do, we can reopen the issue.

Generated at Thu Feb 08 04:23:00 UTC 2024 using Jira 8.20.16#820016-sha1:9d11dbea5f4be3d4cc21f03a88dd11d8c8687422.