We have seen this assertion in testing:
[js_test:read_committed_after_rollback] 2016-08-18T00:55:35.560+0000 d20015| 2016-08-18T00:55:35.559+0000 E STORAGE [conn62] WiredTiger (0) [1471481735:559713][16909:0x11300b000], WT_SESSION.rollback_transaction: src/third_party/wiredtiger/src/txn/txn.c, 101: txn_state->snap_min == WT_TXN_NONE || session->txn.isolation == WT_ISO_READ_UNCOMMITTED || !__wt_txn_visible_all(session, txn_state->snap_min) [js_test:read_committed_after_rollback] 2016-08-18T00:55:35.560+0000 d20015| 2016-08-18T00:55:35.559+0000 E STORAGE [conn62] WiredTiger (0) [1471481735:559882][16909:0x11300b000], WT_SESSION.rollback_transaction: aborting WiredTiger library
I believe that this transaction was started on a named snapshot, and the snapshot was dropped before the transaction was rolled back.
Write a WT test case for this (create a named snapshot, start a transaction on it, do lots of additional transactions to move the oldest ID forward, try to commit / rollback the transaction and reproduce the assertion).
The fix is to publish the snap_min for named snapshots into txn_global->states.