JVP hangs?
Posted in 2000
Topics: Installation, Setup & Upgrades, Storage & Space Management, Error Codes & Troubleshooting, Connectivity: ODBC / JDBC / .NET, Server Administration, Platform-Specific Issues, Java & JDBC Development
Hello,
I'm running
informix_dynamic_server_2000_v9_20_uc1_for_intel_linux_2_2_5.zip on
FreeBSD 4.0-RELEASE with linux emulation (basically RedHat 6.0) with
blackdown's jdk118_v1 (with green_threads). I'm trying to install a jar
file both from dbaccess and from a java app (jdbc 1.40), but the
connection just hangs never returning from the engine. Killing the java
app produces the stack trace below. I have also increased the JVP trace
level to 5 and am getting the log below.
Has anybody been able to successfully use smart blobs and java with this
version of the engine? At one time I installed a smart blob space as
`objectsbs' and jdbc was complaining about not finding a blob space with
the name: `sbspace'. Is this expected behaviour?
BTW, all this works under Solaris 2.6 (on Sparc) with the same version
of the engine.
Any ideas are appreciated,
java_X stack trace:
Connected to database [test@gabor]...
SIGABRT 6* abort (generated by abort(3) routine)
Full thread dump:
"Finalizer thread" (TID:0x2867e210, sys_thread_t:0x29482f00,
state:CW) prio=1
"Async Garbage Collector" (TID:0x2867e258, sys_thread_t:0x29461f00,
state:CW) prio=1
"Idle thread" (TID:0x2867e2a0, sys_thread_t:0x29440f00, state:R)
prio=0 *current thread*
"Clock" (TID:0x2867e088, sys_thread_t:0x2941ff00, state:CW) prio=12
"main" (TID:0x2867e0b0, sys_thread_t:0x81bd700, state:CW) prio=5
java.net.SocketInputStream.read(SocketInputStream.java:84)
java.io.BufferedInputStream.fill(BufferedInputStream.java)
java.io.BufferedInputStream.read(BufferedInputStream.java)
com.informix.asf.IfxDataInputStream.readFully(IfxDataInputStream.java)
com.informix.asf.IfxDataInputStream.readSmallInt(IfxDataInputStream.java)
com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java)
com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java)
com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java)
com.informix.jdbc.IfxResultSet.execute(IfxResultSet.java)
com.informix.jdbc.IfxStatement.executeImpl(IfxStatement.java)
com.informix.jdbc.IfxStatement.execute(IfxStatement.java)
com.foo.db.AddExtractProcs.drop(AddExtractProcs.java:96)
com.foo.db.AddExtractProcs.dropJar(AddExtractProcs.java:129)
com.foo.db.AddExtractProcs.main(AddExtractProcs.java:64)
Monitor Cache Dump:
java.io.BufferedInputStream@2868D780/286FA658: owner "main"
(0x81bd700, 1 entry)
<unknown key> (0x29461f00): <unowned>
Waiting to be notified:
"Async Garbage Collector" (0x29461f00)
Registered Monitor Dump:
Thread queue lock: <unowned>
Name and type hash table lock: <unowned>
String intern lock: <unowned>
JNI pinning lock: <unowned>
JNI global reference lock: <unowned>
BinClass lock: <unowned>
Class loading lock: <unowned>
Java stack lock: <unowned>
Code rewrite lock: <unowned>
Heap lock: <unowned>
Has finalization queue lock: <unowned>
Finalize me queue lock: <unowned>
Waiting to be notified:
"Finalizer thread" (0x29482f00)
Monitor IO lock: <unowned>
Child death monitor: <unowned>
Event monitor: <unowned>
I/O monitor: <unowned>
Alarm monitor: <unowned>
Waiting to be notified:
"Clock" (0x2941ff00)
Memory allocation lock: <unowned>
Monitor registry: owner "Idle thread" (0x29440f00, 1 entry)
Thread Alarm Q:
sys_thread_t 0x29461f00 [Timeout in 692 ms]
Abort(core dumped)
jvp.log:
15:48:15 Booting Language <java> from module
<$INFORMIXDIR/extend/krakatoa/lmjava.so>
15:48:15 Loading Module <$INFORMIXDIR/extend/krakatoa/lmjava.so>
15:48:16 The C Language Module
</usr/local/informix/extend/krakatoa/lmjava.so> loaded
15:48:16 Loading Module <informix.jvp.dbapplet.impl.JarHandler>
15:48:16 dynamically allocated new shared memory segment (size
16928768)
Cannot open JVP log file
loading native library /usr/local/informix/extend/krakatoa/libjvp.so
Read JVP property file/usr/local/informix/extend/krakatoa/.jvpprops
2000/04/11 15:48:20.380 JVP#3: TraceStreamImpl: set verbose to true
15:48 JVP#3: Trace: JVP.Semaphore: New VP global lock
informix.jvp.impl.SemaphoreImpl@21502a0
15:48 JVP#3: Trace: JVP.Semaphore: V() ends VP global lock 1
15:48 JVP#3: Trace: JVP.Semaphore: New IdleThreadImpl Sem
informix.jvp.impl.SemaphoreImpl@21502dc
15:48 JVP#3: Trace: JVP.Semaphore: New SAPIRequestImpl Sem
informix.jvp.impl.SemaphoreImpl@215037e
15:48 JVP#3: Trace: JVP.Semaphore: New SAPIRequestImpl Sem
informix.jvp.impl.SemaphoreImpl@215039f
15:48 JVP#3: Trace: JVP.Semaphore: New SAPIRequestImpl Sem
informix.jvp.impl.SemaphoreImpl@21503c2
15:48 JVP#3: Trace: JVP.Semaphore: New SAPIRequestImpl Sem
informix.jvp.impl.SemaphoreImpl@21503e5
15:48 JVP#3: Trace: JVP.Semaphore: New SAPIRequestImpl Sem
informix.jvp.impl.SemaphoreImpl@2150408
15:48 JVP#3: Trace: JVP.Semaphore: P() waits IdleThreadImpl Sem
15:48 JVP#3: JVP monitor thread starts on port 10003
Alarm Time set to 3
15:48 JVP#3: Trace: JVP.Semaphore: statelessV() ends IdleThreadImpl Sem
1
15:48 JVP#3: Trace: JVP.Semaphore: P() ends IdleThreadImpl Sem 0
15:48 JVP#3: Trace: JVP.DBA.Context: processing open context request
15:48 JVP#3: Trace: JVP.DBA.Context: module name:
informix.jvp.dbapplet.impl.JarHandler
15:48 JVP#3: Trace: JVP.JLM: load module
informix.jvp.dbapplet.impl.JarHandler
15:48 JVP#3: Trace: JVP.JLM: open context for
informix.jvp.dbapplet.impl.JarHandler#0 of thread group
java.lang.ThreadGroup[name=informix.jvp.dbapplet.impl.JarHandler#0,maxpri=10]
15:48 JVP#3: Trace: JVP.DBA.Monitor: fillDBAMonitorImpl
informix.jvp.dbapplet.impl.JarHandler#0: mtcb 274163168
15:48 JVP#3: Trace: JVP.Semaphore: New
informix.jvp.dbapplet.impl.JarHandler#0
informix.jvp.impl.SemaphoreImpl@21506fc
15:48 JVP#3: Trace: JVP.DBA.Thread: NEW DBAThreadImpl
Thread[informix.jvp.dbapplet.impl.JarHandler#0,10,informix.jvp.dbapplet.impl.JarHandler#0],state
= INIT T#1 274437296
15:48 JVP#3: Trace: JVP.DBA.Context: tcb: 274163168
15:48 JVP#3: Trace: JVP.DBA.Thread: starting dbaThread
15:48 JVP#3: Trace: JVP.Semaphore: V() ends
informix.jvp.dbapplet.impl.JarHandler#0 1
15:48 JVP#3: Trace: JVP.DBA.Context: done monitor:
informix.jvp.dbapplet.impl.DBAMonitorImpl@21506d8
informix.jvp.dbapplet.impl.JarHandler#0
15:48 JVP#3: Trace: JVP.DBA.Monitor: fillDBAMonitorImpl sapp_listener:
mtcb 273607640
15:48 JVP#3: Trace: JVP.Semaphore: New sapp_listener
informix.jvp.impl.SemaphoreImpl@21508d6
15:48 JVP#3: Trace: JVP.Semaphore: P() waits IdleThreadImpl Sem
T#1 15:48 JVP#3: Trace: JVP.DBA.Thread: started dispatch loop
T#1 15:48 JVP#3: Trace: JVP.DBA.Thread: null JAVA UDR WAITING on new JLM
task code
T#1 15:48 JVP#3: Trace: JVP.Semaphore: P() ends
informix.jvp.dbapplet.impl.JarHandler#0 0
T#1 15:48 JVP#3: Trace: JVP.DBA.Thread: null JAVA UDR receives new JLM
task code 1
T#1 15:48 JVP#3: Trace: JVP.DBA.Thread: Running JAVA UDR
T#1 15:48 JVP#3: Trace: JVP.DBA.Monitor: notify JAVA UDR status = 10
tcb: 274163168
T#1 15:48 JVP#
Gabor Kincses wrote:
>
> Hello,
>
> I'm running
> informix_dynamic_server_2000_v9_20_uc1_for_intel_linux_2_2_5.zip on
> FreeBSD 4.0-RELEASE with linux emulation (basically RedHat 6.0) with
> blackdown's jdk118_v1 (with green_threads). I'm trying to install a jar
> file both from dbaccess and from a java app (jdbc 1.40), but the
> connection just hangs never returning from the engine. Killing the java
> app produces the stack trace below. I have also increased the JVP trace
> level to 5 and am getting the log below.
>
> Has anybody been able to successfully use smart blobs and java with this
> version of the engine? At one time I installed a smart blob space as
> `objectsbs' and jdbc was complaining about not finding a blob space with
> the name: `sbspace'. Is this expected behaviour?
>
> BTW, all this works under Solaris 2.6 (on Sparc) with the same version
> of the engine.
>
> Any ideas are appreciated,
The jvp log actually shows what happens when the `remove_jar' procedure
is executed; interestingly I have tried several different UDRs, they all
complete (i.e. I can see the result in the database), but neither
dbaccess nor JDBC "feels" that the UDR is completed. The java_X trace
below shows that JDBC is just waiting for a message from the engine
which never comes.
Any help is greatly appreciated.
> java_X stack trace:
>
> Connected to database [test@gabor]...
> SIGABRT 6* abort (generated by abort(3) routine)
>
> Full thread dump:
> "Finalizer thread" (TID:0x2867e210, sys_thread_t:0x29482f00,
> state:CW) prio=1
> "Async Garbage Collector" (TID:0x2867e258, sys_thread_t:0x29461f00,
> state:CW) prio=1
> "Idle thread" (TID:0x2867e2a0, sys_thread_t:0x29440f00, state:R)
> prio=0 *current thread*
> "Clock" (TID:0x2867e088, sys_thread_t:0x2941ff00, state:CW) prio=12
> "main" (TID:0x2867e0b0, sys_thread_t:0x81bd700, state:CW) prio=5
> java.net.SocketInputStream.read(SocketInputStream.java:84)
> java.io.BufferedInputStream.fill(BufferedInputStream.java)
> java.io.BufferedInputStream.read(BufferedInputStream.java)
>
> com.informix.asf.IfxDataInputStream.readFully(IfxDataInputStream.java)
>
> com.informix.asf.IfxDataInputStream.readSmallInt(IfxDataInputStream.java)
> com.informix.jdbc.IfxSqli.receiveMessage(IfxSqli.java)
> com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java)
> com.informix.jdbc.IfxSqli.executeExecute(IfxSqli.java)
> com.informix.jdbc.IfxResultSet.execute(IfxResultSet.java)
> com.informix.jdbc.IfxStatement.executeImpl(IfxStatement.java)
> com.informix.jdbc.IfxStatement.execute(IfxStatement.java)
> com.foo.db.AddExtractProcs.drop(AddExtractProcs.java:96)
> com.foo.db.AddExtractProcs.dropJar(AddExtractProcs.java:129)
> com.foo.db.AddExtractProcs.main(AddExtractProcs.java:64)
> Monitor Cache Dump:
> java.io.BufferedInputStream@2868D780/286FA658: owner "main"
> (0x81bd700, 1 entry)
> <unknown key> (0x29461f00): <unowned>
> Waiting to be notified:
> "Async Garbage Collector" (0x29461f00)
> Registered Monitor Dump:
> Thread queue lock: <unowned>
> Name and type hash table lock: <unowned>
> String intern lock: <unowned>
> JNI pinning lock: <unowned>
> JNI global reference lock: <unowned>
> BinClass lock: <unowned>
> Class loading lock: <unowned>
> Java stack lock: <unowned>
> Code rewrite lock: <unowned>
> Heap lock: <unowned>
> Has finalization queue lock: <unowned>
> Finalize me queue lock: <unowned>
> Waiting to be notified:
> "Finalizer thread" (0x29482f00)
> Monitor IO lock: <unowned>
> Child death monitor: <unowned>
> Event monitor: <unowned>
> I/O monitor: <unowned>
> Alarm monitor: <unowned>
> Waiting to be notified:
> "Clock" (0x2941ff00)
> Memory allocation lock: <unowned>
> Monitor registry: owner "Idle thread" (0x29440f00, 1 entry)
> Thread Alarm Q:
> sys_thread_t 0x29461f00 [Timeout in 692 ms]
> Abort(core dumped)
>
> jvp.log:
>
> 15:48:15 Booting Language <java> from module
> <$INFORMIXDIR/extend/krakatoa/lmjava.so>
> 15:48:15 Loading Module <$INFORMIXDIR/extend/krakatoa/lmjava.so>
> 15:48:16 The C Language Module
> </usr/local/informix/extend/krakatoa/lmjava.so> loaded
> 15:48:16 Loading Module <informix.jvp.dbapplet.impl.JarHandler>
> 15:48:16 dynamically allocated new shared memory segment (size
> 16928768)>
> Cannot open JVP log file
> loading native library /usr/local/informix/extend/krakatoa/libjvp.so
> Read JVP property file/usr/local/informix/extend/krakatoa/.jvpprops
> 2000/04/11 15:48:20.380 JVP#3: TraceStreamImpl: set verbose to true
> 15:48 JVP#3: Trace: JVP.Semaphore: New VP global lock
> informix.jvp.impl.SemaphoreImpl@21502a0
> 15:48 JVP#3: Trace: JVP.Semaphore: V() ends VP global lock 1
> 15:48 JVP#3: Trace: JVP.Semaphore: New IdleThreadImpl Sem
> informix.jvp.impl.SemaphoreImpl@21502dc
> 15:48 JVP#3: Trace: JVP.Semaphore: New SAPIRequestImpl Sem
> informix.jvp.impl.SemaphoreImpl@215037e
> 15:48 JVP#3: Trace: JVP.Semaphore: New SAPIRequestImpl Sem
> informix.jvp.impl.SemaphoreImpl@215039f
> 15:48 JVP#3: Trace: JVP.Semaphore: New SAPIRequestImpl Sem
> informix.jvp.impl.SemaphoreImpl@21503c2
> 15:48 JVP#3: Trace: JVP.Semaphore: New SAPIRequestImpl Sem
> informix.jvp.impl.SemaphoreImpl@21503e5
> 15:48 JVP#3: Trace: JVP.Semaphore: New SAPIRequestImpl Sem
> informix.jvp.impl.SemaphoreImpl@2150408
> 15:48 JVP#3: Trace: JVP.Semaphore: P() waits IdleThreadImpl Sem
> 15:48 JVP#3: JVP monitor thread starts on port 10003
> Alarm Time set to 3
> 15:48 JVP#3: Trace: JVP.Semaphore: statelessV() ends IdleThreadImpl Sem
> 1
> 15:48 JVP#3: Trace: JVP.Semaphore: P() ends IdleThreadImpl Sem 0
> 15:48 JVP#3: Trace: JVP.DBA.Context: processing open context request
> 15:48 JVP#3: Trace: JVP.DBA.Context: module name:
> informix.jvp.dbapplet.impl.JarHandler
> 15:48 JVP#3: Trace: JVP.JLM: load module
> informix.jvp.dbapplet.impl.JarHandler
> 15:48 JVP#3: Trace: JVP.JLM: open context for
> informix.jvp.dbapplet.impl.JarHandler#0 of thread group
> java.lang.ThreadGroup[name=informix.jvp.dbapplet.impl.JarHandler#0,maxpri=10]
> 15:48 JVP#3: Trace: JVP.DBA.Monitor: fillDBAMonitorImpl
> informix.jvp.dbapplet.impl.JarHandler#0: mtcb 274163168
> 15:48 JVP#3: Trace: JVP.Semaphore: New
> informix.jvp.dbapplet.impl.JarHandler#0
> informix.jvp.impl.SemaphoreImpl@21506fc
> 15:48 JVP#3: Trace: JVP.DBA.Thread: NEW DBAThreadImpl
> Thread[informix.jvp.dbapplet.impl.JarHandler#0,10,informix.jvp.dbapplet.impl.JarHandler#0],state
> = INIT T#1 274437296
> 15:48 JVP#3: Trace: JVP.DBA.Context: tcb: 274163168
> 15:48 JVP#3: Trace: JVP.DBA.Thread: starting dbaThread
> 15:48 JVP#3: Trace: JVP.Semaphore: V() ends
> informix.jvp.dbapplet.impl.JarHandler#0 1
> 15:48 JVP#3: Trace: JVP.DBA.Context: done monitor:
> informix.jvp.dbapplet.impl.DBAMonitorImpl@21506d8
> informix.jvp.dbapplet.impl.JarHandler#0
> 15:48 JVP#3: Trace: JV