doctrine-mysql-come-back icon indicating copy to clipboard operation
doctrine-mysql-come-back copied to clipboard

Incompatible with Sentry if using DB tracing

Open Lehren opened this issue 1 year ago • 1 comments

Hello, I'm using this package together with sentry and sentry-symfony. When I enable DBAL tracing for sentry, the default connection driver gets wrapped in Sentry's own TracingDriver, but the default connection driver is in turn the MysqlComeBackDriver wrapping the regular DBAL connection, which then causes an error in ConnectionTrait on line 50.

        if (!$driver instanceof ServerGoneAwayExceptionsAwareInterface) {
            throw new \InvalidArgumentException(
                sprintf('%s needs a driver that implements ServerGoneAwayExceptionsAwareInterface', get_class($this))
            );
        }

See picture: The driver is the Sentry driver decorating the MySqlComeBack driver. Screenshot 2024-02-07 at 13 53 33

I can fix it by disabling DBAL tracing for Sentry, but I would like to have it enabled.

Package info:

symfony/symfony: 4.4.50
sentry/sentry: 3.7.0
sentry/sentry-symfony: 4.3.0
facile-it/doctrine-mysql-come-back: 1.10.1

Any suggestions? Maybe I can somehow change the order in which the drivers get wrapped so that the ComeBack one is always on top.

Lehren avatar Feb 07 '24 12:02 Lehren

Which version of DBAL are you using? DBAL 3 has middlewares and it could fix your issue.

Also, you could try to change the order of the bundles (Sentry and Doctrine) so see if anything changes.

Jean85 avatar Feb 07 '24 15:02 Jean85