{"data":{"id":"ACSD-64118","source":"qpt","sourceRef":"magento/quality-patches@1.1.84","title":"Fixes the issue where concurrent requests to save and update the same product result in data inconsistency or duplicated products.","categories":["Catalog/Product","Web API"],"components":["magento/module-catalog"],"origin":"adobe-commerce-support","documentation":{"url":"https://experienceleague.adobe.com/en/docs/commerce-operations/tools/quality-patches-tool/patches-available-in-qpt/v1-1-65/acsd-64118-concurrent-product-save-requests-for-same-product-cause-data-inconsistency-and-duplicate-entries","path":"help/tools/quality-patches-tool/patches-available-in-qpt/v1-1-65/acsd-64118-concurrent-product-save-requests-for-same-product-cause-data-inconsistency-and-duplicate-entries.md","blobSha":"c237267ea4020e4ffdb691c6e71a31a235ea52d2","description":"Concurrent requests to save and update the same product result in data inconsistency or duplicated products.","stepsToReproduce":"1. Set up multi-process for consumers in env.php: 'multiple_processes' => array ( 'async.operations.all' => 4, ), 1. Add an additional store and a new storeview to the main website. 1. Send a bulk API request to the default storeview endpoint /rest/default/async/bulk/V1/products with the following payload to create a product: [ { \"product\": { \"sku\": \"Test_Prod\", \"name\": \"Test Product\", \"attribute_set_id\": 4 } } ] 1. Use the same payload to send a bulk API request to the new storeview endpoint /rest/store/async/bulk/V1/products to update the product. 1. Flush cache. 1. Run cron jobs. 1. Check the catalog_product_entity table for entries of the product from the previous steps.","introducedInQpt":"1.1.65","createdFor":["2.4.5-p7"],"documentedRange":"2.4.4 - 2.4.6-p10","scheduledFixRelease":"2.4.9"},"files":[{"package":"magento/magento2-base","constraint":">=2.4.4 <2.4.7","path":"patches/os/ACSD-64118_2.4.5-p7.patch","blobSha":"e33985210e339f38e939d2014ec61ea95aa0de42","url":"https://raw.githubusercontent.com/magento/quality-patches/11d565bdde197b9c7bac859a5698e99098b48457/patches/os/ACSD-64118_2.4.5-p7.patch","thirdParty":false,"modifies":[{"path":"vendor/magento/module-catalog/Model/ProductMutex.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/Model/ProductMutexException.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/Model/ProductMutexInterface.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/Plugin/ProductRepositorySaveOperationSynchronizer.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/etc/di.xml","change":"modified","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/i18n/en_US.csv","change":"modified","package":"magento/module-catalog"}],"packages":["magento/module-catalog"],"hasTests":false,"applicableVersions":{"magento-community":["2.4.6-p15","2.4.6-p14","2.4.6-p13","2.4.6-p12","2.4.6-p11","2.4.6-p10","2.4.6-p9","2.4.6-p8","2.4.6-p7","2.4.6-p6","2.4.6-p5","2.4.6-p4","2.4.6-p3","2.4.6-p2","2.4.6-p1","2.4.6","2.4.5-p17","2.4.5-p16","2.4.5-p15","2.4.5-p14","2.4.5-p13","2.4.5-p12","2.4.5-p11","2.4.5-p10","2.4.5-p9","2.4.5-p8","2.4.5-p7","2.4.5-p6","2.4.5-p5","2.4.5-p4","2.4.5-p3","2.4.5-p2","2.4.5-p1","2.4.5","2.4.4-p18","2.4.4-p17","2.4.4-p16","2.4.4-p15","2.4.4-p14","2.4.4-p13","2.4.4-p12","2.4.4-p11","2.4.4-p10","2.4.4-p9","2.4.4-p8","2.4.4-p7","2.4.4-p6","2.4.4-p5","2.4.4-p4","2.4.4-p3","2.4.4-p2","2.4.4-p1","2.4.4"],"magento-commerce":["2.4.6-p15","2.4.6-p14","2.4.6-p13","2.4.6-p12","2.4.6-p11","2.4.6-p10","2.4.6-p9","2.4.6-p8","2.4.6-p7","2.4.6-p6","2.4.6-p5","2.4.6-p4","2.4.6-p3","2.4.6-p2","2.4.6-p1","2.4.6","2.4.5-p17","2.4.5-p16","2.4.5-p15","2.4.5-p14","2.4.5-p13","2.4.5-p12","2.4.5-p11","2.4.5-p10","2.4.5-p9","2.4.5-p8","2.4.5-p7","2.4.5-p6","2.4.5-p5","2.4.5-p4","2.4.5-p3","2.4.5-p2","2.4.5-p1","2.4.5","2.4.4-p18","2.4.4-p17","2.4.4-p16","2.4.4-p15","2.4.4-p14","2.4.4-p13","2.4.4-p12","2.4.4-p11","2.4.4-p10","2.4.4-p9","2.4.4-p8","2.4.4-p7","2.4.4-p6","2.4.4-p5","2.4.4-p4","2.4.4-p3","2.4.4-p2","2.4.4-p1","2.4.4"],"mage-os":[]},"unknownVersions":[],"requires":[],"replacedWith":null,"deprecated":false},{"package":"magento/magento2-base","constraint":">=2.4.7 <2.4.7-p10","path":"patches/os/ACP2E-3976_2.4.7.patch","blobSha":"608b2fe077f08c648205e8415f828856cd788181","url":"https://raw.githubusercontent.com/magento/quality-patches/11d565bdde197b9c7bac859a5698e99098b48457/patches/os/ACP2E-3976_2.4.7.patch","thirdParty":false,"modifies":[{"path":"vendor/magento/module-catalog/Model/ProductMutex.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/Model/ProductMutexException.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/Model/ProductMutexInterface.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/Plugin/ProductRepositorySaveOperationSynchronizer.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/etc/di.xml","change":"modified","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/i18n/en_US.csv","change":"modified","package":"magento/module-catalog"}],"packages":["magento/module-catalog"],"hasTests":false,"applicableVersions":{"magento-community":["2.4.7-p9","2.4.7-p8","2.4.7-p7","2.4.7-p6","2.4.7-p5","2.4.7-p4","2.4.7-p3","2.4.7-p2","2.4.7-p1","2.4.7"],"magento-commerce":["2.4.7-p9","2.4.7-p8","2.4.7-p7","2.4.7-p6","2.4.7-p5","2.4.7-p4","2.4.7-p3","2.4.7-p2","2.4.7-p1","2.4.7"],"mage-os":[]},"unknownVersions":[],"requires":["ACSD-55100","ACSD-64178"],"replacedWith":null,"deprecated":false},{"package":"magento/magento2-base","constraint":">=2.4.8 <2.4.8-p5","path":"patches/os/ACP2E-3988_2.4.8.patch","blobSha":"e8cb1612dfe067a8779bf317fb811c359b62ae3c","url":"https://raw.githubusercontent.com/magento/quality-patches/11d565bdde197b9c7bac859a5698e99098b48457/patches/os/ACP2E-3988_2.4.8.patch","thirdParty":false,"modifies":[{"path":"vendor/magento/module-catalog/Model/ProductMutex.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/Model/ProductMutexException.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/Model/ProductMutexInterface.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/Plugin/ProductRepositorySaveOperationSynchronizer.php","change":"added","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/etc/di.xml","change":"modified","package":"magento/module-catalog"},{"path":"vendor/magento/module-catalog/i18n/en_US.csv","change":"modified","package":"magento/module-catalog"}],"packages":["magento/module-catalog"],"hasTests":false,"applicableVersions":{"magento-community":["2.4.8-p4","2.4.8-p3","2.4.8-p2","2.4.8-p1","2.4.8"],"magento-commerce":["2.4.8-p4","2.4.8-p3","2.4.8-p2","2.4.8-p1","2.4.8"],"mage-os":[]},"unknownVersions":[],"requires":[],"replacedWith":null,"deprecated":false}],"applicableVersions":{"magento-community":["2.4.8-p4","2.4.8-p3","2.4.8-p2","2.4.8-p1","2.4.8","2.4.7-p9","2.4.7-p8","2.4.7-p7","2.4.7-p6","2.4.7-p5","2.4.7-p4","2.4.7-p3","2.4.7-p2","2.4.7-p1","2.4.7","2.4.6-p15","2.4.6-p14","2.4.6-p13","2.4.6-p12","2.4.6-p11","2.4.6-p10","2.4.6-p9","2.4.6-p8","2.4.6-p7","2.4.6-p6","2.4.6-p5","2.4.6-p4","2.4.6-p3","2.4.6-p2","2.4.6-p1","2.4.6","2.4.5-p17","2.4.5-p16","2.4.5-p15","2.4.5-p14","2.4.5-p13","2.4.5-p12","2.4.5-p11","2.4.5-p10","2.4.5-p9","2.4.5-p8","2.4.5-p7","2.4.5-p6","2.4.5-p5","2.4.5-p4","2.4.5-p3","2.4.5-p2","2.4.5-p1","2.4.5","2.4.4-p18","2.4.4-p17","2.4.4-p16","2.4.4-p15","2.4.4-p14","2.4.4-p13","2.4.4-p12","2.4.4-p11","2.4.4-p10","2.4.4-p9","2.4.4-p8","2.4.4-p7","2.4.4-p6","2.4.4-p5","2.4.4-p4","2.4.4-p3","2.4.4-p2","2.4.4-p1","2.4.4"],"magento-commerce":["2.4.8-p4","2.4.8-p3","2.4.8-p2","2.4.8-p1","2.4.8","2.4.7-p9","2.4.7-p8","2.4.7-p7","2.4.7-p6","2.4.7-p5","2.4.7-p4","2.4.7-p3","2.4.7-p2","2.4.7-p1","2.4.7","2.4.6-p15","2.4.6-p14","2.4.6-p13","2.4.6-p12","2.4.6-p11","2.4.6-p10","2.4.6-p9","2.4.6-p8","2.4.6-p7","2.4.6-p6","2.4.6-p5","2.4.6-p4","2.4.6-p3","2.4.6-p2","2.4.6-p1","2.4.6","2.4.5-p17","2.4.5-p16","2.4.5-p15","2.4.5-p14","2.4.5-p13","2.4.5-p12","2.4.5-p11","2.4.5-p10","2.4.5-p9","2.4.5-p8","2.4.5-p7","2.4.5-p6","2.4.5-p5","2.4.5-p4","2.4.5-p3","2.4.5-p2","2.4.5-p1","2.4.5","2.4.4-p18","2.4.4-p17","2.4.4-p16","2.4.4-p15","2.4.4-p14","2.4.4-p13","2.4.4-p12","2.4.4-p11","2.4.4-p10","2.4.4-p9","2.4.4-p8","2.4.4-p7","2.4.4-p6","2.4.4-p5","2.4.4-p4","2.4.4-p3","2.4.4-p2","2.4.4-p1","2.4.4"],"mage-os":[]},"conditions":null,"requirements":null},"_documentation":"https://magento.watch/api","_description":"Quality patch ACSD-64118 details"}