Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

mysql test failures #244

Closed
jcharaoui opened this issue Jan 29, 2023 · 1 comment · Fixed by #250
Closed

mysql test failures #244

jcharaoui opened this issue Jan 29, 2023 · 1 comment · Fixed by #250

Comments

@jcharaoui
Copy link
Contributor

While working to update the package in Debian, I'm encountering some test failures with mysql:

rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:1:1:1:2:1]' # :Sequel adapter with MySQL backend with backend optimizations with each_key server concurrent_increment feature have atomic increment across multiple threads
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:1:1:2:2:1]' # :Sequel adapter with MySQL backend with backend optimizations without each_key server concurrent_increment feature have atomic increment across multiple threads
Installing a test MySQL instance in /dev/shm/moneta20230129-2818913-pn88ry...

Two all-privilege accounts were created.
One is root@localhost, it has no password, but you need to
be system 'root' user to connect. Use, for example, sudo mysql
The second is jerome@localhost, it has no password either, but
you need to be the system 'jerome' user to connect.
After connecting you can set the password, if you would need to be
able to connect as any of these users with a password and without sudo

See the MariaDB Knowledgebase at https://mariadb.com/kb

Please report any problems at https://mariadb.org/jira

The latest information about MariaDB is available at https://mariadb.org/.

Consider joining MariaDB's strong and vibrant community:
https://mariadb.org/get-involved/

2023-01-29 18:36:28 0 [Note] /usr/sbin/mysqld (server 10.11.1-MariaDB-1) starting as process 2821823 ...
2023-01-29 18:36:28 0 [Note] InnoDB: Compressed tables use zlib 1.2.13
2023-01-29 18:36:28 0 [Note] InnoDB: Using transactional memory
2023-01-29 18:36:28 0 [Note] InnoDB: Number of transaction pools: 1
2023-01-29 18:36:28 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2023-01-29 18:36:28 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)
2023-01-29 18:36:28 0 [Note] InnoDB: Using liburing
2023-01-29 18:36:28 0 [Note] InnoDB: Initializing buffer pool, total size = 128.000MiB, chunk size = 2.000MiB
2023-01-29 18:36:28 0 [Note] InnoDB: Completed initialization of buffer pool
2023-01-29 18:36:28 0 [Note] InnoDB: Setting O_DIRECT on file ./ibdata1 failed
2023-01-29 18:36:28 0 [Note] InnoDB: 128 rollback segments are active.
2023-01-29 18:36:28 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...
2023-01-29 18:36:28 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.
2023-01-29 18:36:28 0 [Note] InnoDB: log sequence number 45452 (memory-mapped); transaction id 14
2023-01-29 18:36:28 0 [Note] InnoDB: Loading buffer pool(s) from /dev/shm/moneta20230129-2818913-pn88ry/ib_buffer_pool
2023-01-29 18:36:28 0 [Note] Plugin 'FEEDBACK' is disabled.
2023-01-29 18:36:28 0 [Note] InnoDB: Buffer pool(s) load completed at 230129 18:36:28
Starting the daemon...
Waiting for the server to be actually available...
2023-01-29 18:36:28 0 [Note] /usr/sbin/mysqld (server 10.11.1-MariaDB-1) starting as process 2821844 ...
2023-01-29 18:36:28 0 [Note] InnoDB: Compressed tables use zlib 1.2.13
2023-01-29 18:36:28 0 [Note] InnoDB: Using transactional memory
2023-01-29 18:36:28 0 [Note] InnoDB: Number of transaction pools: 1
2023-01-29 18:36:28 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
2023-01-29 18:36:28 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)
2023-01-29 18:36:28 0 [Note] InnoDB: Using liburing
2023-01-29 18:36:28 0 [Note] InnoDB: Initializing buffer pool, total size = 128.000MiB, chunk size = 2.000MiB
2023-01-29 18:36:28 0 [Note] InnoDB: Completed initialization of buffer pool
2023-01-29 18:36:28 0 [Note] InnoDB: Setting O_DIRECT on file ./ibdata1 failed
2023-01-29 18:36:28 0 [Note] InnoDB: 128 rollback segments are active.
2023-01-29 18:36:28 0 [Note] InnoDB: Setting file './ibtmp1' size to 12.000MiB. Physically writing the file full; Please wait ...
2023-01-29 18:36:28 0 [Note] InnoDB: File './ibtmp1' size is now 12.000MiB.
2023-01-29 18:36:28 0 [Note] InnoDB: log sequence number 46618 (memory-mapped); transaction id 14
2023-01-29 18:36:28 0 [Note] InnoDB: Loading buffer pool(s) from /dev/shm/moneta20230129-2818913-pn88ry/ib_buffer_pool
2023-01-29 18:36:28 0 [Note] Plugin 'FEEDBACK' is disabled.
2023-01-29 18:36:28 0 [Note] InnoDB: Buffer pool(s) load completed at 230129 18:36:28
2023-01-29 18:36:28 0 [Note] Server socket created on IP: '127.0.0.1'.
2023-01-29 18:36:28 0 [Note] /usr/sbin/mysqld: ready for connections
Version: '10.11.1-MariaDB-1'  socket: '/dev/shm/moneta20230129-2818913-pn88ry/mysql.sock'  port: 2712  Debian n/a
Checking if the server is running...
2023-01-29 18:36:31 3 [Warning] Aborted connection 3 to db: 'unconnected' user: 'unauthenticated' host: 'localhost' (This connection closed normally without authentication)
Uptime: 3  Threads: 1  Questions: 1  Slow queries: 0  Opens: 17  Open tables: 10  Queries per second avg: 0.333
Dropping the database moneta if it exists...
mysqladmin: DROP DATABASE moneta failed;
error: 'Can't drop database 'moneta'; database doesn't exist'
Creating new empty database moneta...
Dropping the database moneta_activerecord1 if it exists...
mysqladmin: DROP DATABASE moneta_activerecord1 failed;
error: 'Can't drop database 'moneta_activerecord1'; database doesn't exist'
Creating new empty database moneta_activerecord1...
Dropping the database moneta_activerecord2 if it exists...
mysqladmin: DROP DATABASE moneta_activerecord2 failed;
error: 'Can't drop database 'moneta_activerecord2'; database doesn't exist'
Creating new empty database moneta_activerecord2...
Run options:
  include {:mysql=>true}
  exclude {:unsupported=>true, :broken=>true}
.#<Thread:0x00007f92204452c8 /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:3 run> terminated with exception (report_on_exception is true):
/usr/lib/ruby/vendor_ruby/mysql2/statement.rb:7:in `_execute': Mysql2::Error: Commands out of sync; you can't run this command now (Sequel::DatabaseDisconnectError)
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:7:in `block in execute'
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:6:in `handle_interrupt'
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:6:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:140:in `block in _execute'
        from /usr/lib/ruby/vendor_ruby/sequel/database/logging.rb:38:in `log_connection_yield'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:137:in `_execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:111:in `block in execute_prepared_statement'
        from /usr/lib/ruby/vendor_ruby/sequel/connection_pool/sharded_threaded.rb:128:in `hold'
        from /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:293:in `synchronize'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:97:in `execute_prepared_statement'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/utils/mysql_mysql2.rb:38:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1187:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:281:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:33:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:241:in `fetch_rows'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1028:in `with_sql_each'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1036:in `with_sql_first'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:778:in `single_record!'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:766:in `single_record'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:220:in `first'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:192:in `run'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:59:in `call'
        from /<<PKGBUILDDIR>>/lib/moneta/adapters/sequel/mysql.rb:15:in `block in increment'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:258:in `_transaction'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:233:in `block in transaction'
        from /usr/lib/ruby/vendor_ruby/sequel/connection_pool/sharded_threaded.rb:132:in `hold'
        from /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:293:in `synchronize'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:195:in `transaction'
        from /<<PKGBUILDDIR>>/lib/moneta/adapters/sequel/mysql.rb:12:in `increment'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:11:in `block (3 levels) in increment_thread'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:10:in `times'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:10:in `block (2 levels) in increment_thread'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:9:in `times'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:9:in `block in increment_thread'
/usr/lib/ruby/vendor_ruby/mysql2/statement.rb:7:in `_execute': Commands out of sync; you can't run this command now (Mysql2::Error)
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:7:in `block in execute'
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:6:in `handle_interrupt'
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:6:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:140:in `block in _execute'
        from /usr/lib/ruby/vendor_ruby/sequel/database/logging.rb:38:in `log_connection_yield'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:137:in `_execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:111:in `block in execute_prepared_statement'
        from /usr/lib/ruby/vendor_ruby/sequel/connection_pool/sharded_threaded.rb:128:in `hold'
        from /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:293:in `synchronize'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:97:in `execute_prepared_statement'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/utils/mysql_mysql2.rb:38:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1187:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:281:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:33:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:241:in `fetch_rows'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1028:in `with_sql_each'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1036:in `with_sql_first'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:778:in `single_record!'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:766:in `single_record'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:220:in `first'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:192:in `run'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:59:in `call'
        from /<<PKGBUILDDIR>>/lib/moneta/adapters/sequel/mysql.rb:15:in `block in increment'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:258:in `_transaction'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:233:in `block in transaction'
        from /usr/lib/ruby/vendor_ruby/sequel/connection_pool/sharded_threaded.rb:132:in `hold'
        from /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:293:in `synchronize'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:195:in `transaction'
        from /<<PKGBUILDDIR>>/lib/moneta/adapters/sequel/mysql.rb:12:in `increment'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:11:in `block (3 levels) in increment_thread'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:10:in `times'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:10:in `block (2 levels) in increment_thread'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:9:in `times'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:9:in `block in increment_thread'
F............................................................................................#<Thread:0x00007f921d9081f0 /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:3 run> terminated with exception (rep
ort_on_exception is true):
/usr/lib/ruby/vendor_ruby/mysql2/statement.rb:7:in `_execute': Mysql2::Error: Commands out of sync; you can't run this command now (Sequel::DatabaseDisconnectError)
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:7:in `block in execute'
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:6:in `handle_interrupt'
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:6:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:140:in `block in _execute'
        from /usr/lib/ruby/vendor_ruby/sequel/database/logging.rb:38:in `log_connection_yield'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:137:in `_execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:111:in `block in execute_prepared_statement'
        from /usr/lib/ruby/vendor_ruby/sequel/connection_pool/threaded.rb:88:in `hold'
        from /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:293:in `synchronize'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:97:in `execute_prepared_statement'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/utils/mysql_mysql2.rb:38:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1187:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:281:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:33:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:241:in `fetch_rows'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1028:in `with_sql_each'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1036:in `with_sql_first'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:778:in `single_record!'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:766:in `single_record'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:220:in `first'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:192:in `run'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:59:in `call'
        from /<<PKGBUILDDIR>>/lib/moneta/adapters/sequel/mysql.rb:15:in `block in increment'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:258:in `_transaction'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:233:in `block in transaction'
        from /usr/lib/ruby/vendor_ruby/sequel/connection_pool/threaded.rb:92:in `hold'
        from /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:293:in `synchronize'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:195:in `transaction'
        from /<<PKGBUILDDIR>>/lib/moneta/adapters/sequel/mysql.rb:12:in `increment'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:11:in `block (3 levels) in increment_thread'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:10:in `times'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:10:in `block (2 levels) in increment_thread'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:9:in `times'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:9:in `block in increment_thread'
/usr/lib/ruby/vendor_ruby/mysql2/statement.rb:7:in `_execute': Commands out of sync; you can't run this command now (Mysql2::Error)
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:7:in `block in execute'
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:6:in `handle_interrupt'
        from /usr/lib/ruby/vendor_ruby/mysql2/statement.rb:6:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:140:in `block in _execute'
        from /usr/lib/ruby/vendor_ruby/sequel/database/logging.rb:38:in `log_connection_yield'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:137:in `_execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:111:in `block in execute_prepared_statement'
        from /usr/lib/ruby/vendor_ruby/sequel/connection_pool/threaded.rb:88:in `hold'
        from /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:293:in `synchronize'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:97:in `execute_prepared_statement'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/utils/mysql_mysql2.rb:38:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1187:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:281:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:33:in `execute'
        from /usr/lib/ruby/vendor_ruby/sequel/adapters/mysql2.rb:241:in `fetch_rows'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1028:in `with_sql_each'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:1036:in `with_sql_first'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:778:in `single_record!'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:766:in `single_record'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/actions.rb:220:in `first'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:192:in `run'
        from /usr/lib/ruby/vendor_ruby/sequel/dataset/prepared_statements.rb:59:in `call'
        from /<<PKGBUILDDIR>>/lib/moneta/adapters/sequel/mysql.rb:15:in `block in increment'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:258:in `_transaction'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:233:in `block in transaction'
        from /usr/lib/ruby/vendor_ruby/sequel/connection_pool/threaded.rb:92:in `hold'
        from /usr/lib/ruby/vendor_ruby/sequel/database/connecting.rb:293:in `synchronize'
        from /usr/lib/ruby/vendor_ruby/sequel/database/transactions.rb:195:in `transaction'
        from /<<PKGBUILDDIR>>/lib/moneta/adapters/sequel/mysql.rb:12:in `increment'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:11:in `block (3 levels) in increment_thread'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:10:in `times'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:10:in `block (2 levels) in increment_thread'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:9:in `times'
        from /<<PKGBUILDDIR>>/spec/features/concurrent_increment.rb:9:in `block in increment_thread'
F.....................................................................................................................................................................................................................................................................................

Failures:

  1) :Sequel adapter with MySQL backend with backend optimizations with each_key server concurrent_increment feature have atomic increment across multiple threads
     Failure/Error: if row = @load_for_update.call(key: key)

     Sequel::DatabaseDisconnectError:
       Mysql2::Error: Commands out of sync; you can't run this command now
     Shared Example Group: :concurrent_increment called from ./spec/helper.rb:298
     Shared Example Group: :each_key_server called from ./spec/moneta/adapters/sequel/helper.rb:69
     Shared Example Group: :adapter_sequel called from ./spec/moneta/adapters/sequel/adapter_sequel_spec.rb:13
     # ./lib/moneta/adapters/sequel/mysql.rb:15:in `block in increment'
     # ./lib/moneta/adapters/sequel/mysql.rb:12:in `increment'
     # ./spec/features/concurrent_increment.rb:11:in `block (3 levels) in increment_thread'
     # ./spec/features/concurrent_increment.rb:10:in `times'
     # ./spec/features/concurrent_increment.rb:10:in `block (2 levels) in increment_thread'
     # ./spec/features/concurrent_increment.rb:9:in `times'
     # ./spec/features/concurrent_increment.rb:9:in `block in increment_thread'
     # ------------------
     # --- Caused by: ---
     # Mysql2::Error:
     #   Commands out of sync; you can't run this command now
     #   ./lib/moneta/adapters/sequel/mysql.rb:15:in `block in increment'

  2) :Sequel adapter with MySQL backend with backend optimizations without each_key server concurrent_increment feature have atomic increment across multiple threads
     Failure/Error: if row = @load_for_update.call(key: key)

     Sequel::DatabaseDisconnectError:
       Mysql2::Error: Commands out of sync; you can't run this command now
     Shared Example Group: :concurrent_increment called from ./spec/helper.rb:298
     Shared Example Group: :each_key_server called from ./spec/moneta/adapters/sequel/helper.rb:69
     Shared Example Group: :adapter_sequel called from ./spec/moneta/adapters/sequel/adapter_sequel_spec.rb:13
     # ./lib/moneta/adapters/sequel/mysql.rb:15:in `block in increment'
     # ./lib/moneta/adapters/sequel/mysql.rb:12:in `increment'
     # ./spec/features/concurrent_increment.rb:11:in `block (3 levels) in increment_thread'
     # ./spec/features/concurrent_increment.rb:10:in `times'
     # ./spec/features/concurrent_increment.rb:10:in `block (2 levels) in increment_thread'
     # ./spec/features/concurrent_increment.rb:9:in `times'
     # ./spec/features/concurrent_increment.rb:9:in `block in increment_thread'
     # ------------------
     # --- Caused by: ---
     # Mysql2::Error:
     #   Commands out of sync; you can't run this command now
     #   ./lib/moneta/adapters/sequel/mysql.rb:15:in `block in increment'

Finished in 1 minute 0.71 seconds (files took 3.32 seconds to load)
372 examples, 2 failures

Failed examples:

rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:1:1:1:2:1]' # :Sequel adapter with MySQL backend with backend optimizations with each_key server concurrent_increment feature have atomic increment across multiple threads
rspec './spec/moneta/adapters/sequel/adapter_sequel_spec.rb[1:1:1:2:2:1]' # :Sequel adapter with MySQL backend with backend optimizations without each_key server concurrent_increment feature have atomic increment across multiple threads

The test is running with:

  • ruby 3.1
  • mariadb 10.11.1
  • ruby-sequel 5.63.0
  • ruby-mysql2 0.5.3
  • moneta 1.5.2

Thanks!

@asppsa
Copy link
Collaborator

asppsa commented Mar 11, 2023

@jcharaoui I think this should be resolved in #250 - if you are still seeing the issue though, please re-open

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants