DamienHarper/auditor-bundle

Duplicated audit entries

samuel4x4 opened this issue · 6 comments

Q A
auditor-bundle version 5.1.0
PHP version 8.1.7
Database MySQL

Summary

Entries are duplicated on the audit database tables for all actions: INSERT, UPDATE, ASSOCIATE.

Current behavior

Multiple similar entries are added on the entity audit tables for the same object_id, including for INSERT operation, which can't really happen with the same id. I have for example up to 12 similar entries sometimes.

How to reproduce

Any normal operation executed on an audited entity generates duplicated audit entries.

Expected behavior

Audit entries should be added only once on the database.

Example:

SELECT * FROM companies_audit;

id,type,object_id,diffs,created_at
955,insert,60,"{""@source"":{""id"":60,""class"":""App\\Core\\Entity\\Company"...",2022-11-01 21:52:43.754603
955,insert,60,"{""@source"":{""id"":60,""class"":""App\\Core\\Entity\\Company"...",2022-11-01 21:52:43.762118
989,update,60,"{""scoring"":{""new"":""2.5"",""old"":null}}",2022-11-01 21:52:43.822860
994,update,60,"{""scoring"":{""new"":""2.5"",""old"":null}}",2022-11-01 21:52:43.830166

We need more info to reproduce an error.
@samuel4x4 can you provide your dh_auditor config?

@samuel4x4 I confirm the need to get more information about your current config/setup, I haven't been able to reproduce the issue on my side.

@samuel4x4 any chance to get more information about your current config/setup?

Navds commented

Samy issue.

  • damienharper/auditor-bundle: 5.2.1
  • symfony: 5.4.19
  • php: 7.4

dh_auditor.yaml:

dh_auditor:
    timezone: 'Europe/Paris'
    enabled: true
    providers:
        doctrine:
            table_prefix: null
            table_suffix: '_audit'
            ignored_columns:
                - createdAt
                - updatedAt
                - id
            entities:
                App\Data\Entity\LMS\Course: ~

services.yaml:

    DH\Auditor\Provider\Doctrine\Auditing\Transaction\TransactionManager:
        arguments: [ '@DH\Auditor\Provider\Doctrine\DoctrineProvider' ]

    DH\Auditor\Provider\Doctrine\Auditing\Event\DoctrineSubscriber:
        arguments: [ '@DH\Auditor\Provider\Doctrine\Auditing\Transaction\TransactionManager' ]
        tags:
            - { name: doctrine.event_subscriber }

@Navds Why you define Auditor services manually? It defines automatically within container compile time.

Navds commented

I don't remember exactly why but it didn't work before and I followed the advice at #251
But indeed, the duplication is solved by removing these service definitions