php-mysql-replication icon indicating copy to clipboard operation
php-mysql-replication copied to clipboard

PHP Fatal error: Uncaught MySQLReplication\Socket\SocketException

Open jasimaz opened this issue 4 years ago • 2 comments

Please provide the following details.

  • Operating System: Linux Ubuntu 18.4
  • PHP Version: 7.2
  • php-mysql-replication Version: 7.0
  • *mysql version (SELECT VERSION();): MySQL 8.0

Steps required to reproduce the problem.

  1. Connecting to replica
  2. Start consuming

Expected Result.

The replication application should work continuously, it works for sometimes and throws error.

Actual Result.

After running for few seconds, sometimes minutes it throws the following error;

PHP Fatal error: Uncaught MySQLReplication\Socket\SocketException: Success in /var/apps/nxo-fetcher-new/src/MySQLReplication/Socket/Socket.php:65 Stack trace: #0 /var/apps/nxo-fetcher-new/src/MySQLReplication/BinLog/BinLogSocketConnect.php(63): MySQLReplication\Socket\Socket->readFromSocket(1273) #1 /var/apps/nxo-fetcher-new/src/MySQLReplication/Event/Event.php(57): MySQLReplication\BinLog\BinLogSocketConnect->getResponse() #2 /var/apps/nxo-fetcher-new/src/MySQLReplication/MySQLReplicationFactory.php(130): MySQLReplication\Event\Event->consume() #3 /var/apps/nxo-fetcher-new/src/MySQLReplication/MySQLReplicationFactory.php(116): MySQLReplication\MySQLReplicationFactory->consume() #4 /var/apps/nxo-fetcher-new/app/stream.php(78): MySQLReplication\MySQLReplicationFactory->run() #5 {main} thrown in /var/apps/nxo-fetcher-new/src/MySQLReplication/Socket/Socket.php on line 65

jasimaz avatar Nov 10 '21 12:11 jasimaz

@krowinski, can you please provide me any update on this?

jasimaz avatar Nov 15 '22 10:11 jasimaz

You can try this fork https://github.com/Moln/php-mysql-replication .

Resolve these issues:

  • Add regular expression matching support for DatabasesOnly or TablesOnly of Config.
  • Resolve krowinski/php-mysql-replication#94, change static config properties to non-static.
  • Add retry feature.
    (new ConfigBuilder())
      ->withRetry(-1) // Retry always.
      ->withRetry(0)  // Disable retry feature. (Default)
      ->withRetry(2)  // Retry twice.
    
  • PHP 8.1,8.2 supports.

Retry feature, maybe this is what you want.

Moln avatar Jan 10 '23 12:01 Moln