Alex:
There has always been a problem with persistent links, where "always" means all
the way back to AT&T's original specifications. The problem was that if you
close the control stream you sever the linkage between a user space program and
the stream head that represents the control stream for the persistent links.
It looks like Solaris has made it explicit that you can re-open the control
stream and issue an I_PUNLINK to dismantle the multiplexor. I was not aware of
that when I implemented multiplexing and therefore implemented it the other way.
I'll add this to my (short) list of things to fix. This will take me a little
while as I have a lot of other things in my queue to do. A quick glance shows
that you _ought_ to get the same stdata structure when you re-open the control
stream, so I'm not quite sure why it doesn't work. Anyway, I'll add a test for
it and go chase the bug.
Thanks,
Dave
Alex Chamberlain wrote:
> Hello all,
>
> I'm following up on my earlier message where I believed that I_PUNLINK did
> not work with MUXID_ALL. That turned out not to be the case (thanks, Dave,
> I was misreading the code) but now I seem to have found a bug for real.
>
> The following test case will show the bug: In util/strtst.c, just change
> the PLINK/PUNLINK test code in mux_test() so that the file descriptors to
> the "upper" driver (the mini-mux driver) are closed and reopened after the
> I_PLINK calls are made and before the I_PUNLINK calls. Then the I_PUNLINK
> will fail to unlink although the ioctl() call returns 0.
>
> I added some printk's to the LiS link/unlink code in head.c to print some
> values of the "hd" pointer used to store data about the active stream heads.
> I notice that when the link is done, in str_link_mux(), hd is non-null and
> hd->sd_mux.mx_hd is also non-null. However, in lis_i_unlink(), hd is
> non-null and hd->sd_mux.mx_hd is also non-null for a stream head that has
> not been closed and reopened; but the latter pointer is null for a stream
> head that *has* been closed and reopened.
>
> Thanks for any help,
>
> ---
> Alex Chamberlain
> [EMAIL PROTECTED]
> Polaris Communications Inc.
> "Products that unite the data center"
>
> ----------------------- *THE_LIST_HAS_MOVED* -------------------------------
> It is now hosted at gsyc.escet.urjc.es.
> To (un)subscribe send a mail to <[EMAIL PROTECTED]>
> To send a contribution send a mail to <[EMAIL PROTECTED]>
> Web archives for lists can be found at http://gsyc.escet.urjc.es/lists
----------------------- *THE_LIST_HAS_MOVED* -------------------------------
It is now hosted at gsyc.escet.urjc.es.
To (un)subscribe send a mail to <[EMAIL PROTECTED]>
To send a contribution send a mail to <[EMAIL PROTECTED]>
Web archives for lists can be found at http://gsyc.escet.urjc.es/lists