出现这个问题后代码不是很好定位，需要对整个系统比较熟悉才能找到。这里有个分享也说到了 lazy 的一些问题，这里摘抄出来
Eric: Could you talk about what would be a good pull mechanism?
Zach: Sure. It’s not that if it’s a lazy-seq it’s bad, because lazy-seq is a very overloaded thing in Clojure, but actually just refers to pure operations you haven’t performed on the data structure yet, but where that actually represents effects.
Like the point that I made is that if you have a function and that function means effects, you’re not actually transforming things, and that’s carried out not from the push but the pull, if I go and I pass in a lazy sequence which is performing effects to go and yield data…
Eric: Like reading in the lines of a file.
Zach: Exactly. Something can go wrong there. There can be an IO exception on that disk that are not actually in the transform phase, because we can’t actually reason about this in isolation, because there is something that someone else can do to screw us up.
The reason that you don’t use lazy sequence is because it fundamentally shrinks it, so that the M&M is all candy-coated shell and sometimes there’s chocolate in it. That’s not good. That’s not what we want.