db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <j...@apache.org>
Subject [jira] Commented: (DERBY-4310) jdbcapi.XATest passes but shows Table/View 'APP.FOO' does not exist. under logs/serverConsoleOutput.log
Date Sat, 25 Jul 2009 18:06:14 GMT

    [ https://issues.apache.org/jira/browse/DERBY-4310?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12735304#action_12735304
] 

Kathey Marsden commented on DERBY-4310:
---------------------------------------

I agree that probably the copyFiles problem is related to your client. Check to see if the
file is in your source tree. Even if it is do svn update -force on that one file.  Check to
see it is in classes and lastly check the derbyTesting.jar with jar tvf.

The actual implementation of isClosed() is in BrokeredStatement40.java. This is because it
is a new method with JDBC 4.0. With JDK 1.5 and lower (JDBC 3.0) you will see the not implemented
exception, but for 1.6 it is implemented.

isValid() is actually not a Statement method but rather a method on  Connection.  I think
there are other methods besides isClosed() that in a regular connection won't check if the
dependencies if the table is dropped.  A couple I tried were getFetchSize() and setFetchSize().
If we fix this for isClosed() I think we should fix it for the other calls that are impacted
as well.  

Doing so would require some more significant code reorganization where we first write tests
to determine which calls check dependencies and then decide on a strategy to make sure the
various calls get the possibly reprepared statement or the original one as appropriate.  

Also we will need to check that the state gets transferred properly if calls like setFetchSize()
are made on the original statement.  The more I think about it, I think this is a bigger project
than you have time for in the next couple of weeks, so probably best to just get this issue
wrapped up for close() and file a new bug  for the other calls.




> jdbcapi.XATest passes but shows Table/View 'APP.FOO' does not exist. under logs/serverConsoleOutput.log
> -------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-4310
>                 URL: https://issues.apache.org/jira/browse/DERBY-4310
>             Project: Derby
>          Issue Type: Bug
>    Affects Versions: 10.6.0.0
>            Reporter: Tiago R. Espinha
>            Assignee: Tiago R. Espinha
>         Attachments: console.out.txt, DERBY-4310.diff, derby.log.tar.gz, outall.txt,
ReproDerby4310.java, ReproDerby4310.java, ReproDerby4310.java, ReproEmbeddedDerby4310.java,
Tests.zip, utilXid.java, XATestLog.tar.gz
>
>
> The XATest is showing the following on the log:
> 2009-07-16 00:15:42.838 GMT : Apache Derby Network Server - 10.6.0.0 alpha - (794457M)
started and ready to accept connections on port 9920
> 2009-07-16 00:15:44.394 GMT : Unexpected exception:
>  Table/View 'APP.FOO' does not exist.
> Here is the full stack trace  from derby.log.  The error comes closing a prepared statement
on a brokered connection if the table referenced by the statement has been dropped.  This
looks like an embedded bug causing network server shutdown to fail.  Also if this test is
enabled in a suite DERBY-4155, the next time network server is started the tests will hang
with java.net.BindException: Address already in use: NET_Bind in the derby.log
> 2009-07-16 17:05:45.062 GMT Thread[derby.NetworkServerStarter,5,derby.daemons] (XID =
497), (SESSIONID = 53), (DATABASE = wombat), (DRDAID = {7}), Failed Statement is: SELECT *
FROM APP.FOO
> ERROR 42X05: Table/View 'APP.FOO' does not exist.
> 	at org.apache.derby.iapi.error.StandardException.newException(StandardException.java:286)
> 	at org.apache.derby.impl.sql.compile.FromBaseTable.bindTableDescriptor(FromBaseTable.java:2463)
> 	at org.apache.derby.impl.sql.compile.FromBaseTable.bindNonVTITables(FromBaseTable.java:2183)
> 	at org.apache.derby.impl.sql.compile.FromList.bindTables(FromList.java:310)
> 	at org.apache.derby.impl.sql.compile.SelectNode.bindNonVTITables(SelectNode.java:390)
> 	at org.apache.derby.impl.sql.compile.DMLStatementNode.bindTables(DMLStatementNode.java:199)
> 	at org.apache.derby.impl.sql.compile.DMLStatementNode.bind(DMLStatementNode.java:137)
> 	at org.apache.derby.impl.sql.compile.CursorNode.bindStatement(CursorNode.java:245)
> 	at org.apache.derby.impl.sql.GenericStatement.prepMinion(GenericStatement.java:316)
> 	at org.apache.derby.impl.sql.GenericStatement.prepare(GenericStatement.java:88)
> 	at org.apache.derby.impl.sql.conn.GenericLanguageConnectionContext.prepareInternalStatement(GenericLanguageConnectionContext.java:822)
> 	at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(EmbedPreparedStatement.java:129)
> 	at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Driver40.java:105)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:1542)
> 	at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(EmbedConnection.java:1423)
> 	at org.apache.derby.iapi.jdbc.BrokeredPreparedStatement30.createDuplicateStatement(BrokeredPreparedStatement30.java:56)
> 	at org.apache.derby.jdbc.XAStatementControl.getRealPreparedStatement(XAStatementControl.java:143)
> 	at org.apache.derby.iapi.jdbc.BrokeredPreparedStatement.getPreparedStatement(BrokeredPreparedStatement.java:526)
> 	at org.apache.derby.iapi.jdbc.BrokeredPreparedStatement.getStatement(BrokeredPreparedStatement.java:533)
> 	at org.apache.derby.iapi.jdbc.BrokeredStatement.close(BrokeredStatement.java:130)
> 	at org.apache.derby.impl.drda.DRDAStatement.close(DRDAStatement.java:1027)
> 	at org.apache.derby.impl.drda.Database.close(Database.java:352)
> 	at org.apache.derby.impl.drda.Session.close(Session.java:115)
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(NetworkServerControlImpl.java:833)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> 	at java.lang.reflect.Method.invoke(Method.java:599)
> 	at org.apache.derby.iapi.jdbc.DRDAServerStarter.run(DRDAServerStarter.java:236)
> 	at java.lang.Thread.run(Thread.java:735)
> Cleanup action completed
> 2009-07-16 17:05:45.078 GMT : Unexpected exception:
>  Table/View 'APP.FOO' does not exist.
> An exception was thrown during network server startup. DRDA_UnexpectedException.S:Unexpected
exception:
>  Table/View 'APP.FOO' does not exist.
> java.lang.reflect.InvocationTargetException
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
> 	at java.lang.reflect.Method.invoke(Method.java:599)
> 	at org.apache.derby.iapi.jdbc.DRDAServerStarter.run(DRDAServerStarter.java:236)
> 	at java.lang.Thread.run(Thread.java:735)
> Caused by: java.lang.Exception: DRDA_UnexpectedException.S:Unexpected exception:
>  Table/View 'APP.FOO' does not exist.
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessageWork(NetworkServerControlImpl.java:3216)
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.consolePropertyMessage(NetworkServerControlImpl.java:1885)
> 	at org.apache.derby.impl.drda.NetworkServerControlImpl.blockingStart(NetworkServerControlImpl.java:835)
> 	... 6 more

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message