POV-Ray

The Persistence of Vision Raytracer (POV-Ray).

This is the legacy Bug Tracking System for the POV-Ray project. Bugs listed here are being migrated to our github issue tracker. Please refer to that for new reports or updates to existing ones on this system.

Tasklist

FS#169 - Error in Linux version using #while loop and SweepSpline macro in animation.

Attached to Project: POV-Ray
Opened by David Farmer (no_jo_nushi_san) - Sunday, 14 November 2010, 07:09 GMT
Last edited by Christoph Lipka (clipka) - Tuesday, 17 July 2012, 20:48 GMT
Task Type Possible Bug
Category Backend → Parser/SDL
Status Closed
Assigned To No-one
Operating System All
Severity Low
Priority Normal
Reported Version 3.6
Due in Version 3.70 RC4
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

I used POV-Ray to make an animation of my Morgan driving around a slalom course. (If you are curious, you can see the output on youtube under my user name, nojonushi.) To make the long swooping fenders I used Mike William’s SweepSpline macro.

The code rendered the 1189 frames in one go with no problems. But the wheels in that animation do not rotate, so I then added code to rotate the wheels. In the calculations I added I used a #while loop to step through the spline containing the route coordinates and total up the distance traveled. Running POV-Ray on this file produced a random number of images and then issued an error, e.g.

 0:00:00 Processing Frame 456 of 1189
 0:00:00 Parsing

File: mogslalom.pov Line: 1918
Parse Warning: Patch objects not allowed in intersection.
File: mogslalom.pov Line: 2988
File Context (5 lines):

                object {
                SweepSpline(TFSpline,

Parse Error: Identifier expected, incomplete function call or spline call found instead.

Most of the parameters for the macro are missing. But this is after successfully generating, in this case, 455 images.

I have attached a text file with set-up and sample code that has given the error on two different machines.

This task depends upon

Closed by  Christoph Lipka (clipka)
Tuesday, 17 July 2012, 20:48 GMT
Reason for closing:  Fixed
Comment by David Farmer (no_jo_nushi_san) - Sunday, 14 November 2010, 16:34 GMT

Addendum:

I said my computer was using Ubuntu 9.4 64 bit, there is no such distro, it should have been, Ubuntu 9.1 64 bit.

Comment by Grimbert Jérôme (Le_Forgeron) - Monday, 15 November 2010, 09:16 GMT

Which ubuntu release is that ? Intrepid Ibex or Jaunty Jackalope ?
(9.1 is not an official release date: 2009 January... Ubuntu likes to release in April & October since a few years (at least 2004))
Or 9.10 for Karmic Koala ? (2009 October)

Bug report.txt seems to provide a minimal scene which does not match the provided logs.
Hopefully it can be reproduced... more on that later.

Comment by David Farmer (no_jo_nushi_san) - Monday, 15 November 2010, 17:43 GMT

Thanks for enlightening me about Ubuntu's numbering convention, no one else ever implied that the trailing zero meant anything.

It is Ubuntu 9.10 with kernel 2.6.31-22

As to the code I supplied, you do not want to search for the bug with the original code, you could have your machine tied up for
over 24 hours before the error message appears. The code provided was the minimum I could trim to that would reliably reproduce
the error, and I had the error occur after about 125 frames in 1 minute and 29 seconds. A friend also got the same error running
with that code, in his case it ran for 3 minutes and 7 seconds stopping at the 398th frame. Both much better that 24 hours.

Here is the log of a run I just did with the code I posted here, showing the messages for the last three frames. This time it ran a little longer,
amazingly stopping at the 398th frames just like my friend's test, this number of frames would take about 12 hours with the full code
for drawing the Morgan.

BTW comparing to the other logs, you will notice that the SweepSpline statement is not broken in the same place each time.

0:00:00 Processing Frame 396 of 1189

0:00:00 Parsing

Parsing mesh2 from file: FLW
File: FLW Line: 518
Parse Warning: Normal vector in mesh2 cannot be zero - changing it to <1,0,0>.
File: abug.pov Line: 123
Parse Warning: Patch objects not allowed in intersection.
Cleanup Parse Warning: This rendering uses the following experimental
feature(s): spline. The design and implementation of these features is likely
to change in future versions of POV-Ray. Full backward compatibility with the
current implementation is NOT guaranteed.

0:00:00 Parsing 106K tokens

Scene Statistics

Finite objects:            1
Infinite objects:          1
Light sources:             1
Total:                     3
0:00:00 Displaying
0:00:01 Rendering line 43 of 240
0:00:01 Done Tracing

Render Statistics
Image Resolution 320 x 240


Pixels: 76800 Samples: 76800 Smpls/Pxl: 1.00
Rays: 83631 Saved: 0 Max Level: 4/5


Ray→Shape Intersection Tests Succeeded Percentage


Box 486015 29252 6.02
Cone/Cylinder 324010 8398 2.59
CSG Intersection 324010 37995 11.73
CSG Merge 162005 1074 0.66
Mesh 162005 15989 9.87
Plane 162005 79586 49.13
Bounding Box 1141094 346728 30.39


Calls to Noise: 0 Calls to DNoise: 72765


Shadow Ray Tests: 156748 Succeeded: 5987
Reflected Rays: 6831


Smallest Alloc: 9 bytes
Largest Alloc: 352808 bytes
Peak memory used: 1474480 bytes
Frame Processing Times

Parse Time:    0 hours  0 minutes  0 seconds (0 seconds)
Photon Time:   0 hours  0 minutes  0 seconds (0 seconds)
Render Time:   0 hours  0 minutes  1 seconds (1 seconds)
Total Time:    0 hours  0 minutes  1 seconds (1 seconds)
0:00:00 Processing Frame 397 of 1189
0:00:00 Parsing

Parsing mesh2 from file: FLW
File: FLW Line: 518
Parse Warning: Normal vector in mesh2 cannot be zero - changing it to <1,0,0>.
File: abug.pov Line: 123
Parse Warning: Patch objects not allowed in intersection.
Cleanup Parse Warning: This rendering uses the following experimental
feature(s): spline. The design and implementation of these features is likely
to change in future versions of POV-Ray. Full backward compatibility with the
current implementation is NOT guaranteed.

0:00:00 Parsing 106K tokens

Scene Statistics

Finite objects:            1
Infinite objects:          1
Light sources:             1
Total:                     3
0:00:00 Displaying
0:00:01 Rendering line 196 of 240
0:00:01 Done Tracing

Render Statistics
Image Resolution 320 x 240


Pixels: 76800 Samples: 76800 Smpls/Pxl: 1.00
Rays: 83631 Saved: 0 Max Level: 4/5


Ray→Shape Intersection Tests Succeeded Percentage


Box 486015 29252 6.02
Cone/Cylinder 324010 8398 2.59
CSG Intersection 324010 37995 11.73
CSG Merge 162005 1074 0.66
Mesh 162005 15989 9.87
Plane 162005 79586 49.13
Bounding Box 1141094 346728 30.39


Calls to Noise: 0 Calls to DNoise: 72765


Shadow Ray Tests: 156748 Succeeded: 5987
Reflected Rays: 6831


Smallest Alloc: 9 bytes
Largest Alloc: 352808 bytes
Peak memory used: 1474480 bytes
Frame Processing Times

Parse Time:    0 hours  0 minutes  0 seconds (0 seconds)
Photon Time:   0 hours  0 minutes  0 seconds (0 seconds)
Render Time:   0 hours  0 minutes  1 seconds (1 seconds)
Total Time:    0 hours  0 minutes  1 seconds (1 seconds)
0:00:00 Processing Frame 398 of 1189
0:00:00 Parsing

File: abug.pov Line: 121
File Context (5 lines):

	object {
		SweepSpline(FWSpline, VSpline,

Parse Error: Identifier expected, incomplete function call or spline call found
instead.
Total Scene Processing Times

Parse Time:    0 hours  0 minutes 29 seconds (29 seconds)
Photon Time:   0 hours  0 minutes  0 seconds (0 seconds)
Render Time:   0 hours  3 minutes 35 seconds (215 seconds)
Total Time:    0 hours  4 minutes  4 seconds (244 seconds)

david@FARMER-PC:~/JagClubSlalom$

Comment by David Farmer (no_jo_nushi_san) - Friday, 03 December 2010, 20:03 GMT

A work around.

If you can move the #while loop to after the SweepSpline(s) in the .pov code the animation pictures will all render.

Comment by Grimbert Jérôme (Le_Forgeron) - Thursday, 30 December 2010, 11:13 GMT

I cannot reproduce (from A_Bug_Report.txt): all the frames are rendered fine with beta 41
( povray a.pov -KI0 -KF118.8 -KFI0 -KFF1188 +W640 +H480 +A0.01 )

Side-effect symptom: memory footprint is increasing as render progress.
(I ended up with 9 GB, empty system at 1.5 GB)
Could it be an "out of memory" issue on original system ?

Comment by Grimbert Jérôme (Le_Forgeron) - Sunday, 09 January 2011, 13:43 GMT

Testing with RC2: the leak from 1.5 to 9GB on system memory is strongly reduced now.
(yet, there seems to be about 800k difference between the first & last frame's footprint of povray in top)

Does the error still happens with RC2 on the original poster's system ?

Comment by David Farmer (no_jo_nushi_san) - Sunday, 09 January 2011, 19:39 GMT

Please do not use TLAs when posting to people outside your working group. I have no idea what RC2 is. A search turned up such diverse possibilities as a cryptography method and a toy testing company. Thirty five years in the computer programming business cured me of the habit.

Waiting clarification...

Comment by Chris Cason (chrisc) - Sunday, 09 January 2011, 19:47 GMT

Jérôme's first language is not English, so I think he could be excused for not knowing that the term 'RC' for 'Release Candidate' is not widely known within the English-speaking community outside the computing profession. He is referring to Release Candidate 2 of POV-Ray v3.7.

Comment by Jim Holsenback (jholsenback) - Sunday, 09 January 2011, 20:23 GMT

how many of you had to look up what TLA means ... terribly late always? couldn't resist ;-)

Comment by Grimbert Jérôme (Le_Forgeron) - Saturday, 23 April 2011, 11:29 GMT

Back from kyberspace... testing with povray 3.7RC3 and valgrind.

It's leaking. At least per frame, it's leaking!
(it's also leaking for initial run, but it's irrelevant)

If someone wants to have more investigation on it (and hopefully find a way to fix one or more), please find attached the selected output of valgrind.

Comment by Grimbert Jérôme (Le_Forgeron) - Sunday, 14 August 2011, 14:44 GMT

Change #5467, fixing the previously detected memory leak (2 photonMap per rendered frame).

Loading...