DamienHarper / auditor-bundle

The missing audit log library
MIT License
399 stars 121 forks source link

Duplicated audit entries #330

Open samuel4x4 opened 2 years ago

samuel4x4 commented 2 years ago
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
dmitryuk commented 2 years ago

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

DamienHarper commented 2 years ago

@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.

DamienHarper commented 1 year ago

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

Navds commented 1 year ago

Samy issue.

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 }
dmitryuk commented 1 year ago

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

Navds commented 1 year ago

I don't remember exactly why but it didn't work before and I followed the advice at https://github.com/DamienHarper/auditor-bundle/issues/251 But indeed, the duplication is solved by removing these service definitions