dbTalk Databases Forums  

using the 'use' query.

mailing.database.mysql-plusplus mailing.database.mysql-plusplus


Discuss using the 'use' query. in the mailing.database.mysql-plusplus forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
gary clark
 
Posts: n/a

Default using the 'use' query. - 12-29-2006 , 05:00 PM







Hello,

Running mysqlpp 2.1.1 on Windows XP and 5.0 mysql.

Been trying tracking down what appears to be a leak. A
wee bit bizarre.

I have a column in a mysql database called messageData
is a VARCHAR(4096).

I have the following code extract:

mysqlpp::Query query = _con.query();
mysqlpp::ResUse res = query.use();

mysqlpp::Row row;
try {

if (res)
{
while(row=res,fetch_row())
{
}
}
}
catch (exception & er)
{
cout << "Failed Dude! " << endl;
return 0;
}

Seems straightforward. It always ends up going to
"Failed Dude".
It then pops a leak. I commented out the above code
and it no longer leaks.

Can somebody be so kind to enlighten me on what I
assume to be misuse of the above so I can avoid the
leak.

Thanks,
Garyc



--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe: http://lists.mysql.com/plusplus?unsu...ie.nctu.edu.tw


Reply With Quote
  #2  
Old   
gary clark
 
Posts: n/a

Default Re: using the 'use' query. - 12-29-2006 , 06:20 PM







--- gary clark <burslem2001 (AT) yahoo (DOT) com> wrote:

Quote:
Thanks Alex for the quick response. I see end of
"end
of results" message being dumped out. I can that it
cycle through all the possible rows and collect the
data. But catching "end of results"? and the leak?

Any ideas.

Thanks,
Garyc


--- Alex Burton <alexibu (AT) mac (DOT) com> wrote:

substitute
cout << er.what() << endl;
for
cout << "Failed Dude! " << endl;
and you might know what the exception was

On 30/12/2006, at 9:58 AM, gary clark wrote:


Hello,

Running mysqlpp 2.1.1 on Windows XP and 5.0
mysql.

Been trying tracking down what appears to be a
leak. A
wee bit bizarre.

I have a column in a mysql database called
messageData
is a VARCHAR(4096).

I have the following code extract:

mysqlpp::Query query = _con.query();
mysqlpp::ResUse res = query.use();

mysqlpp::Row row;
try {

if (res)
{
while(row=res,fetch_row())
{
}
}
}
catch (exception & er)
{
cout << "Failed Dude! " << endl;
return 0;
}

Seems straightforward. It always ends up going
to
"Failed Dude".
It then pops a leak. I commented out the above
code
and it no longer leaks.

Can somebody be so kind to enlighten me on what
I
assume to be misuse of the above so I can avoid
the
leak.

Thanks,
Garyc



--
MySQL++ Mailing List
For list archives:
http://lists.mysql.com/plusplus
To unsubscribe:
http://lists.mysql.com/plusplus?
unsub=alexibu (AT) mac (DOT) com






--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe: http://lists.mysql.com/plusplus?unsu...ie.nctu.edu.tw



Reply With Quote
  #3  
Old   
gary clark
 
Posts: n/a

Default Re: using the 'use' query. - 12-31-2006 , 09:08 AM




Hello,

I still believe there is a small leak. I see 8K
increments not everytime
the below code is called. It sounds like a race
condition in mysqlpp.
Has anyone attempted to 'purify' this code to validate
whether the methods leak? When the 'use' statement is
not used and I dont cycle through the table rows which
results in an eventual exception 'end of results' then
there is no leak.

I'm going to try to get a version of purify next week
and run this
code through it.

Thanks,
Garyc
--- gary clark <burslem2001 (AT) yahoo (DOT) com> wrote:

Quote:
--- gary clark <burslem2001 (AT) yahoo (DOT) com> wrote:


Thanks Alex for the quick response. I see end of
"end
of results" message being dumped out. I can that
it
cycle through all the possible rows and collect
the
data. But catching "end of results"? and the leak?

Any ideas.

Thanks,
Garyc


--- Alex Burton <alexibu (AT) mac (DOT) com> wrote:

substitute
cout << er.what() << endl;
for
cout << "Failed Dude! " << endl;
and you might know what the exception was

On 30/12/2006, at 9:58 AM, gary clark wrote:


Hello,

Running mysqlpp 2.1.1 on Windows XP and 5.0
mysql.

Been trying tracking down what appears to be a
leak. A
wee bit bizarre.

I have a column in a mysql database called
messageData
is a VARCHAR(4096).

I have the following code extract:

mysqlpp::Query query = _con.query();
mysqlpp::ResUse res = query.use();

mysqlpp::Row row;
try {

if (res)
{
while(row=res,fetch_row())
{
}
}
}
catch (exception & er)
{
cout << "Failed Dude! " << endl;
return 0;
}

Seems straightforward. It always ends up going
to
"Failed Dude".
It then pops a leak. I commented out the above
code
and it no longer leaks.

Can somebody be so kind to enlighten me on
what
I
assume to be misuse of the above so I can
avoid
the
leak.

Thanks,
Garyc



--
MySQL++ Mailing List
For list archives:
http://lists.mysql.com/plusplus
To unsubscribe:
http://lists.mysql.com/plusplus?
unsub=alexibu (AT) mac (DOT) com








--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe: http://lists.mysql.com/plusplus?unsu...ie.nctu.edu.tw



Reply With Quote
  #4  
Old   
gary clark
 
Posts: n/a

Default Re: using the 'use' query. - 01-02-2007 , 03:59 PM



Hello,

Not sure what is going on but I think I have found the
memory leak when running on windows using the purify
tool from IBM.

I see Memory leak when calling the below code.
new(UINT)
[f:\rtm\vctools\crt_bld\self_x86\crt\src\xiosbase.5 14]

std::ios_base::Init(void)[f:\rtm\vctools\crt_bld\self_x86\crt\src\xiobase

std::basic_ios<char,char_traits<char>::std>::init( basic_streambuf(char,char_traits<char>::std>::std
*,bool)


Ok this is why the leak occurred. I was using the
below statement.

mysqlpp::Query query = con.query();

The query is being created every time which inturn
creates an ostream which results in a leak. The query
object I now pass as a reference and then reset the
blighter which avoids the leak since only instantiated
once.

Thanks,
Garyc




--- gary clark <burslem2001 (AT) yahoo (DOT) com> wrote:

Quote:
Hello,

5> I still believe there is a small leak. I see 8K
increments not everytime
the below code is called. It sounds like a race
condition in mysqlpp.
Has anyone attempted to 'purify' this code to
validate
whether the methods leak? When the 'use' statement
is
not used and I dont cycle through the table rows
which
results in an eventual exception 'end of results'
then
there is no leak.

I'm going to try to get a version of purify next
week
and run this
code through it.

Thanks,
Garyc
--- gary clark <burslem2001 (AT) yahoo (DOT) com> wrote:


--- gary clark <burslem2001 (AT) yahoo (DOT) com> wrote:


Thanks Alex for the quick response. I see end of
"end
of results" message being dumped out. I can that
it
cycle through all the possible rows and collect
the
data. But catching "end of results"? and the
leak?

Any ideas.

Thanks,
Garyc


--- Alex Burton <alexibu (AT) mac (DOT) com> wrote:

substitute
cout << er.what() << endl;
for
cout << "Failed Dude! " << endl;
and you might know what the exception was

On 30/12/2006, at 9:58 AM, gary clark wrote:


Hello,

Running mysqlpp 2.1.1 on Windows XP and 5.0
mysql.

Been trying tracking down what appears to be
a
leak. A
wee bit bizarre.

I have a column in a mysql database called
messageData
is a VARCHAR(4096).

I have the following code extract:

mysqlpp::Query query = _con.query();
mysqlpp::ResUse res = query.use();

mysqlpp::Row row;
try {

if (res)
{
while(row=res,fetch_row())
{
}
}
}
catch (exception & er)
{
cout << "Failed Dude! " << endl;
return 0;
}

Seems straightforward. It always ends up
going
to
"Failed Dude".
It then pops a leak. I commented out the
above
code
and it no longer leaks.

Can somebody be so kind to enlighten me on
what
I
assume to be misuse of the above so I can
avoid
the
leak.

Thanks,
Garyc



--
MySQL++ Mailing List
For list archives:
http://lists.mysql.com/plusplus
To unsubscribe:
http://lists.mysql.com/plusplus?
unsub=alexibu (AT) mac (DOT) com









--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe:

http://lists.mysql.com/plusplus?unsu...ahoo (DOT) com



--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe: http://lists.mysql.com/plusplus?unsu...ie.nctu.edu.tw



Reply With Quote
  #5  
Old   
Matt Dargavel
 
Posts: n/a

Default Re: using the 'use' query. - 01-02-2007 , 07:25 PM




Hi Gary,

This sounds like the leak Alex and myself looked at a while ago
(see thread at http://lists.mysql.com/plusplus/5767 ). Warren
implemented a patch for it (see thread at
http://lists.mysql.com/plusplus/6012 ). I'm not sure it's been released
yet, but it's available from svn.

Regards,

Matt.


gary clark wrote:
Quote:
Hello,

Not sure what is going on but I think I have found the
memory leak when running on windows using the purify
tool from IBM.

I see Memory leak when calling the below code.
new(UINT)
[f:\rtm\vctools\crt_bld\self_x86\crt\src\xiosbase.5 14]

std::ios_base::Init(void)[f:\rtm\vctools\crt_bld\self_x86\crt\src\xiobase

std::basic_ios<char,char_traits<char>::std>::init( basic_streambuf(char,char_traits<char>::std>::std
*,bool)


Ok this is why the leak occurred. I was using the
below statement.

mysqlpp::Query query = con.query();

The query is being created every time which inturn
creates an ostream which results in a leak. The query
object I now pass as a reference and then reset the
blighter which avoids the leak since only instantiated
once.

Thanks,
Garyc



--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe: http://lists.mysql.com/plusplus?unsu...ie.nctu.edu.tw



Reply With Quote
  #6  
Old   
gary clark
 
Posts: n/a

Default Re: using the 'use' query. - 01-02-2007 , 11:19 PM




Hi Gents,

I will give it a crack and have a wee' browse at it. I
have tried all sorts of hacks so far without going
into mysqlpp all to no avail.

Thanks,
Garyc
--- Matt Dargavel <matt (AT) shout-telecoms (DOT) com> wrote:

Quote:
Hi Gary,

This sounds like the leak Alex and myself
looked at a while ago
(see thread at http://lists.mysql.com/plusplus/5767
). Warren
implemented a patch for it (see thread at
http://lists.mysql.com/plusplus/6012 ). I'm not
sure it's been released
yet, but it's available from svn.

Regards,

Matt.


gary clark wrote:
Hello,

Not sure what is going on but I think I have found
the
memory leak when running on windows using the
purify
tool from IBM.

I see Memory leak when calling the below code.
new(UINT)


[f:\rtm\vctools\crt_bld\self_x86\crt\src\xiosbase.5 14]



std::ios_base::Init(void)[f:\rtm\vctools\crt_bld\self_x86\crt\src\xiobase



std::basic_ios<char,char_traits<char>::std>::init( basic_streambuf(char,char_traits<char>::std>::std
*,bool)


Ok this is why the leak occurred. I was using the
below statement.

mysqlpp::Query query = con.query();

The query is being created every time which inturn
creates an ostream which results in a leak. The
query
object I now pass as a reference and then reset
the
blighter which avoids the leak since only
instantiated
once.

Thanks,
Garyc




--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe:

http://lists.mysql.com/plusplus?unsu...ahoo (DOT) com



--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe: http://lists.mysql.com/plusplus?unsu...ie.nctu.edu.tw



Reply With Quote
  #7  
Old   
gary clark
 
Posts: n/a

Default Re: using the 'use' query. - 01-02-2007 , 11:24 PM




Yep I think this was the problem I was hitting. I will
push the patch in tommorrow and let the community know
how it goes.Much appreciated.

Thanks,
Garyc
--- Matt Dargavel <matt (AT) shout-telecoms (DOT) com> wrote:

Quote:
Hi Gary,

This sounds like the leak Alex and myself
looked at a while ago
(see thread at http://lists.mysql.com/plusplus/5767
). Warren
implemented a patch for it (see thread at
http://lists.mysql.com/plusplus/6012 ). I'm not
sure it's been released
yet, but it's available from svn.

Regards,

Matt.


gary clark wrote:
Hello,

Not sure what is going on but I think I have found
the
memory leak when running on windows using the
purify
tool from IBM.

I see Memory leak when calling the below code.
new(UINT)


[f:\rtm\vctools\crt_bld\self_x86\crt\src\xiosbase.5 14]



std::ios_base::Init(void)[f:\rtm\vctools\crt_bld\self_x86\crt\src\xiobase



std::basic_ios<char,char_traits<char>::std>::init( basic_streambuf(char,char_traits<char>::std>::std
*,bool)


Ok this is why the leak occurred. I was using the
below statement.

mysqlpp::Query query = con.query();

The query is being created every time which inturn
creates an ostream which results in a leak. The
query
object I now pass as a reference and then reset
the
blighter which avoids the leak since only
instantiated
once.

Thanks,
Garyc




--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe:

http://lists.mysql.com/plusplus?unsu...ahoo (DOT) com



--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe: http://lists.mysql.com/plusplus?unsu...ie.nctu.edu.tw



Reply With Quote
  #8  
Old   
Warren Young
 
Posts: n/a

Default Re: using the 'use' query. - 01-03-2007 , 10:39 AM



gary clark wrote:
Quote:
Ok what I see now is that when the applications stops
no leak occurs when using purify. However, the
application is still growing during runtime when each
query action is made.
Is this with v2.1.1, or with the svn version?

--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe: http://lists.mysql.com/plusplus?unsu...ie.nctu.edu.tw



Reply With Quote
  #9  
Old   
gary clark
 
Posts: n/a

Default Re: using the 'use' query. - 01-03-2007 , 10:58 AM



Hey Warren,

Its with the 2.1.1 version.

Thanks,
Garyc
--- Warren Young <mysqlpp (AT) etr-usa (DOT) com> wrote:

Quote:
gary clark wrote:

Ok what I see now is that when the applications
stops
no leak occurs when using purify. However, the
application is still growing during runtime when
each
query action is made.

Is this with v2.1.1, or with the svn version?

--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe:

http://lists.mysql.com/plusplus?unsu...ahoo (DOT) com



--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe: http://lists.mysql.com/plusplus?unsu...ie.nctu.edu.tw



Reply With Quote
  #10  
Old   
Warren Young
 
Posts: n/a

Default Re: using the 'use' query. - 01-04-2007 , 05:56 PM



gary clark wrote:
Quote:
Its with the 2.1.1 version.
Well, there ya go. The fix for this is only in the svn version, as
Matt's post above points out.

--
MySQL++ Mailing List
For list archives: http://lists.mysql.com/plusplus
To unsubscribe: http://lists.mysql.com/plusplus?unsu...ie.nctu.edu.tw



Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.