You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Randy Prager (JIRA)" <ji...@apache.org> on 2008/11/06 15:35:52 UTC

[jira] Created: (FTPSERVER-214) DbUserManager seems to improperly cache a database connection

DbUserManager seems to improperly cache a database connection
-------------------------------------------------------------

                 Key: FTPSERVER-214
                 URL: https://issues.apache.org/jira/browse/FTPSERVER-214
             Project: FtpServer
          Issue Type: Bug
          Components: Core
    Affects Versions: 1.0-M3
         Environment: Java6 SLES, Windows


            Reporter: Randy Prager


We have configured the FTP server with a org.apache.commons.dbcp.BasicDataSource datasource and MySQL (com.mysql.jdbc.Driver) driver.

It appears that either the commons datasource idles/closes the connection, or MySQL does, however the DbUserManager keeps a reference to the connection (see cachedConnection).

Should we let the datasource do that -- and remove any sort of cached connection.

java.io.EOFException
      at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
      at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
      at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
      at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
      at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
      at com.mysql.jdbc.Connection.execSQL(Connection.java:3118)
      at com.mysql.jdbc.Connection.execSQL(Connection.java:3047)
      at com.mysql.jdbc.Statement.executeQuery(Statement.java:1166)
      at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
      at org.apache.ftpserver.usermanager.DbUserManager.getUserByName(DbUserManager.java:519)
      at org.apache.ftpserver.command.USER.execute(USER.java:139)
      at org.apache.ftpserver.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:138)
      at org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:60)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:752)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
      at org.apache.ftpserver.filter.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:81)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
      at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:60)
      at org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:137)
      at org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:70)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
      at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:379)
      at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:173)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
      at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
      at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:60)
      at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64)
      at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:551)
      at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:543)
      at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:487)
      at java.lang.Thread.run(Thread.java:619)

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


[jira] Commented: (FTPSERVER-214) DbUserManager seems to improperly cache a database connection

Posted by "Niklas Gustavsson (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/FTPSERVER-214?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12645496#action_12645496 ] 

Niklas Gustavsson commented on FTPSERVER-214:
---------------------------------------------

Could you please try this with trunk? I think this is already fixed since M3.

> DbUserManager seems to improperly cache a database connection
> -------------------------------------------------------------
>
>                 Key: FTPSERVER-214
>                 URL: https://issues.apache.org/jira/browse/FTPSERVER-214
>             Project: FtpServer
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0-M3
>         Environment: Java6 SLES, Windows
>            Reporter: Randy Prager
>
> We have configured the FTP server with a org.apache.commons.dbcp.BasicDataSource datasource and MySQL (com.mysql.jdbc.Driver) driver.
> It appears that either the commons datasource idles/closes the connection, or MySQL does, however the DbUserManager keeps a reference to the connection (see cachedConnection).
> Should we let the datasource do that -- and remove any sort of cached connection.
> java.io.EOFException
>       at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
>       at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
>       at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
>       at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
>       at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
>       at com.mysql.jdbc.Connection.execSQL(Connection.java:3118)
>       at com.mysql.jdbc.Connection.execSQL(Connection.java:3047)
>       at com.mysql.jdbc.Statement.executeQuery(Statement.java:1166)
>       at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
>       at org.apache.ftpserver.usermanager.DbUserManager.getUserByName(DbUserManager.java:519)
>       at org.apache.ftpserver.command.USER.execute(USER.java:139)
>       at org.apache.ftpserver.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:138)
>       at org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:60)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:752)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
>       at org.apache.ftpserver.filter.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:81)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
>       at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:60)
>       at org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:137)
>       at org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:70)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
>       at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:379)
>       at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:173)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
>       at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:60)
>       at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64)
>       at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:551)
>       at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:543)
>       at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:487)
>       at java.lang.Thread.run(Thread.java:619)

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


[jira] Closed: (FTPSERVER-214) DbUserManager seems to improperly cache a database connection

Posted by "Niklas Gustavsson (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/FTPSERVER-214?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Niklas Gustavsson closed FTPSERVER-214.
---------------------------------------

       Resolution: Invalid
    Fix Version/s: 1.0.0-M3
         Assignee: Niklas Gustavsson

Already fixed.

> DbUserManager seems to improperly cache a database connection
> -------------------------------------------------------------
>
>                 Key: FTPSERVER-214
>                 URL: https://issues.apache.org/jira/browse/FTPSERVER-214
>             Project: FtpServer
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0.0-M3
>         Environment: Java6 SLES, Windows
>            Reporter: Randy Prager
>            Assignee: Niklas Gustavsson
>             Fix For: 1.0.0-M3
>
>
> We have configured the FTP server with a org.apache.commons.dbcp.BasicDataSource datasource and MySQL (com.mysql.jdbc.Driver) driver.
> It appears that either the commons datasource idles/closes the connection, or MySQL does, however the DbUserManager keeps a reference to the connection (see cachedConnection).
> Should we let the datasource do that -- and remove any sort of cached connection.
> java.io.EOFException
>       at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)
>       at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:2304)
>       at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2803)
>       at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1573)
>       at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1665)
>       at com.mysql.jdbc.Connection.execSQL(Connection.java:3118)
>       at com.mysql.jdbc.Connection.execSQL(Connection.java:3047)
>       at com.mysql.jdbc.Statement.executeQuery(Statement.java:1166)
>       at org.apache.commons.dbcp.DelegatingStatement.executeQuery(DelegatingStatement.java:208)
>       at org.apache.ftpserver.usermanager.DbUserManager.getUserByName(DbUserManager.java:519)
>       at org.apache.ftpserver.command.USER.execute(USER.java:139)
>       at org.apache.ftpserver.DefaultFtpHandler.messageReceived(DefaultFtpHandler.java:138)
>       at org.apache.ftpserver.listener.nio.FtpHandlerAdapter.messageReceived(FtpHandlerAdapter.java:60)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain$TailFilter.messageReceived(DefaultIoFilterChain.java:752)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
>       at org.apache.ftpserver.filter.FtpLoggingFilter.messageReceived(FtpLoggingFilter.java:81)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
>       at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:60)
>       at org.apache.mina.filter.logging.MdcInjectionFilter.filter(MdcInjectionFilter.java:137)
>       at org.apache.mina.filter.util.CommonEventFilter.messageReceived(CommonEventFilter.java:70)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
>       at org.apache.mina.filter.codec.ProtocolCodecFilter$ProtocolDecoderOutputImpl.flush(ProtocolCodecFilter.java:379)
>       at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:173)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.callNextMessageReceived(DefaultIoFilterChain.java:414)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain.access$1200(DefaultIoFilterChain.java:49)
>       at org.apache.mina.core.filterchain.DefaultIoFilterChain$EntryImpl$1.messageReceived(DefaultIoFilterChain.java:832)
>       at org.apache.mina.core.filterchain.IoFilterEvent.fire(IoFilterEvent.java:60)
>       at org.apache.mina.core.session.IoEvent.run(IoEvent.java:64)
>       at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTask(OrderedThreadPoolExecutor.java:551)
>       at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.runTasks(OrderedThreadPoolExecutor.java:543)
>       at org.apache.mina.filter.executor.OrderedThreadPoolExecutor$Worker.run(OrderedThreadPoolExecutor.java:487)
>       at java.lang.Thread.run(Thread.java:619)

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