what is the expected behavior where `reader.read(size, cb)` is called where size > the remaining readable data?