Hi, some further data on the endless-loop problem.
I just restarted the server and I'm seeing some broken results: $ owdir /bus.0 /bus.0/interface /bus.0/81.0B2F27000000 /bus.0/1F.0CB204000000 /bus.0/1F.BCC604000000 /bus.0/1F.C9B004000000 $ owdir /bus.0/1F.0CB204000000/aux /bus.0/1F.0CB204000000/aux/interface /bus.0/1F.0CB204000000/aux/10.DBDB39010800 /bus.0/1F.0CB204000000/aux/26.61F8AE000000 /bus.0/1F.0CB204000000/aux/81.0B2F27000000 /bus.0/1F.0CB204000000/aux/1F.0CB204000000 /bus.0/1F.0CB204000000/aux/1F.BCC604000000 /bus.0/1F.0CB204000000/aux/1F.C9B004000000 /bus.0/1F.0CB204000000/aux/simultaneous /bus.0/1F.0CB204000000/aux/alarm $ Like, DUH ?!? Stuff like that is obviously not supposed to happen. (Bus 0 is on USB.) 2.6p6 got this right: $ owdir /bus.0 /bus.0/81.0B2F27000000 /bus.0/1F.0CB204000000 /bus.0/1F.BCC604000000 /bus.0/1F.C9B004000000 $ owdir /bus.0/1F.0CB204000000/aux /bus.0/1F.0CB204000000/aux/10.DBDB39010800 /bus.0/1F.0CB204000000/aux/26.61F8AE000000 Anyway, here's the level 9 dump of one endless-loop thing: DEBUG: RealHandler: cm.ret=1 DEBUG: ToClient payload=1 size=1, ret=1, sg=0x2 offset=0 DEBUG: RealHandler: done DEBUG: ServerProcessAccept = 3084409744 CLOSING DEBUG: ServerProcessAccept [3084409744] try lock 0 DEBUG: ServerProcessAccept [3084409744] locked 0 DEBUG: FromClient payload=68 size=0 type=7 sg=0x2 offset=0 CALL: owserver: parse path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main DEBUG: FS_OWQ_create of /bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main CALL: PARSENAME path=[/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main] CALL: Directory message (all at once) DEBUG: OWSERVER Dir-All SpecifiedBus=1 path = /bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main DEBUG: In FS_dir_remote(/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main) CALL: DIRECTORY path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main DEBUG: Start of directory path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main device=1F C3 C6 04 00 00 00 CF DEBUG: Selecting a path (and device) path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main SN=1F C3 C6 04 00 00 00 CF last path=1F C9 B0 04 00 00 00 F1 DEBUG: Clearing all branches to level 3 DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: Transaction send = 0 DEBUG: Transaction end = 0 DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: Transaction send = 0 DEBUG: Transaction readin = 0 DEBUG: Transaction end = 0 DEBUG: Transaction send = 0 DEBUG: Transaction end = 0 DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: OWSERVER handler done DEBUG: Transaction send = 0 DEBUG: Transaction readin = 0 DEBUG: Transaction end = 0 DEBUG: Transaction send = 0 DEBUG: Transaction end = 0 DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: Transaction send = 0 DEBUG: Transaction readin = 0 DEBUG: Transaction end = 0 DEBUG: Transaction send = 0 DEBUG: Transaction end = 0 DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: Transaction send = 0 DEBUG: Transaction readin = 0 DEBUG: Transaction end = 0 DEBUG: Index 0 DEBUG: Got 64 bytes from USB search DEBUG: DS9490_next_both SN found: 10 D0 5F 39 01 08 00 C3 DEBUG: BUS_next return = 0 10 D0 5F 39 01 08 00 C3 DEBUG: Cache_Add_Device 10 D0 5F 39 01 08 00 C3 bus=0 DEBUG: Add to cache sn 10 D0 5F 39 01 08 00 C3 pointer=(nil) index=-1 size=4 DEBUG: Selecting a path (and device) path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: Transaction send = 0 DEBUG: Transaction readin = 0 DEBUG: Transaction end = 0 DEBUG: Index 1 DEBUG: DS9490_next_both SN found: 10 65 AD 39 01 08 00 0A DEBUG: BUS_next return = 0 10 65 AD 39 01 08 00 0A DEBUG: Cache_Add_Device 10 65 AD 39 01 08 00 0A bus=0 DEBUG: Add to cache sn 10 65 AD 39 01 08 00 0A pointer=(nil) index=-1 size=4 DEBUG: Selecting a path (and device) path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: Transaction send = 0 DEBUG: Transaction readin = 0 DEBUG: Transaction end = 0 DEBUG: Index 2 DEBUG: DS9490_next_both SN found: 10 8D 80 39 01 08 00 96 DEBUG: BUS_next return = 0 10 8D 80 39 01 08 00 96 DEBUG: Cache_Add_Device 10 8D 80 39 01 08 00 96 bus=0 DEBUG: Add to cache sn 10 8D 80 39 01 08 00 96 pointer=(nil) index=-1 size=4 DEBUG: Selecting a path (and device) path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: Transaction send = 0 DEBUG: Transaction readin = 0 DEBUG: Transaction end = 0 DEBUG: Index 3 DEBUG: DS9490_next_both SN found: 10 DB DB 39 01 08 00 EF DEBUG: BUS_next return = 0 10 DB DB 39 01 08 00 EF DEBUG: Cache_Add_Device 10 DB DB 39 01 08 00 EF bus=0 DEBUG: Add to cache sn 10 DB DB 39 01 08 00 EF pointer=(nil) index=-1 size=4 DEBUG: Selecting a path (and device) path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: Transaction send = 0 DEBUG: Transaction readin = 0 DEBUG: Transaction end = 0 DEBUG: Index 4 DEBUG: DS9490_next_both SN found: 26 61 F8 AE 00 00 00 B1 DEBUG: BUS_next return = 0 26 61 F8 AE 00 00 00 B1 DEBUG: Cache_Add_Device 26 61 F8 AE 00 00 00 B1 bus=0 DEBUG: Add to cache sn 26 61 F8 AE 00 00 00 B1 pointer=(nil) index=-1 size=4 DEBUG: Selecting a path (and device) path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: Transaction send = 0 DEBUG: Transaction readin = 0 DEBUG: Transaction end = 0 DEBUG: Index 5 DEBUG: DS9490_next_both SN found: 81 0B 2F 27 00 00 00 33 DEBUG: BUS_next return = 0 81 0B 2F 27 00 00 00 33 DEBUG: Cache_Add_Device 81 0B 2F 27 00 00 00 33 bus=0 DEBUG: Add to cache sn 81 0B 2F 27 00 00 00 33 pointer=(nil) index=-1 size=4 DEBUG: Selecting a path (and device) path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: Transaction send = 0 DEBUG: Transaction readin = 0 DEBUG: Transaction end = 0 DEBUG: Index 6 DEBUG: DS9490_next_both SN found: 1F 0C B2 04 00 00 00 06 DEBUG: BUS_next return = 0 1F 0C B2 04 00 00 00 06 DEBUG: Cache_Add_Device 1F 0C B2 04 00 00 00 06 bus=0 DEBUG: Add to cache sn 1F 0C B2 04 00 00 00 06 pointer=(nil) index=-1 size=4 DEBUG: Selecting a path (and device) path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF DATA: DS9490_reset DATA: DS9490_reset: ok DEBUG: Transaction send = 0 DEBUG: Transaction readin = 0 DEBUG: Transaction end = 0 DEBUG: Index 7 DEBUG: Got 64 bytes from USB search DEBUG: DS9490_next_both SN found: 10 D0 5F 39 01 08 00 C3 ... and so on, until finally ... DEBUG: Index 1253 DEBUG: ToClient payload=-1 size=0, ret=0, sg=0x0 offset=0 DEBUG: ServerProcessAccept = 3084409744 CLOSING DEBUG: ServerProcessAccept [3084409744] try lock 0 DEBUG: ServerProcessAccept [3084409744] locked 0 DEBUG: FromClient payload=80 size=8192 type=2 sg=0x2 offset=0 CALL: owserver: parse path=/uncached/bus.0/1F.0CB204000000/aux/1F.C9B004000000/main/05.A30032000000/sensed DEBUG: FS_OWQ_create of /uncached/bus.0/1F.0CB204000000/aux/1F.C9B004000000/main/05.A30032000000/sensed CALL: PARSENAME path=[/uncached/bus.0/1F.0CB204000000/aux/1F.C9B004000000/main/05.A30032000000/sensed] CALL: Read message DEBUG: ReadHandler: DEBUG: ReadHandler: From Client sm->payload=80 sm->size=8192 sm->offset=0 DEBUG: ReadHandler: call FS_read_postparse on /uncached/bus.0/1F.0CB204000000/aux/1F.C9B004000000/main/05.A30032000000/sensed DEBUG: READ_POSTPARSE /uncached/bus.0/1F.0CB204000000/aux/1F.C9B004000000/main/05.A30032000000/sensed DEBUG: READ_POSTPOSTPARSE /uncached/bus.0/1F.0CB204000000/aux/1F.C9B004000000/main/05.A30032000000/sensed DEBUG: FS_r_given_bus OWQ OneWireQuery structure of /uncached/bus.0/1F.0CB204000000/aux/1F.C9B004000000/main/05.A30032000000/sensed OneWireQuery size=8192 offset=0, extension=0 Byte buffer OneWireQuery buffer, length=8192 -- F8 E4 EC B7 F8 E4 EC B7 50 0E 06 08 50 0E 06 08 -- 43 39 42 30 30 34 30 30 30 30 30 30 2F 61 75 78 -- 2F 31 46 2E 43 33 43 36 30 34 30 30 30 30 30 30 -- 2F 6D 61 69 6E 2F 31 30 2E 44 30 35 46 33 39 30 -- 31 30 38 30 30 2C 2F 62 75 73 2E 30 2F 31 46 2E -- 30 43 42 32 30 34 30 30 30 30 30 30 2F 61 75 78 ... etc. -- Matthias Urlichs | {M:U} IT Design @ m-u-it.de | [EMAIL PROTECTED] Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de - - Nothing is so important that nothing else is important. > > I have no idea whatsoever why that happens; it's on a local USB bus, > admittedly behind a couple of DS2409 hubs (they're necessary -- crappy > wiring). That did not happen with the last version I had on that system > (probably 2.6p6; I can do a binary search for the check-in that caused > the problem, but not now *yawn*). > > Happens both with DIR and DIRALL messages, except that the latter doesn't > flood the client with a stream of duplicate directory entries. ;-) > > Debug output: > DEBUG: ReadHandler: FS_read_postparse ok size=1 > DEBUG: ReadHandler: To Client cm->payload=1 cm->size=1 cm->offset=0 > DEBUG: ReadHandler: return size=1 [0] > DEBUG: Read message done retbuffer=0x805df40 > DEBUG: FS_OWQ_destroy of > /uncached/bus.0/1F.0CB204000000/aux/1F.C9B004000000/main/05.A30032000000/sensed > DEBUG: ParsedName_destroy > /uncached/bus.0/1F.0CB204000000/aux/1F.C9B004000000/main/05.A30032000000/sensed > DEBUG: RealHandler: FS_ParsedName_destroy done > DEBUG: RealHandler: cm.ret=1 > DEBUG: ToClient payload=1 size=1, ret=1, sg=0x2 offset=0 > DEBUG: RealHandler: done > DEBUG: ServerProcessAccept = 3084352400 CLOSING > DEBUG: ServerProcessAccept [3084352400] try lock 0 > DEBUG: ServerProcessAccept [3084352400] locked 0 > DEBUG: FromClient payload=68 size=0 type=7 sg=0x2 offset=0 > CALL: owserver: parse > path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > DEBUG: FS_OWQ_create of > /bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > CALL: PARSENAME > path=[/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main] > CALL: Directory message (all at once) > DEBUG: OWSERVER Dir-All SpecifiedBus=1 path = > /bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > DEBUG: In > FS_dir_remote(/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main) > CALL: DIRECTORY > path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > DEBUG: Start of directory > path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > device=1F C3 C6 04 00 00 00 CF > DEBUG: Selecting a path (and device) > path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > SN=1F C3 C6 04 00 00 00 CF last path=1F C9 B0 04 00 00 00 F1 > DEBUG: Clearing all branches to level 3 > DATA: DS9490_reset > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > DEBUG: Transaction end = 0 > DATA: DS9490_reset > DEBUG: OWSERVER handler done > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > DEBUG: Transaction readin = 0 > DEBUG: Transaction end = 0 > DEBUG: Transaction send = 0 > DEBUG: Transaction end = 0 > DATA: DS9490_reset > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > : DEBUG: Transaction readin = 0 > DEBUG: Transaction end = 0 > DEBUG: Transaction send = 0 > DEBUG: Transaction end = 0 > DATA: DS9490_reset > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > DEBUG: Transaction readin = 0 > DEBUG: Transaction end = 0 > DEBUG: Transaction send = 0 > DEBUG: Transaction end = 0 > DATA: DS9490_reset > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > DEBUG: Transaction readin = 0 > DEBUG: Transaction end = 0 > DEBUG: Index 0 > DEBUG: Got 64 bytes from USB search > DEBUG: DS9490_next_both SN found: 10 D0 5F 39 01 08 00 C3 > DEBUG: BUS_next return = 0 10 D0 5F 39 01 08 00 C3 > DEBUG: Cache_Add_Device 10 D0 5F 39 01 08 00 C3 bus=0 > DEBUG: Add to cache sn 10 D0 5F 39 01 08 00 C3 pointer=(nil) index=-1 size=4 > DEBUG: Selecting a path (and device) > path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF > DATA: DS9490_reset > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > DEBUG: Transaction readin = 0 > DEBUG: Transaction end = 0 > DEBUG: Index 1 > DEBUG: DS9490_next_both SN found: 10 65 AD 39 01 08 00 0A > DEBUG: BUS_next return = 0 10 65 AD 39 01 08 00 0A > DEBUG: Cache_Add_Device 10 65 AD 39 01 08 00 0A bus=0 > DEBUG: Add to cache sn 10 65 AD 39 01 08 00 0A pointer=(nil) index=-1 size=4 > DEBUG: Selecting a path (and device) > path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF > DATA: DS9490_reset > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > DEBUG: Transaction readin = 0 > DEBUG: Transaction end = 0 > DEBUG: Index 2 > DEBUG: DS9490_next_both SN found: 10 8D 80 39 01 08 00 96 > DEBUG: BUS_next return = 0 10 8D 80 39 01 08 00 96 > DEBUG: Cache_Add_Device 10 8D 80 39 01 08 00 96 bus=0 > DEBUG: Add to cache sn 10 8D 80 39 01 08 00 96 pointer=(nil) index=-1 size=4 > DEBUG: Selecting a path (and device) > path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF > DATA: DS9490_reset > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > DEBUG: Transaction readin = 0 > DEBUG: Transaction end = 0 > DEBUG: Index 3 > DEBUG: DS9490_next_both SN found: 10 DB DB 39 01 08 00 EF > DEBUG: BUS_next return = 0 10 DB DB 39 01 08 00 EF > DEBUG: Cache_Add_Device 10 DB DB 39 01 08 00 EF bus=0 > DEBUG: Add to cache sn 10 DB DB 39 01 08 00 EF pointer=(nil) index=-1 size=4 > DEBUG: Selecting a path (and device) > path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF > DATA: DS9490_reset > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > DEBUG: Transaction readin = 0 > DEBUG: Transaction end = 0 > DEBUG: Index 4 > DEBUG: DS9490_next_both SN found: 26 61 F8 AE 00 00 00 B1 > DEBUG: BUS_next return = 0 26 61 F8 AE 00 00 00 B1 > DEBUG: Cache_Add_Device 26 61 F8 AE 00 00 00 B1 bus=0 > DEBUG: Add to cache sn 26 61 F8 AE 00 00 00 B1 pointer=(nil) index=-1 size=4 > DEBUG: Selecting a path (and device) > path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF > DATA: DS9490_reset > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > DEBUG: Transaction readin = 0 > DEBUG: Transaction end = 0 > DEBUG: Index 5 > DEBUG: DS9490_next_both SN found: 81 0B 2F 27 00 00 00 33 > DEBUG: BUS_next return = 0 81 0B 2F 27 00 00 00 33 > DEBUG: Cache_Add_Device 81 0B 2F 27 00 00 00 33 bus=0 > DEBUG: Add to cache sn 81 0B 2F 27 00 00 00 33 pointer=(nil) index=-1 size=4 > DEBUG: Selecting a path (and device) > path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF > DATA: DS9490_reset > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > DEBUG: Transaction readin = 0 > DEBUG: Transaction end = 0 > DEBUG: Index 6 > DEBUG: DS9490_next_both SN found: 1F 0C B2 04 00 00 00 06 > DEBUG: BUS_next return = 0 1F 0C B2 04 00 00 00 06 > DEBUG: Cache_Add_Device 1F 0C B2 04 00 00 00 06 bus=0 > DEBUG: Add to cache sn 1F 0C B2 04 00 00 00 06 pointer=(nil) index=-1 size=4 > DEBUG: Selecting a path (and device) > path=/bus.0/1F.0CB204000000/aux/1F.C9B004000000/aux/1F.C3C604000000/main > SN=1F C3 C6 04 00 00 00 CF last path=1F C3 C6 04 00 00 00 CF > DATA: DS9490_reset > DATA: DS9490_reset: ok > DEBUG: Transaction send = 0 > DEBUG: Transaction readin = 0 > DEBUG: Transaction end = 0 > DEBUG: Index 7 > DEBUG: Got 64 bytes from USB search > DEBUG: DS9490_next_both SN found: 10 D0 5F 39 01 08 00 C3 > [ Note identical serial to first device found. Repeat ad lib. ] > > -- > Matthias Urlichs | {M:U} IT Design @ m-u-it.de | [EMAIL PROTECTED] > Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de > - - > My mother had a baby once. > -- Jigger > > ------------------------------------------------------------------------- > SF.Net email is sponsored by: The Future of Linux Business White Paper > from Novell. From the desktop to the data center, Linux is going > mainstream. Let it simplify your IT future. > http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 > _______________________________________________ > Owfs-developers mailing list > Owfs-developers@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/owfs-developers -- Matthias Urlichs | {M:U} IT Design @ m-u-it.de | [EMAIL PROTECTED] Disclaimer: The quote was selected randomly. Really. | http://smurf.noris.de - - UNMATCHED: Almost as good as the competition ------------------------------------------------------------------------- SF.Net email is sponsored by: The Future of Linux Business White Paper from Novell. From the desktop to the data center, Linux is going mainstream. Let it simplify your IT future. http://altfarm.mediaplex.com/ad/ck/8857-50307-18918-4 _______________________________________________ Owfs-developers mailing list Owfs-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/owfs-developers