[gdal-dev] GDAL Java Binding meomory problem under intensive method calls

easyl thlin.box at gmail.com
Thu Jan 5 11:27:43 EST 2012


GDAL 1.8.1 on Win64

basically I just use ogr2ogr and ogrinfo from gdal/java examples.

I wrote a test case with processing S57 (*000) data:

   /* read layer information with ogrinfo */
   final String param[] = { "-ro", "-al", src};
   final List<Layer> layers = ogrinfo.execute(param); // I just collect
"Layers" created by ogrinfo

   /* convert each possible layer and geometry type  with ogr2ogr */
   for (/* ... huge loop ...*/) {
      param= new String[]{"-skipfailure", "-append", "-f","ESRI Shapefile",
dest, src, "-nlt", type, layer};
      ogr2ogr.excute(param);
   }
  
   /* then try to access Layer again */
   layers.get(0).GetFeatureCount(); // XXX: it crashed here

I append the error at the end of the post.

It seems that the native lib has some memory reference issue or leak.


=========================================
=========================================
=========================================
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x000007fee8653ab3,
pid=7364, tid=7396
#
# JRE version: 6.0_25-b06
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.0-b11 mixed mode
windows-amd64 compressed oops)
# Problematic frame:
# C  [gdal18.dll+0x3c3ab3]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x000000000035b800):  JavaThread "main" [_thread_in_native,
id=7396, stack(0x0000000002630000,0x0000000002730000)]

siginfo: ExceptionCode=0xc0000005, reading address 0xffffffffffffffff

Registers:
RAX=0x0000000000000085, RBX=0x0000000000000085, RCX=0x3b58414d4143533b,
RDX=0x000000000687a3e2
RSP=0x000000000272f720, RBP=0x0000000000000000, RSI=0x000000000967db10,
RDI=0x0000000007be8d00
R8 =0x0000000000000000, R9 =0x000000000272f748, R10=0x000007fee8371d0d,
R11=0x000000000272f6b0
R12=0x0000000007be8d00, R13=0x0000000000000000, R14=0x00000000091f67b0,
R15=0x0000000000000003
RIP=0x000007fee8653ab3, EFLAGS=0x0000000000010297

Top of Stack: (sp=0x000000000272f720)
0x000000000272f720:   0000000000000004 000000000967db10
0x000000000272f730:   0000000007be8d00 00000000091f67b0
0x000000000272f740:   0000000000000000 0000000000000002
0x000000000272f750:   0000000007cbda30 000007fee86faea4
0x000000000272f760:   000000000035b800 0000000000000000
0x000000000272f770:   000000000272f958 0000000000000081
0x000000000272f780:   000000000967db10 000007fee8658586
0x000000000272f790:   0000000000000004 00000000091f67b0
0x000000000272f7a0:   0000000007be8d00 0000000000000001
0x000000000272f7b0:   0000000000000000 0000000000000002
0x000000000272f7c0:   fffffffffffffffe 0000000000000000
0x000000000272f7d0:   00000000bb52a7e8 0000000000000000
0x000000000272f7e0:   0000000000000e9d 000007fee8659256
0x000000000272f7f0:   0000000007be8d00 000000000272f928
0x000000000272f800:   0000000009244030 000000000967db10
0x000000000272f810:   0000000000000000 000007fee865d78f 

Instructions: (pc=0x000007fee8653ab3)
0x000007fee8653a93:   c3 d1 ff 48 63 d8 83 fb 01 0f 8c ed 00 00 00 49
0x000007fee8653aa3:   8b 0c 24 3b 59 30 0f 8f e0 00 00 00 48 8b 49 40
0x000007fee8653ab3:   48 8b 3c d9 48 85 ff 0f 84 cf 00 00 00 4c 8d 0d
0x000007fee8653ac3:   11 a2 31 00 48 8d 15 9a a2 31 00 45 33 c0 49 8b 


Register to memory mapping:

RAX=0x0000000000000085 is an unknown value
RBX=0x0000000000000085 is an unknown value
RCX=0x3b58414d4143533b is an unknown value
RDX=0x000000000687a3e2 is an unknown value
RSP=0x000000000272f720 is pointing into the stack for thread:
0x000000000035b800
RBP=0x0000000000000000 is an unknown value
RSI=0x000000000967db10 is an unknown value
RDI=0x0000000007be8d00 is an unknown value
R8 =0x0000000000000000 is an unknown value
R9 =0x000000000272f748 is pointing into the stack for thread:
0x000000000035b800
R10=0x000007fee8371d0d is an unknown value
R11=0x000000000272f6b0 is pointing into the stack for thread:
0x000000000035b800
R12=0x0000000007be8d00 is an unknown value
R13=0x0000000000000000 is an unknown value
R14=0x00000000091f67b0 is an unknown value
R15=0x0000000000000003 is an unknown value


Stack: [0x0000000002630000,0x0000000002730000],  sp=0x000000000272f720, 
free space=1021k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native
code)
C  [gdal18.dll+0x3c3ab3]  S57Reader::ApplyObjectClassAttributes+0xa3

[error occurred during error reporting (printing native stack), id
0xc0000005]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j 
org.gdal.ogr.ogrJNI.Layer_GetFeatureCount__SWIG_1(JLorg/gdal/ogr/Layer;)I+0
j  org.gdal.ogr.Layer.GetFeatureCount()I+5
j  org.gdal.TestViolation.main([Ljava/lang/String;)V+404
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x0000000006371800 JavaThread "GeometryNativeObjectsCleaner" daemon
[_thread_blocked, id=6876, stack(0x0000000009c80000,0x0000000009d80000)]
  0x0000000006371000 JavaThread "FeatureNativeObjectsCleaner" daemon
[_thread_blocked, id=8172, stack(0x0000000009b80000,0x0000000009c80000)]
  0x0000000006370000 JavaThread "Low Memory Detector" daemon
[_thread_blocked, id=7592, stack(0x0000000007550000,0x0000000007650000)]
  0x0000000006361800 JavaThread "C2 CompilerThread1" daemon
[_thread_blocked, id=4484, stack(0x0000000007450000,0x0000000007550000)]
  0x000000000634b000 JavaThread "C2 CompilerThread0" daemon
[_thread_blocked, id=3812, stack(0x0000000007350000,0x0000000007450000)]
  0x000000000634a000 JavaThread "Attach Listener" daemon [_thread_blocked,
id=7500, stack(0x0000000007250000,0x0000000007350000)]
  0x0000000006349000 JavaThread "Signal Dispatcher" daemon [_thread_blocked,
id=6784, stack(0x0000000007150000,0x0000000007250000)]
  0x00000000062f8800 JavaThread "Finalizer" daemon [_thread_blocked,
id=5980, stack(0x0000000007050000,0x0000000007150000)]
  0x00000000062f2000 JavaThread "Reference Handler" daemon [_thread_blocked,
id=7004, stack(0x0000000006f50000,0x0000000007050000)]
=>0x000000000035b800 JavaThread "main" [_thread_in_native, id=7396,
stack(0x0000000002630000,0x0000000002730000)]

Other Threads:
  0x00000000062e6000 VMThread [stack: 0x0000000006e50000,0x0000000006f50000]
[id=7820]
  0x0000000006399000 WatcherThread [stack:
0x0000000007650000,0x0000000007750000] [id=8160]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 PSYoungGen      total 19072K, used 14187K [0x00000000eab60000,
0x00000000ec0a0000, 0x0000000100000000)
  eden space 16384K, 86% used
[0x00000000eab60000,0x00000000eb93aea0,0x00000000ebb60000)
  from space 2688K, 0% used
[0x00000000ebe00000,0x00000000ebe00000,0x00000000ec0a0000)
  to   space 2688K, 0% used
[0x00000000ebb60000,0x00000000ebb60000,0x00000000ebe00000)
 PSOldGen        total 43648K, used 0K [0x00000000c0200000,
0x00000000c2ca0000, 0x00000000eab60000)
  object space 43648K, 0% used
[0x00000000c0200000,0x00000000c0200000,0x00000000c2ca0000)
 PSPermGen       total 21248K, used 5628K [0x00000000bb000000,
0x00000000bc4c0000, 0x00000000c0200000)
  object space 21248K, 26% used
[0x00000000bb000000,0x00000000bb57f168,0x00000000bc4c0000)

Code Cache  [0x0000000002730000, 0x00000000029a0000, 0x0000000005730000)
 total_blobs=391 nmethods=67 adapters=277 free_code_cache=49629952
largest_free_block=24512

Dynamic libraries:
0x0000000000400000 - 0x000000000042e000 	C:\Program
Files\Java\jre6\bin\javaw.exe
0x00000000772f0000 - 0x0000000077499000 	C:\Windows\SYSTEM32\ntdll.dll
0x00000000771d0000 - 0x00000000772ef000 	C:\Windows\system32\kernel32.dll
0x000007fefda70000 - 0x000007fefdadc000 	C:\Windows\system32\KERNELBASE.dll
0x000007feff0a0000 - 0x000007feff17b000 	C:\Windows\system32\ADVAPI32.dll
0x000007fefe190000 - 0x000007fefe22f000 	C:\Windows\system32\msvcrt.dll
0x000007feff4c0000 - 0x000007feff4df000 	C:\Windows\SYSTEM32\sechost.dll
0x000007fefde60000 - 0x000007fefdf8d000 	C:\Windows\system32\RPCRT4.dll
0x00000000770d0000 - 0x00000000771ca000 	C:\Windows\system32\USER32.dll
0x000007fefdbc0000 - 0x000007fefdc27000 	C:\Windows\system32\GDI32.dll
0x000007feff4e0000 - 0x000007feff4ee000 	C:\Windows\system32\LPK.dll
0x000007feff1d0000 - 0x000007feff299000 	C:\Windows\system32\USP10.dll
0x000007feff2a0000 - 0x000007feff2ce000 	C:\Windows\system32\IMM32.DLL
0x000007feff4f0000 - 0x000007feff5f9000 	C:\Windows\system32\MSCTF.dll
0x000000006fa00000 - 0x000000006fa3f000 
C:\PROGRA~2\Sophos\SOPHOS~1\SOPHOS~2.DLL
0x00000000774b0000 - 0x00000000774b7000 	C:\Windows\system32\PSAPI.DLL
0x000000006d7f0000 - 0x000000006dfa8000 	C:\Program
Files\Java\jre6\bin\server\jvm.dll
0x000007fefc540000 - 0x000007fefc57b000 	C:\Windows\system32\WINMM.dll
0x000000006d760000 - 0x000000006d76e000 	C:\Program
Files\Java\jre6\bin\verify.dll
0x000000006d3b0000 - 0x000000006d3d7000 	C:\Program
Files\Java\jre6\bin\java.dll
0x000000006d7b0000 - 0x000000006d7c2000 	C:\Program
Files\Java\jre6\bin\zip.dll
0x000007fef2590000 - 0x000007fef2673000 
D:\user\workspace\org.gdal\nativelib\win64\iconv.dll
0x000000006fd80000 - 0x000000006fe52000 	C:\Windows\system32\MSVCR100.dll
0x000007feebbc0000 - 0x000007feebd08000 
D:\user\workspace\org.gdal\nativelib\win64\libxml2.dll
0x000007fef9b10000 - 0x000007fef9b19000 	C:\Windows\system32\WSOCK32.dll
0x000007feff180000 - 0x000007feff1cd000 	C:\Windows\system32\WS2_32.dll
0x000007feff4b0000 - 0x000007feff4b8000 	C:\Windows\system32\NSI.dll
0x0000000068d60000 - 0x0000000068ec4000 
D:\user\workspace\org.gdal\nativelib\win64\pdflib.dll
0x000007feebb10000 - 0x000007feebbb3000 
D:\user\workspace\org.gdal\nativelib\win64\sqlite3.dll
0x000007fef4f40000 - 0x000007fef4f67000 
D:\user\workspace\org.gdal\nativelib\win64\openjpeg.dll
0x000007fefbe50000 - 0x000007fefbe66000 
D:\user\workspace\org.gdal\nativelib\win64\zlib1.dll
0x000007feeace0000 - 0x000007feeae67000 
D:\user\workspace\org.gdal\nativelib\win64\libeay32.dll
0x000007fef4840000 - 0x000007fef488e000 
D:\user\workspace\org.gdal\nativelib\win64\ssleay32.dll
0x000007fef4bc0000 - 0x000007fef4c08000 
D:\user\workspace\org.gdal\nativelib\win64\libcurl.dll
0x000007feea4b0000 - 0x000007feea66c000 
D:\user\workspace\org.gdal\nativelib\win64\geos_c.dll
0x000000006fea0000 - 0x000000006ff38000 	C:\Windows\system32\MSVCP100.dll
0x000007feea260000 - 0x000007feea4a1000 
D:\user\workspace\org.gdal\nativelib\win64\libmysql.dll
0x000007fef4810000 - 0x000007fef4835000 
D:\user\workspace\org.gdal\nativelib\win64\libpq.dll
0x000007fefb1e0000 - 0x000007fefb1e7000 	C:\Windows\system32\SHFOLDER.dll
0x000007fefe310000 - 0x000007feff098000 	C:\Windows\system32\SHELL32.dll
0x000007fefe030000 - 0x000007fefe0a1000 	C:\Windows\system32\SHLWAPI.dll
0x000007fefd5b0000 - 0x000007fefd5bb000 	C:\Windows\system32\Secur32.dll
0x000007fefd5e0000 - 0x000007fefd605000 	C:\Windows\system32\SSPICLI.DLL
0x0000000180000000 - 0x0000000180023000 
D:\user\workspace\org.gdal\nativelib\win64\libexpat.dll
0x000007fef3d40000 - 0x000007fef3d8e000 
D:\user\workspace\org.gdal\nativelib\win64\proj.dll
0x000007feeb850000 - 0x000007feeb971000 
D:\user\workspace\org.gdal\nativelib\win64\spatialite.dll
0x0000000012000000 - 0x000000001233a000 
D:\user\workspace\org.gdal\nativelib\win64\xerces-c_2_8.dll
0x000007fee8290000 - 0x000007fee8c13000 
D:\user\workspace\org.gdal\nativelib\win64\gdal18.dll
0x000007fef2680000 - 0x000007fef2731000 	C:\Windows\system32\ODBC32.dll
0x0000000070110000 - 0x0000000070148000 	C:\Windows\system32\odbcint.dll
0x000007fef5390000 - 0x000007fef53a3000 
D:\user\workspace\org.gdal\nativelib\win64\gdalconstjni.dll
0x000007fef43a0000 - 0x000007fef43f0000 
D:\user\workspace\org.gdal\nativelib\win64\gdaljni.dll
0x000007fef4370000 - 0x000007fef4392000 
D:\user\workspace\org.gdal\nativelib\win64\osrjni.dll
0x000007fef42c0000 - 0x000007fef42e5000 
D:\user\workspace\org.gdal\nativelib\win64\ogrjni.dll
0x000007fef77c0000 - 0x000007fef78e5000 	C:\Windows\system32\dbghelp.dll

VM Arguments:
jvm_args: -Dfile.encoding=UTF-8 
java_command: org.gdal.TestViolation
Launcher Type: SUN_STANDARD

Environment Variables:
CLASSPATH=.;C:\Program Files (x86)\Java\jre6\lib\ext\QTJava.zip
PATH=nativelib/win64
USERNAME=user
OS=Windows_NT
PROCESSOR_IDENTIFIER=Intel64 Family 6 Model 30 Stepping 5, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows 7 Build 7601 Service Pack 1

CPU:total 8 (4 cores per cpu, 2 threads per core) family 6 model 30 stepping
5, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1, sse4.2, popcnt, ht

Memory: 4k page, physical 4183896k(1680868k free), swap 8365944k(4551052k
free)

vm_info: Java HotSpot(TM) 64-Bit Server VM (20.0-b11) for windows-amd64 JRE
(1.6.0_25-b06), built on Apr 14 2011 00:44:38 by "java_re" with MS VC++ 8.0
(VS2005)

time: Thu Jan 05 17:16:44 2012
elapsed time: 24 seconds



  

--
View this message in context: http://osgeo-org.1803224.n2.nabble.com/GDAL-Java-Binding-meomory-problem-under-intensive-method-calls-tp7155011p7155011.html
Sent from the GDAL - Dev mailing list archive at Nabble.com.


More information about the gdal-dev mailing list