AnsweredAssumed Answered

[10.2.2 Java API] Crash in sdeora11gsrvr102.dll

Question asked by seamxr on Jun 29, 2015

Hello,

 

My Windows application which bases on the ArcSDE Java API 10.2.2.1073 crashes at the sdeora11gsrvr102.DLL and I couldn't find the clue so far. Will anyone have the same experience could share some hint?

 

The ArcSDE Java API is version 10.2.2.1073 with Oracle Instant client 11.2.0.4. It connects to remote Oracle DB server ver 11.2.0.4 with st_shapelib.dll 10.2.2. The operation system running ArcSDE Java API is Windows server 2008 R2 Ent with SP1, x64.

 

We have another in-house environment of DB server is Oracle 10.2.0.1 which runs well. But the remote environment runs Oracle 11.2.0.4 with st_shapelib.dll 10.2.2 which we cannot control.

 

The code snippet as following:

String whereClause = buildWhereClauseForFeatureIds(layerAttributeNameFeatureId, featureIds);

SeSqlConstruct sqlConstruct = new SeSqlConstruct(qualifiedLayerName, whereClause);

String[] columns = new String[] { layerAttributeNameFeatureId };

SeQuery seQuery = new SeQuery(sdeConn, columns, sqlConstruct);

seQuery.prepareQuery();

seQuery.execute();  <---- Crash deeply in the DLL after invoke .execute();

 

Below is the callstack of OS memory dump from WinDbg:

FAULTING_IP:

KERNELBASE!RaiseException+39

000007fe`fd46b3dd 4881c4c8000000  add     rsp,0C8h

 

EXCEPTION_RECORD:  0000000011981e20 -- (.exr 0x11981e20)

ExceptionAddress: 000000000e4d287e (sdeora11gsrvr102!DB_table_calculate_stats_by_logfile+0x000000000000547e)

   ExceptionCode: c0000005 (Access violation)

  ExceptionFlags: 00000000

NumberParameters: 2

   Parameter[0]: 0000000000000000

   Parameter[1]: 0000000000000008

Attempt to read from address 0000000000000008

 

CONTEXT:  0000000011981930 -- (.cxr 0x11981930;r)

rax=0000000012420080 rbx=00000000124e6860 rcx=00000000124e6860

rdx=0000000000000020 rsi=00000000ffffffff rdi=0000000000000000

rip=000000000e4d287e rsp=0000000011981ef0 rbp=0000000000000000

r8=0000000012cfb170  r9=0000000012cfb160 r10=0000000000000000

r11=0000000000000000 r12=0000000000000000 r13=0000000000000020

r14=0000000000000000 r15=0000000000000000

iopl=0         nv up ei pl zr na po nc

cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010246

sdeora11gsrvr102!DB_table_calculate_stats_by_logfile+0x547e:

00000000`0e4d287e 488b4708        mov     rax,qword ptr [rdi+8] ds:00000000`00000008=????????????????

Last set context:

rax=0000000012420080 rbx=00000000124e6860 rcx=00000000124e6860

rdx=0000000000000020 rsi=00000000ffffffff rdi=0000000000000000

rip=000000000e4d287e rsp=0000000011981ef0 rbp=0000000000000000

r8=0000000012cfb170  r9=0000000012cfb160 r10=0000000000000000

r11=0000000000000000 r12=0000000000000000 r13=0000000000000020

r14=0000000000000000 r15=0000000000000000

iopl=0         nv up ei pl zr na po nc

cs=0033  ss=002b  ds=002b  es=002b  fs=0053  gs=002b             efl=00010246

sdeora11gsrvr102!DB_table_calculate_stats_by_logfile+0x547e:

00000000`0e4d287e 488b4708        mov     rax,qword ptr [rdi+8] ds:00000000`00000008=????????????????

Resetting default scope

 

DEFAULT_BUCKET_ID:  NULL_POINTER_READ

 

PROCESS_NAME:  mitsGeoProcessingService.exe

 

ERROR_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.

 

EXCEPTION_CODE: (NTSTATUS) 0xc0000005 - The instruction at 0x%08lx referenced memory at 0x%08lx. The memory could not be %s.

 

READ_ADDRESS:  0000000000000000

 

FOLLOWUP_IP:

sdeora11gsrvr102!DB_table_calculate_stats_by_logfile+547e

00000000`0e4d287e 488b4708        mov     rax,qword ptr [rdi+8]

 

NTGLOBALFLAG:  0

 

APPLICATION_VERIFIER_FLAGS:  0

 

APP:  mitsgeoprocessingservice.exe

 

ANALYSIS_VERSION: 6.3.9600.17336 (debuggers(dbg).150226-1500) amd64fre

 

FAULTING_THREAD:  0000000000000d90

 

PRIMARY_PROBLEM_CLASS:  NULL_POINTER_READ

 

BUGCHECK_STR:  APPLICATION_FAULT_NULL_POINTER_READ

 

LAST_CONTROL_TRANSFER:  from 000000000e660127 to 000000000e4d287e

 

STACK_TEXT: 

00000000`11981ef0 00000000`0e660127 : 00000000`00000000 00000000`0d58af6e 00000000`00000000 00000000`00000000 : sdeora11gsrvr102!DB_table_calculate_stats_by_logfile+0x547e

00000000`11981ff0 00000000`0e68dbb0 : 00000000`124e6860 00000000`00000000 00000000`124e6860 00000000`ffffffff : sdeora11gsrvr102!DB_archive_delete+0x1c7

00000000`11982a50 00000000`0e696bb8 : 00000000`0000006e 00000000`ffffffff 00000000`124e6860 00000000`1275df20 : sdeora11gsrvr102!DB_stream_init_query_layer+0x1080

00000000`119832c0 00000000`0e43e3c0 : 00000000`00000003 00000000`124ecb08 00000000`124df630 00000000`00000000 : sdeora11gsrvr102!DB_stream_execute_query+0x608

00000000`11983780 00000000`0e3fb6b6 : 00000000`0df812d0 00000000`0df813ea 00000000`0df78950 00000000`0df852b8 : gsrvrora11g102!S_gsrvr_main+0x110b0

00000000`11985bd0 00000000`0e42f70f : 00000000`00000001 00000000`124df630 00000000`0df813ea 00000000`0df78950 : gsrvrora11g102+0x1b6b6

00000000`11985c00 00000000`749c2fdf : 00000000`0df80d30 00000000`0df80d30 00000000`00000000 00000000`00000000 : gsrvrora11g102!S_gsrvr_main+0x23ff

00000000`1198ff00 00000000`749c3080 : 00000000`74a4cad0 00000000`0df80d30 00000000`00000000 00000000`00000000 : msvcr90!endthreadex+0x47

00000000`1198ff30 00000000`771759cd : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : msvcr90!endthreadex+0xe8

00000000`1198ff60 00000000`773ab981 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : kernel32!BaseThreadInitThunk+0xd

00000000`1198ff90 00000000`00000000 : 00000000`00000000 00000000`00000000 00000000`00000000 00000000`00000000 : ntdll!RtlUserThreadStart+0x1d

 

Any clue would be helpful.

Thank you in advance.

 

James

Outcomes