Repository navigation
3.26.0 - New listings stopped arriving on some hosts
New listings stopped arriving on some hosts
A shop on WordPress.com reported that its newest eBay listings were never imported: the scheduled sync started, ran for several minutes, and was marked failed — over and over — with PHP out of memory.
eBay sends every listing changed in the period asked for as one answer, with no pagination. With large listings — HTML description templates, or many variations — that answer could be more than a 512 MB site can read. And a run that runs out of memory writes nothing, so the next run asked for exactly the same thing and failed the same way, for ever.
- FIX: the sync now checks how large eBay's answer is before reading it, and asks for a shorter period when it is too much for your site's memory. Each answer is read using about half the memory it was.
- FIX: a run your host stops is noticed by the next one, which asks for less — and reads less at a time for the following week — instead of repeating it for ever. A timeout from eBay is handled the same way; it used to retry the identical period indefinitely.
- FIX: eBay sends at most 3,000 changed listings at a time and silently left out the rest. That period is now read again in shorter pieces, so nothing is missed.
- FIX: a listing that sold again while the sync was part way through a large batch could make it skip the next listing in that batch for good. It now resumes by eBay item number.
- A sync that has fallen behind now works through the backlog straight away instead of one piece per scheduled run, while leaving most of the day's shared eBay allowance alone. Once things are quiet it goes back to reading longer periods.
- eBay.de, .fr, .it and .es: eBay's "too many results" message arrived in your language and was not recognised. It is now asked for in English.
- FIX: Emergency Stop pressed while the sync was reading from eBay was overwritten a moment later, and the sync carried on. It now stops.
- If a period cannot be read even fifteen minutes at a time — three attempts, each stopped — it is stepped over so syncing continues, and the log names the minutes to pick up with Fetch Inventory. That was already the rule when eBay refused outright.
Syncs restarted or stuck, depending on your timezone
The check for a sync that has stopped responding read your site's local time as if it were UTC. In the Americas a running sync looked stuck the moment it started, so every scheduled run restarted it from the beginning and a large batch of changes could never finish. East of UTC, a sync that really had stopped was waited on for hours past the intended 30 minutes — eleven and a half in Sydney.
- FIX: it now behaves the same in every timezone, and the daily clean-up of stuck syncs, which had the same mistake, is fixed too.
- A sync whose next step is still waiting in the queue is no longer taken for a stuck one, so a quiet site whose scheduled tasks only run when someone visits does not have its sync restarted from the top.
Nothing to change in settings — update and the sync takes care of any backlog itself.
907 assertions across 23 files, all checks green.