This forum contains outdated content and is available for reading only. Please contact technical support if you have any questions.

Notification

Icon
Error

Options
Go to last post Go to first unread
jchoi  
#1 Posted : Thursday, May 15, 2008 4:30:01 AM(UTC)
jchoi

Rank: Newbie

Groups: Guest
Joined: 3/10/2008(UTC)
Posts: 6

Graphics Mill v 5.0 (the trial x86 version available for download) fails our load test.

Here's what we do in our load test:

1. Create a memory stream from the jpg file

2. Load the memory stream into a Aurigma.GraphicsMill.Codecs.JpegReader

3. Use the JpegReader from step #2 to create a Aurigma.GraphicsMill.Codecs.JpegFrame. The frame is used to get the height, width, and bits/pixel.

4. Load the memory stream into a Aurigma.GraphicsMill.Codecs.LosslessJpegTransform.

5. Add a watermark using the LosslessJpegTransform's WritePatched.

6. Add a thin frame by calling WritePatched around the border.

We run 35 threads. After a total of about 100,000 iterations (total of all threads) of the above steps in about 5 hours, Jpgs can no longer be processed.

We get an error in step 4 above. The message is "Some unexpected error occured. If you see this message, please contact..."

Here's the stack trace:

at Aurigma.GraphicsMill.Codecs.LosslessJpegTransform._Open(Stream stream)

at Aurigma.GraphicsMill.Codecs.LosslessJpegTransform.Open(Stream stream)

at Aurigma.GraphicsMill.Codecs.LosslessJpegTransform..ctor(Stream stream)

Also, from step step 6 above, we get "Unable to create temporary file 'C:\WINDOWS\TEMP\ICM5124_BE8A.TMP'." sprinkled in among the errors. The file name is different for every temp file error, of course.

Here's the stack trace for these errors:

at Aurigma.GraphicsMill.Thread.FireStoppedEvent(Object object, ErrorEventArgs args)

at Aurigma.GraphicsMill.Thread.TimerEventProcessor()

at Aurigma.GraphicsMill.Thread.ChangeActivityStatus(ActivityStatus status)

at Aurigma.GraphicsMill.Thread.EntryPoint()

at Aurigma.GraphicsMill.Thread.Start()

at Aurigma.GraphicsMill.Codecs.FormatReader._FrameLoadBitmap(Frame frame)

at Aurigma.GraphicsMill.Codecs.Frame._GetBitmap(Bitmap bitmap)

at Aurigma.GraphicsMill.Codecs.Frame.GetBitmap(Bitmap bitmap)

at Aurigma.GraphicsMill.Bitmap.Load(Stream stream)

at Aurigma.GraphicsMill.Bitmap._Load(Stream stream)

at Aurigma.GraphicsMill.Bitmap..ctor(Stream stream)

The bitmap we are trying to create is a crop of one of the borders of the jpg. The idea is to draw a line on the bitmap and then call WritePatched to put the crop back into the jpeg with a "frame" added.

We know load is the problem because the problems occur on jpgs that processed fine earlier in the load test.

I should also note that we are using Windows 2003 Server with IIS 6.0. The CPU is an AMD Opteron 285, dual 2.61Ghz. There is 1.25 GB RAM. So, not your typical beefy server.

The w3wp.exe that hosts the host load test steadily gets a bigger and bigger Working Set (memory usage). It gets up to about 660MB before the errors start occuring. After the errors, the Working Set stays at around 260MB for the remainder of the test during all the errors. I'm not sure if we could interpret this as a memory leak or not.

I do know that the LosslessJpegTransform had a memory leak in v4.5. I know that because we ran Debug Diagnostic Tool on a memory dump. And it reported likely memory leaks from this stack:

Aurigma_GraphicsMill+12b50a

Aurigma_GraphicsMill+e3073

Aurigma_GraphicsMill+e2b04

Aurigma_GraphicsMill+1d7681

Aurigma_GraphicsMill+1d768f

Aurigma.GraphicsMill.Codecs.NonSeekableStreamProxy.Seek(Int64, System.IO.SeekOrigin)

Aurigma.GraphicsMill.Codecs.NonSeekableStreamProxy.Seek(Int64, System.IO.SeekOrigin)

Aurigma.GraphicsMill.Codecs.FormatReader._Open(System.IO.Stream)

Aurigma.GraphicsMill.Codecs.FormatReader._Open(System.IO.Stream)

Aurigma.GraphicsMill.Codecs.FormatReader.Open(System.IO.Stream)

Aurigma.GraphicsMill.Codecs.LosslessJpegTransform._Open(System.IO.Stream)

Aurigma.GraphicsMill.Codecs.LosslessJpegTransform._Open(System.IO.Stream)

The processor is pegged at 100% during the entire test, even when the errors occur.

Hope this is enough information.

Edited by user Thursday, May 22, 2008 1:25:14 PM(UTC)  | Reason: Not specified

Alex Kon  
#2 Posted : Thursday, May 15, 2008 4:07:47 PM(UTC)
Alex Kon

Rank: Advanced Member

Groups: Guest
Joined: 1/31/2005(UTC)
Posts: 458

Was thanked: 5 time(s) in 5 post(s)
Hello,

Thank your very much for your report - it is very valuable information for us! And for such detailed description too.

We already started work on this issue. Please submit case with your test app. I would like to take a look in the code and run it along with our stress tests.

Edited by user Thursday, May 22, 2008 1:28:11 PM(UTC)  | Reason: Not specified

Users browsing this topic
Guest (2)
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.