Here's a better description:  after stepping into the code line by
line.

Upon creation, with eq::getConfig() server has a refcount of 1
with my program it has a recount of 0.

And.. at this point in the code (where it hangs)

eq::Client::connectServer(ServerPtr server) {
...
if( connect( net::NodePtr( server.get( )) ))
...
}

de-references the ServerPtr, after it's use of server.get()

When created with eq::getConfig() server has at this point a refcount
of 3

When created with my program, server has at this point a refcount of
1, and since refcount hits 0 during de-ref it calls
deleteReferenced(this) on the line of code in ConnectServer above.

I'm not sure if I can increment RefCount on my own - just to test it?
I'm not very gc savvy.

-S!

ALso, when debugging and looking at server._ptr->getRefCount()  I get
stuff that looks like this when I run it from eqOsirix and not
eq::getConfig()

warning: can't find linker symbol for virtual table for `eq::Server'
value
warning:   found `DiColorPixelTemplate<unsigned
short>::createDIB(void*&, unsigned int, unsigned short, unsigned
short, unsigned int, int, int, int, int, int) const' instead
warning: can't find linker symbol for virtual table for `eq::Server'
value
warning:   found `DiColorPixelTemplate<unsigned
short>::createDIB(void*&, unsigned int, unsigned short, unsigned
short, unsigned int, int, int, int, int, int) const' instead
warning: can't find linker symbol for virtual table for
`eq::base::Referenced' value
warning:   found `DiScaleTemplate<short>::interpolatePixel(short
const**, short**)' instead
warning: can't find linker symbol for virtual table for
`eq::base::Referenced' value
warning:   found `DiScaleTemplate<short>::interpolatePixel(short
const**, short**)' instead
$6 = 3407919
...
warning: can't find linker symbol for virtual table for `eq::Server'
value
warning:   found `DiColorPixelTemplate<unsigned
short>::createDIB(void*&, unsigned int, unsigned short, unsigned
short, unsigned int, int, int, int, int, int) const' instead
warning: can't find linker symbol for virtual table for
`eq::net::Node' value
warning:   found `DiColorPixelTemplate<unsigned
short>::createDIB(void*&, unsigned int, unsigned short, unsigned
short, unsigned int, int, int, int, int, int) const' instead
warning: can't find linker symbol for virtual table for
`eq::base::Referenced' value
warning:   found `DiScaleTemplate<short>::interpolatePixel(short
const**, short**)' instead
warning: can't find linker symbol for virtual table for
`eq::base::Referenced' value
warning:   found `DiScaleTemplate<short>::interpolatePixel(short
const**, short**)' instead
warning: can't find linker symbol for virtual table for `eq::Server'
value
warning:   found `DiColorPixelTemplate<unsigned
short>::createDIB(void*&, unsigned int, unsigned short, unsigned
short, unsigned int, int, int, int, int, int) const' instead
warning: can't find linker symbol for virtual table for
`eq::net::Node' value
warning:   found `DiColorPixelTemplate<unsigned
short>::createDIB(void*&, unsigned int, unsigned short, unsigned
short, unsigned int, int, int, int, int, int) const' instead
warning: can't find linker symbol for virtual table for
`eq::base::Referenced' value
warning:   found `DiScaleTemplate<short>::interpolatePixel(short
const**, short**)' instead

When run from eq::getConfig() I get a happy little

(gdb) p server._ptr->getRefCount()
$1 = 2

which makes me thing that I'm missing an #include or something, since
(gdb) doesn't have the all the symbolic information.

Hopefully that's informative enough to work on.

-S!

On Apr 14, 9:40 am, Stephen Furlani <[email protected]> wrote:
> Hello, I replied but I attached some images of my code and eqPly side/
> side and it is sitting awaiting approval.  I, however, can't so I'm
> posting the text here.  PM me if you want the images.  Thanks!
>
>
>
> --- Original Message ---
>
> Yes, _client and _server are base::RefPtr - in fact, I've taken out
> all the ObjC code I could find (I didn't know if the gc was fouling
> things up), but to no avail.
>
> Not being familiar enough with linux/mac os are there any background
> programs that could be interfering with the program in a zombie-like
> manner?  ssh-agent?  UserEventAgent?
>
> Neither ~Client nor ~EqOsirix are called during the executing of the
> code.  I set a breakpoint in _createNetNode() at netNode-
> >setAutoLaunch(true) but it's never called.  Since autoLaunch inits to
> false, it's the only place I could find that sets it to true.
>
> When it freezes up - it's stuck in a __spin_lock, at
> pthread_mutex_destroy( &_data->mutex); in ~Server ~Node ~Lock, if that
> helps.  I'm a self taught programmer, so while I understand the nature
> of mutexes and Lock - I don't know if I'm doing something that can
> foul it up.  The only reason I can think of that it would sit in ~Lock
> is if it's waiting for a gc or if another thread/process has it
> checked out.
>
> Thanks for helping,
>
> --
> Stephen Furlani
> Biomedical Software Engineer
> iPhone/iPad App Developer
> e: [email protected]
> w: strongfortressgames.weebly.com
> c: 240-491-7288
>
> Snippit of Config File:
>
> server
> {
>         connection { hostname "medwall-macpro-1.local" TCPIP_port 5000 }
>         config
>         {
>                 #MacPro App Node
>                 appNode
>                 {
>                         connection { hostname "medwall-macpro-1.local" 
> TCPIP_port 5030}
>                 }
>
>                 #MAcPro Client Node
>                 node
>                 {
>                         connection { hostname "medwall-macpro-1.local" 
> TCPIP_port 5010}
>                         pipe
>                         {
>                                 name "pipe-00"
>                                 device 0
>                                 window
>                                 {
>                                         #viewport [ 0 0 2048 1152 ]
>                                         attributes { hint_drawable window }
>                                         channel
>                                         {
>                                                 name "channel-00"
>                                         }
>                                 }
>                         }
> etc...
>
> On Apr 13, 12:09 pm, Stefan Eilemann <[email protected]> wrote:
> > On Tue, Apr 13, 2010 at 2:51 PM, Stephen Furlani [via Software]
>
> > <[email protected]> wrote:
> > >> 3) stepping through Client::connectServer
>
> > >> to see what is going wrong?
>
> > > The line:
> > > if( connect( net::NodePtr(server.get()))) {
> > > never returns.
>
> > > Stepping through Node::connect(NodePtr), the line initConnect(NodePtr)
> > > returns false (cds has one object: "localhost:4743", connection-
> > >>connect() fails and autolaunch is false.
>
> > > Node::connect(NodePtr) then sends the error message, returns false,
> > > but never exits the function.  it just hangs on the closing "}"
>
> > Something is seriously broken here. I assume self _client and _server
> > are base::RefPtr's?
>
> > It looks to me that your client pointer is deleted, since _autoLaunch
> > should be true unless you explicitly set a server. Can you set a break
> > point in ~Client to see if you pass through there?
>
> > I don't see a difference between eq::getConfig() and your code,
> > although obviously there is one. The quickest path should be finding
> > it...
>
> > HTH,
>
> > Stefan.
>
> > --
> > View this message in 
> > context:http://n2.nabble.com/Back-to-n00b-errors-tp4891109p4896992.html
> > Sent from the Equalizer - Parallel Rendering mailing list archive at 
> > Nabble.com.
>
> > _______________________________________________
> > eq-dev mailing list
> > [email protected]http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-devhttp:...
>
> _______________________________________________
> eq-dev mailing list
> [email protected]http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-devhttp://www.equalizergraphics.com

_______________________________________________
eq-dev mailing list
[email protected]
http://www.equalizergraphics.com/cgi-bin/mailman/listinfo/eq-dev
http://www.equalizergraphics.com

Reply via email to