Menu

Java error out of memory

Support
2015-09-18
2015-10-17
  • Lee Barnwell

    Lee Barnwell - 2015-09-18

    I keep getting OutOfMemoryError: Java heap space at frame 703 of 800 frames, on several different simple blender animations.

    Master: basic Win7 64 bit dual core box 4 gb memory

    Slave: Win7 64 bit 8 core with GTX 970 rendered with GPU 16 gb memory

    Both have Blender 2.75 installed. Both connected via ethernet (not wireless)

    I tried breaking the 800 frames into 2 pieces 1-400 & 401-800 but still quits at frame 703. Frame 703 renders fine on blender single frame.

    What can cause this error? loki log entry below

    The first failure was overnight, when it appeared to stop because of firewall popup, after alowing, don't konw if this is significant. I checked firewall exceptions on master, and java is allowed for both read and write.

    WARNING: uncaught throwable:
    java.lang.OutOfMemoryError: Java heap space
    at java.util.Arrays.copyOf(Unknown Source)
    at java.lang.AbstractStringBuilder.expandCapacity(Unknown Source)
    at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source)
    at java.lang.AbstractStringBuilder.append(Unknown Source)
    at java.lang.StringBuilder.append(Unknown Source)
    at java.io.ObjectInputStream$BlockDataInputStream.readUTFSpan(Unknown Source)
    at java.io.ObjectInputStream$BlockDataInputStream.readUTFBody(Unknown Source)
    at java.io.ObjectInputStream$BlockDataInputStream.readLongUTF(Unknown Source)
    at java.io.ObjectInputStream.readString(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.defaultReadFields(Unknown Source)
    at java.io.ObjectInputStream.readSerialData(Unknown Source)
    at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
    at java.io.ObjectInputStream.readObject0(Unknown Source)
    at java.io.ObjectInputStream.readObject(Unknown Source)
    at net.whn.loki.network.StreamSocketA.receiveDelivery(StreamSocketA.java:93)
    at net.whn.loki.brokersModel.Broker.run(Broker.java:52)
    at java.lang.Thread.run(Unknown Source)

     
  • Daniel Petersen

    Daniel Petersen - 2015-09-19

    Hi Lee,

    Try increasing the heap space when you launch loki. Something like this:

    http://stackoverflow.com/questions/6748432/java-heap-space-out-of-memory

    I'm in the middle of moving, so don't have time to help more right now. Good luck!

     
    • Lee Barnwell

      Lee Barnwell - 2015-09-22

      I read through that and others and have a couple of observations:

      I Increased the java memory size to 3 gig on the master and up to 8 gig in increments on the slave, but still it failed. I did a 700 frame 4K png sequence of images, then tried in the same que a 100 frame 720p set, where it failed at number 69 with the java memory error.

      It seems that 64bit windows running 32 bit java won't use that much memory. I can't install 64 bit without it seeing a 64 bit browser

      It also seems that cumulative nature of the failure, that the GC or Garbage Colleaction feature that is supposed to return unused memory blocks isn't working correctly on window 7, prehaps it works better on Mac or Linux.

      I am not looking for high production, just a que that will work overnight.

      Brender looks complicated to setup in a non linux environment, the Blender Network Render is too hit or miss, somethimes it works great, others not at all.

      If I can find something that will work, or get Loki working, I plan to purchase refurbished Dell server to use with the 2 windows machines.

      Thanks for your help

       
  • Daniel Petersen

    Daniel Petersen - 2015-09-22

    Hi Lee,

    It's interesting to hear Loki is being used for 4k frames, fun stuff! I've heard of weird memory limitations on Windows but don't have direct experience since I only use Linux render farms.

    Simply as a research/troubleshooting step, you may want to boot a quick and easy 64 bit Linux OS off of a USB stick on the Windows systems you've been using and see if you can avoid the memory problems. It's really easy to install, say, Ubuntu on a USB stick with a program called Unetbootin, just make sure to create some space for persistence so your setup/changes are saved between boots.

    I think this should work great for you, and then it's a simple thing to pop the USB stick in and run a Linux render cluster overnight, take it out when you want to run windows. Avoid all the silly Window memory issues:-)

    Hope this works for you.

     
  • Lee Barnwell

    Lee Barnwell - 2015-09-22

    Daniel, that is an intersting approach. I have previously read that there are NVIDIA drivers for linux, which may be the challenge for this method. Would both Master and Slave need to be booted to Linux, or since the Master mainly passes out the jobs, perhaps it could stay a windows machine. I will have to try this tonight.

    Thanks, Lee

     
  • Lee Barnwell

    Lee Barnwell - 2015-10-17

    An update:

    1) tried mint linux boot from USB stick grunt with win 7 master, failed at same point out of memory

    2) tried mint linux boot from USB stick grunt and linux mint on master, works great no issues, and seems slightly faster than the windows 7 single render of the 700 frames.

    Thanks Daniel for the suggestion.

     
  • Rodney Wild

    Rodney Wild - 2017-11-14

    This issue pops up because Loki stores the log information for each frame in heap space rather than a text file. The more frames you have the more heap space you require. You can increase the heap space and that will solve the problem to some extent but if you are submitting multiple large frame jobs you are going to have issues.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.