Skip to content

Update BaseRepository.php - #74

Open
Usytech51 wants to merge 1 commit into
packlink-dev:masterfrom
Usytech51:patch-3
Open

Usytech51 wants to merge 1 commit into
packlink-dev:masterfrom
Usytech51:patch-3

Conversation

@Usytech51

Copy link
Copy Markdown

fix(repository): disable SQL query cache on entity reads

Pass $use_cache = false to executeS() in getRecordsByCondition() so Packlink entity rows (packlink_entity) are always read fresh.

PrestaShop's executeS($sql, $array = true, $use_cache = true) caches SELECT results (Memcached). During task-runner wakeup, a single request writes an empty runner status to release the lock (A) and then reads it back (B). With caching on, (B) returned the stale cached status instead of the value just written in (A), so the runner could never reset its own lock — causing a permanent deadlock and shipment drafts stuck at "Draft is currently being created".

Reading without cache makes the runner status reflect the real DB state and unblocks draft creation.

fix(repository): disable SQL query cache on entity reads

Pass $use_cache = false to executeS() in getRecordsByCondition() so
Packlink entity rows (packlink_entity) are always read fresh.

PrestaShop's executeS($sql, $array = true, $use_cache = true) caches
SELECT results (Memcached). During task-runner wakeup, a single request
writes an empty runner status to release the lock (A) and then reads it
back (B). With caching on, (B) returned the stale cached status instead
of the value just written in (A), so the runner could never reset its
own lock — causing a permanent deadlock and shipment drafts stuck at
"Draft is currently being created".

Reading without cache makes the runner status reflect the real DB state
and unblocks draft creation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant