sin hangs with my resource manager is running

I have noticed a strange behaviour that I am unable to track down.

I have a resource manager we are developing that when I run and then run
“sin”. The “sin” command will hang with no messages and no output plus no
messages (that I know of) going to my driver.

This occurs under QNX 6.21, yet under 6.3 it works fine.

Is anyone aware of what might cause sin to fail when run with a resource
manager?

Thanks

Allan Smith <aes@connecttech.com> wrote:

I have noticed a strange behaviour that I am unable to track down.

I have a resource manager we are developing that when I run and then run
“sin”. The “sin” command will hang with no messages and no output plus no
messages (that I know of) going to my driver.

This occurs under QNX 6.21, yet under 6.3 it works fine.

Is anyone aware of what might cause sin to fail when run with a resource
manager?

I don’t know of anything, and I couldn’t find anything in our bug tracking
system that sounded anything like this.

So,

Any command line arguments to sin?
Does pidin hang the same way?
If pidin doesn’t hang, what state is sin in when this happens?

-David

David Gibbs
QNX Training Services
dagibbs@qnx.com

I believe sin does an fdinfo query - are you handling that?

You should be able to see who sin is waiting on with pidin

David Gibbs wrote:

Allan Smith <> aes@connecttech.com> > wrote:

I have noticed a strange behaviour that I am unable to track down.


I have a resource manager we are developing that when I run and then run
“sin”. The “sin” command will hang with no messages and no output plus no
messages (that I know of) going to my driver.


This occurs under QNX 6.21, yet under 6.3 it works fine.


Is anyone aware of what might cause sin to fail when run with a resource
manager?


I don’t know of anything, and I couldn’t find anything in our bug tracking
system that sounded anything like this.

So,

Any command line arguments to sin?
Does pidin hang the same way?
If pidin doesn’t hang, what state is sin in when this happens?

-David


cburgess@qnx.com

Thanks guys for the tips, pidin did not hang, but showed sin was blocked on
my driver.

I had missed this before but sin is sending a message to my child thread. I
am not sure what this message is?

“David Gibbs” <dagibbs@qnx.com> wrote in message
news:d7frbm$o3o$1@inn.qnx.com

Allan Smith <> aes@connecttech.com> > wrote:
I have noticed a strange behaviour that I am unable to track down.

I have a resource manager we are developing that when I run and then run
“sin”. The “sin” command will hang with no messages and no output plus
no
messages (that I know of) going to my driver.

This occurs under QNX 6.21, yet under 6.3 it works fine.

Is anyone aware of what might cause sin to fail when run with a resource
manager?

I don’t know of anything, and I couldn’t find anything in our bug tracking
system that sounded anything like this.

So,

Any command line arguments to sin?
Does pidin hang the same way?
If pidin doesn’t hang, what state is sin in when this happens?

-David

David Gibbs
QNX Training Services
dagibbs@qnx.com

Allan Smith <aes@connecttech.com> wrote:

Thanks guys for the tips, pidin did not hang, but showed sin was blocked on
my driver.

I had missed this before but sin is sending a message to my child thread. I
am not sure what this message is?

It is probably some sort of fd-query type message. At a guess, you child
thread has a channel of its own, and at least one side-channel connection
to that channel. I think that sin used to do a fd-query for all connections,
but may have been fixed to not do the fd-query on side-channel connections.
(Which would be the difference between 6.2.1 and 6.3.0 behaviour.)

Anytime you have a channel on which you receive messages, it is a good
idea to do something like:

MsgError(rcvid, ENOSYS );

for any/all messages that you don’t recognise. This unblocks the client
with a failure, rather than leaving them blocked on you.

(If the client is SEND blocked on your child’s thread’s chid, rather than
REPLY blocked, that means you need to receive & error the message.)

-David

“David Gibbs” <> dagibbs@qnx.com> > wrote in message
news:d7frbm$o3o$> 1@inn.qnx.com> …
Allan Smith <> aes@connecttech.com> > wrote:
I have noticed a strange behaviour that I am unable to track down.

I have a resource manager we are developing that when I run and then run
“sin”. The “sin” command will hang with no messages and no output plus
no
messages (that I know of) going to my driver.

This occurs under QNX 6.21, yet under 6.3 it works fine.

Is anyone aware of what might cause sin to fail when run with a resource
manager?

I don’t know of anything, and I couldn’t find anything in our bug tracking
system that sounded anything like this.

So,

Any command line arguments to sin?
Does pidin hang the same way?
If pidin doesn’t hang, what state is sin in when this happens?

-David

David Gibbs
QNX Training Services
dagibbs@qnx.com


David Gibbs
QNX Training Services
dagibbs@qnx.com

Thanks, your info solved my problem.

“David Gibbs” <dagibbs@qnx.com> wrote in message
news:d7hsv3$adg$1@inn.qnx.com

Allan Smith <> aes@connecttech.com> > wrote:
Thanks guys for the tips, pidin did not hang, but showed sin was blocked
on
my driver.

I had missed this before but sin is sending a message to my child thread.
I
am not sure what this message is?

It is probably some sort of fd-query type message. At a guess, you child
thread has a channel of its own, and at least one side-channel connection
to that channel. I think that sin used to do a fd-query for all
connections,
but may have been fixed to not do the fd-query on side-channel
connections.
(Which would be the difference between 6.2.1 and 6.3.0 behaviour.)

Anytime you have a channel on which you receive messages, it is a good
idea to do something like:

MsgError(rcvid, ENOSYS );

for any/all messages that you don’t recognise. This unblocks the client
with a failure, rather than leaving them blocked on you.

(If the client is SEND blocked on your child’s thread’s chid, rather than
REPLY blocked, that means you need to receive & error the message.)

-David

“David Gibbs” <> dagibbs@qnx.com> > wrote in message
news:d7frbm$o3o$> 1@inn.qnx.com> …
Allan Smith <> aes@connecttech.com> > wrote:
I have noticed a strange behaviour that I am unable to track down.

I have a resource manager we are developing that when I run and then
run
“sin”. The “sin” command will hang with no messages and no output plus
no
messages (that I know of) going to my driver.

This occurs under QNX 6.21, yet under 6.3 it works fine.

Is anyone aware of what might cause sin to fail when run with a
resource
manager?

I don’t know of anything, and I couldn’t find anything in our bug
tracking
system that sounded anything like this.

So,

Any command line arguments to sin?
Does pidin hang the same way?
If pidin doesn’t hang, what state is sin in when this happens?

-David

David Gibbs
QNX Training Services
dagibbs@qnx.com


\

David Gibbs
QNX Training Services
dagibbs@qnx.com

Allan Smith <aes@connecttech.com> wrote:

Thanks, your info solved my problem.

You’re welcome.

-David


David Gibbs
QNX Training Services
dagibbs@qnx.com