Since migrating from PowerBuilder 2019 R2 to 2022 R3, we've had an influx of user complaints where they get "JPEG Processing Error: Insufficient Memory (case 4)" popups and windows error logs stating that faults occurred in VCRUNTIME140.dll and ucrtbase.dll if they have a datawindow with an image on screen and hover over it/move their mouse over it/scroll it for a long bit of time. It can also occur with two datawindows present and no movement. With Process Monitor running, we can see that the image is being re-read from disk with every movement of the mouse. I will note that if we do the same test against a PB 2019 app, it still does do the readfile call repeatedly, but the big difference is 2019 grabs the image from the network and puts it in temp then reads the file from there, while 2022 R3 reads from the network with every call. You can watch the memory spike with each ReadFile call, though it releases itself with 2019 but continues to build at least somewhat with 2022 R3, and despite this stating insufficient memory, the process appears to be nowhere near the 32-bit memory cap.
My questions are:
1. Why is it re-reading the image for every single mouse movement? Is this something we can mitigate?
2. Is the temp path portion a PowerBuilder change, or a VC Runtime issue?
3. Is this related to the memory leak for datawindow printing with an image that was fixed in PB 2019 R3 and again in 2022 R2?