I just noticed that the MySql Client library version that the server reports
is 5.1.11

Thanks again,

On Mon, Jan 18, 2010 at 9:22 PM, Attila <attee...@gmail.com> wrote:

> Hi Everyone,
>
> I have an application that uses a custom made DBConnectionPool.
> The architecture is basically as follows:
>
> All of the components (DBConnectionPool and DBWorker) run in their own
> strands (all work is queued, so no explicit locking is required), that
> is...  all work is run via threadpool threads.
>
> DBConnectionPool passes out connections.
> DBWorker's accept work (in the form of adding DBWork to it's list to
> process when a connection is received)
>   --> These DBWorkers will request a connection from the pool, the pool
> then queues a connection for usage back to the DBWorker (when a connection
> becomes available)
>
> That all being said, I am using the thread aware libraries of mysql and
> mysqlpp.
>
> Here are a couple of stack traces I get on application shutdown from a
> memory leak detector (using VLD 1.0 on VS 9.0):
>
> Connect related:
>
>   Call Stack:
>     f:\dd\vctools\crt_bld\self_x86\crt\src\dbgmalloc.c (56): malloc
>
> g:\mysql-5.1.30-winbuild\mysql-community-debug-5.1.30-build\mysys\my_once.c
> (61): my_once_alloc
>
> g:\mysql-5.1.30-winbuild\mysql-community-debug-5.1.30-build\mysys\charset.c
> (62): init_state_maps
>
> g:\mysql-5.1.30-winbuild\mysql-community-debug-5.1.30-build\mysys\charset.c
> (435): init_available_charsets
>
> g:\mysql-5.1.30-winbuild\mysql-community-debug-5.1.30-build\mysys\charset.c
> (577): get_charset_by_csname
>
> g:\mysql-5.1.30-winbuild\mysql-community-debug-5.1.30-build\sql-common\client.c
> (1780): mysql_init_character_set
>
> g:\mysql-5.1.30-winbuild\mysql-community-debug-5.1.30-build\sql-common\client.c
> (2177): mysql_real_connect
>     c:\p4\dev\aa1\libs\extlibs\mysql++-3.0.8\lib\dbdriver.cpp (89):
> mysqlpp::DBDriver::connect
>     c:\p4\dev\aa1\libs\extlibs\mysql++-3.0.8\lib\connection.cpp (98):
> mysqlpp::Connection::connect
>     c:\p4\dev\aa1\libs\toolsdatabase\mysqlppconnection.cpp (52):
> db::MySQLppConnection::MySQLppConnection
>     c:\p4\dev\aa1\rstsrc\libs\toolsdatabase\mysqlppconnectionfactory.cpp
> (41): db::MySQLppConnectionFactory::CreateDBConnection
>     (...omitted)
>
> I also get a store-related memory leak:
>
>  Call Stack:
>     f:\dd\vctools\crt_bld\self_x86\crt\src\dbgmalloc.c (56): malloc
>     g:\mysql-5.1.30-winbuild\mysql-community-debug-5.1.30-build\dbug\dbug.c
> (2022): DbugMalloc
>     g:\mysql-5.1.30-winbuild\mysql-community-debug-5.1.30-build\dbug\dbug.c
> (345): code_state
>     g:\mysql-5.1.30-winbuild\mysql-community-debug-5.1.30-build\dbug\dbug.c
> (967): _db_enter_
>
> g:\mysql-5.1.30-winbuild\mysql-community-debug-5.1.30-build\sql-common\client.c
> (2837): mysql_real_query
>     c:\p4\dev\aa1\libs\extlibs\mysql++-3.0.8\lib\dbdriver.h (199):
> mysqlpp::DBDriver::execute
>     c:\p4\dev\aa1\libs\extlibs\mysql++-3.0.8\lib\query.cpp (481):
> mysqlpp::Query::store
>     c:\p4\dev\aa1\libs\extlibs\mysql++-3.0.8\lib\query.cpp (472):
> mysqlpp::Query::store
>     c:\p4\dev\aa1\libs\extlibs\mysql++-3.0.8\include\query.h (467):
> mysqlpp::Query::store
>     c:\p4\dev\aa1\libs\toolsdatabase\mysqlppconnection.cpp (212):
> db::MySQLppConnection::SelectExec
>     (...omitted)
>
>
> I know that I am cleaning up my wrapper objects correctly.
> MySQLppConnection has an auto_ptr to mysqlpp::Connection and I know the
> destructors are being called.
>
> Versions I am using:
>
> mysqlpp:  3.0.8
> mysql:  5.1.30
> Running mysql server instance: 5.1.41
>
>
> Questions:
>
> Is my combination of versions incorrect?
> Should I be using the mysql-c libraries for the same version as the running
> server instance?
> If I am passing a mysqlpp::Connection object around to different objects
> (in different threads) -- could it cause a memory leak or other problems? (I
> can guarantee that only 1 thread is using a connection at any given point)
>
>
> Thanks for your help,
>
> --
> Attila
> Software Developer
> attee...@gmail.com
>



-- 
Attila
Software Developer
attee...@gmail.com

Reply via email to