Thread: [Sqlrelay-discussion] sqlrelay on solaris - "std::bad_alloc"
Brought to you by:
mused
|
From: Chris <dm...@gm...> - 2008-11-13 23:23:03
|
Hi all, I'm now trying to get sqlrelay working on solaris. Everything compiles/builds fine. When I try to start it up though I get this: # ./sqlr-start -id oracle Starting listener: sqlr-listener -id oracle -config /usr/local/sqlrelay/etc/sqlrelay.conf Starting 3 connections to db : sqlr-connection-oracle8 -id oracle -connectionid db -config /usr/local/sqlrelay/etc/sqlrelay.conf terminate called after throwing an instance of 'std::bad_alloc' what(): St9bad_alloc (with it repeated another 2 times). I have no idea what that means :) Rudiments is in /usr/local/rudiments (which is not in my path or library path). Running solaris 10. Compiled with gcc. As far as I can tell, it does connect to oracle on the 2nd server ok (I can see stuff in the oracle listener.log). Not sure what other info to include :) Thanks! -- Postgresql & php tutorials http://www.designmagick.com/ |
|
From: David M. <dav...@fi...> - 2008-11-14 16:19:52
|
Weird. I think that error usually means that a C++ "new" operator
failed. I think it usually happens if you compile against 1 version of
a library but then run against a different, incompatible version.
Did you have an older version of SQL Relay or Rudiments installed when
you built the one you're trying to use now? If so, you might try
removing them, rebuilding, reinstalling and retrying.
David Muse
dav...@fi...
On Fri, 2008-11-14 at 10:22 +1100, Chris wrote:
> Hi all,
>
> I'm now trying to get sqlrelay working on solaris. Everything
> compiles/builds fine. When I try to start it up though I get this:
>
> # ./sqlr-start -id oracle
>
> Starting listener:
> sqlr-listener -id oracle -config /usr/local/sqlrelay/etc/sqlrelay.conf
>
> Starting 3 connections to db :
> sqlr-connection-oracle8 -id oracle -connectionid db -config
> /usr/local/sqlrelay/etc/sqlrelay.conf
> terminate called after throwing an instance of 'std::bad_alloc'
> what(): St9bad_alloc
>
> (with it repeated another 2 times).
>
>
> I have no idea what that means :)
>
> Rudiments is in /usr/local/rudiments (which is not in my path or library
> path).
>
> Running solaris 10. Compiled with gcc.
>
> As far as I can tell, it does connect to oracle on the 2nd server ok (I
> can see stuff in the oracle listener.log).
>
> Not sure what other info to include :)
>
> Thanks!
__________________________________________________
D O T E A S Y - "Join the web hosting revolution!"
http://www.doteasy.com
|
|
From: Chris <dm...@gm...> - 2008-11-16 22:20:04
|
David Muse wrote: > Weird. I think that error usually means that a C++ "new" operator > failed. I think it usually happens if you compile against 1 version of > a library but then run against a different, incompatible version. Could it be a mix of tools causing it? gcc for compiling, gnu make, but the solaris ld tool. > Did you have an older version of SQL Relay or Rudiments installed when > you built the one you're trying to use now? If so, you might try > removing them, rebuilding, reinstalling and retrying. Nope, first time install. > On Fri, 2008-11-14 at 10:22 +1100, Chris wrote: >> Hi all, >> >> I'm now trying to get sqlrelay working on solaris. Everything >> compiles/builds fine. When I try to start it up though I get this: >> >> # ./sqlr-start -id oracle >> >> Starting listener: >> sqlr-listener -id oracle -config /usr/local/sqlrelay/etc/sqlrelay.conf >> >> Starting 3 connections to db : >> sqlr-connection-oracle8 -id oracle -connectionid db -config >> /usr/local/sqlrelay/etc/sqlrelay.conf >> terminate called after throwing an instance of 'std::bad_alloc' >> what(): St9bad_alloc >> >> (with it repeated another 2 times). >> >> >> I have no idea what that means :) >> >> Rudiments is in /usr/local/rudiments (which is not in my path or library >> path). >> >> Running solaris 10. Compiled with gcc. >> >> As far as I can tell, it does connect to oracle on the 2nd server ok (I >> can see stuff in the oracle listener.log). >> >> Not sure what other info to include :) >> >> Thanks! -- Postgresql & php tutorials http://www.designmagick.com/ |
|
From: David M. <dav...@fi...> - 2009-04-29 14:09:37
|
Hi Renat, I never figured out an exact cause for this. I've seen it before in my life, but I can't remember where. I know that it occurs if you're out of memory, or if there's an odd mismatch of libraries, usually if code is compiled against libstdc++ version X but then at runtime gets linked against libstdc++ version X-1. I'd look through the gcc toolchain on your solaris machine and see what libstdc++ it came with. You may find that there's a different version of libstdc++ in /usr/lib, /lib, /usr/local/lib, etc. In that case, the code would be getting compiled against the one up inside of the toolchain, but linked against a different one. I think I've also seen it where more than 1 version of SQL Relay or Rudiments is installed and the code gets compiled against 1 version but then linked against another at runtime. Check to see if you have more than 1 version of either of those on the system as well. Dave dav...@fi... On Fri, 2009-04-24 at 17:22 +0400, Renat Sabitov wrote: > Chris пишет: > > David Muse wrote: > >> Weird. I think that error usually means that a C++ "new" operator > >> failed. I think it usually happens if you compile against 1 version of > >> a library but then run against a different, incompatible version. > > > > Could it be a mix of tools causing it? gcc for compiling, gnu make, but > > the solaris ld tool. > > Have you solved this problem? We've got this error on solaris but > haven't fix it yet. > > -- > Renat Sabitov e-mail: sr...@st... > Stack Soft jid: sr...@ja... > > ------------------------------------------------------------------------------ > Crystal Reports - New Free Runtime and 30 Day Trial > Check out the new simplified licensign option that enables unlimited > royalty-free distribution of the report engine for externally facing > server and web deployment. > http://p.sf.net/sfu/businessobjects > _______________________________________________ > Sqlrelay-discussion mailing list > Sql...@li... > https://lists.sourceforge.net/lists/listinfo/sqlrelay-discussion > & )n,)bxmך'( __________________________________________________ D O T E A S Y - "Join the web hosting revolution!" http://www.doteasy.com |
|
From: Renat S. <sr...@st...> - 2009-04-30 14:09:26
|
David Muse пишет: > life, but I can't remember where. I know that it occurs if you're out > of memory, Hello! By default memory on Sun Solaris for one user is limited to 1/4 of phisycal memory (http://docs.sun.com/app/docs/doc/817-0404/chapter1-33?a=view project.max-shm-memory). Sqlrelay allocates a lot of memory in cursor constructor. For example if you set cursors=10 then it'll allocate 10*10*256*32k = 800M. For N-th connection you get "std::bad_alloc". You have 2 ways to solve a problem - decrease the amount of allocated memory (see http://sqlrelay.sourceforge.net/sqlrelay/tuning.html#memoryusage ) or tune some OS parameter. I'm not a solaris guru so just for example this is tuning for oracle: prctl -n project.max-shm-memory -v 4gb -r -i project oracle projmod -s -K "project.max-shm-memory=(priv,4gb,deny)" oracle -- Renat Sabitov e-mail: sr...@st... Stack Soft jid: sr...@ja... |
|
From: Renat S. <sr...@st...> - 2009-04-24 13:22:53
|
Chris пишет: > David Muse wrote: >> Weird. I think that error usually means that a C++ "new" operator >> failed. I think it usually happens if you compile against 1 version of >> a library but then run against a different, incompatible version. > > Could it be a mix of tools causing it? gcc for compiling, gnu make, but > the solaris ld tool. Have you solved this problem? We've got this error on solaris but haven't fix it yet. -- Renat Sabitov e-mail: sr...@st... Stack Soft jid: sr...@ja... |