I'm trying to chase down an I/O hang on an x4500 running snv_70, and have seen in http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common /fs/zfs/zil.c#zil_commit_writer at line 1075 that function's only call to txg_wait_synced... and that call appears in my stack trace.
Looking on to txg_wait_synced, I notice that there's a while loop at line 475 of http://cvs.opensolaris.org/source/xref/onnv/onnv-gate/usr/src/uts/common /fs/zfs/txg.c#txg_wait_synced while (tx->tx_synced_txg < txg) { Since (unit64_t) txg is passed in as 0, and tx_synced_txg is also a uint64_t, isn't this a rather infinite loop? There are many calls to tx_synced_txg(,0) elsewhere too. I have to admit that I don't know what the correct behavior when the if in zil_commit_writer there is true (i.e. we've had an error writing the ZIL), but I don't think an infinite loop is it. Any thoughts? Kernel crash dump is available on request (16GB) --Joe _______________________________________________ storage-discuss mailing list [email protected] http://mail.opensolaris.org/mailman/listinfo/storage-discuss
