Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug: Pushback buffer overflow #5

Open
NoahTheDuke opened this issue Mar 28, 2018 · 6 comments
Open

Bug: Pushback buffer overflow #5

NoahTheDuke opened this issue Mar 28, 2018 · 6 comments

Comments

@NoahTheDuke
Copy link

Trying to run this over the netrunner codebase throws a pushback buffer overflow.

λ  lein trampoline mutate
Exception in thread "main" java.io.IOException: Pushback buffer overflow, compiling:(C:\Users\NoahBogart\AppData\Local\Temp\form-init4812278696648608213.clj:1:113)
        at clojure.lang.Compiler.load(Compiler.java:7526)
        at clojure.lang.Compiler.loadFile(Compiler.java:7452)
        at clojure.main$load_script.invokeStatic(main.clj:278)
        at clojure.main$init_opt.invokeStatic(main.clj:280)
        at clojure.main$init_opt.invoke(main.clj:280)
        at clojure.main$initialize.invokeStatic(main.clj:311)
        at clojure.main$null_opt.invokeStatic(main.clj:345)
        at clojure.main$null_opt.invoke(main.clj:342)
        at clojure.main$main.invokeStatic(main.clj:424)
        at clojure.main$main.doInvoke(main.clj:387)
        at clojure.lang.RestFn.applyTo(RestFn.java:137)
        at clojure.lang.Var.applyTo(Var.java:702)
        at clojure.main.main(main.java:37)
Caused by: java.io.IOException: Pushback buffer overflow
        at java.io.PushbackReader.unread(Unknown Source)
        at clojure.tools.reader.reader_types$fn__3136.invokeStatic(reader_types.clj:171)
        at clojure.tools.reader.reader_types$fn__3136.invoke(reader_types.clj:156)
        at clojure.tools.reader.reader_types$fn__3053$G__3048__3060.invoke(reader_types.clj:31)
        at clojure.tools.reader.reader_types.IndexingPushbackReader.unread(reader_types.clj:142)
        at rewrite_clj.parser.keyword$parse_keyword.invokeStatic(keyword.clj:17)
        at rewrite_clj.parser.keyword$parse_keyword.invoke(keyword.clj:8)
        at rewrite_clj.parser.core$eval1833$fn__1834.invoke(core.clj:95)
        at clojure.lang.MultiFn.invoke(MultiFn.java:229)
        at rewrite_clj.reader$read_with_meta.invokeStatic(reader.clj:132)
        at rewrite_clj.reader$read_with_meta.invoke(reader.clj:128)
        at rewrite_clj.parser.core$parse_next.invokeStatic(core.clj:34)
        at rewrite_clj.parser.core$parse_next.invoke(core.clj:32)
        at rewrite_clj.parser.core$parse_delim$fn__1801.invoke(core.clj:42)
        at rewrite_clj.reader$read_repeatedly$fn__891.invoke(reader.clj:141)
        at clojure.core$repeatedly$fn__6176.invoke(core.clj:5089)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.RT.seq(RT.java:528)
        at clojure.core$seq__5124.invokeStatic(core.clj:137)
        at clojure.core$take_while$fn__5638.invoke(core.clj:2896)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.RT.seq(RT.java:528)
        at clojure.core$seq__5124.invokeStatic(core.clj:137)
        at clojure.core$dorun.invokeStatic(core.clj:3125)
        at clojure.core$doall.invokeStatic(core.clj:3140)
        at clojure.core$doall.invoke(core.clj:3140)
        at rewrite_clj.reader$read_repeatedly.invokeStatic(reader.clj:143)
        at rewrite_clj.reader$read_repeatedly.invoke(reader.clj:137)
        at rewrite_clj.parser.core$parse_delim.invokeStatic(core.clj:43)
        at rewrite_clj.parser.core$parse_delim.invoke(core.clj:38)
        at rewrite_clj.parser.core$eval1877$fn__1878.invoke(core.clj:178)
        at clojure.lang.MultiFn.invoke(MultiFn.java:229)
        at rewrite_clj.reader$read_with_meta.invokeStatic(reader.clj:132)
        at rewrite_clj.reader$read_with_meta.invoke(reader.clj:128)
        at rewrite_clj.parser.core$parse_next.invokeStatic(core.clj:34)
        at rewrite_clj.parser.core$parse_next.invoke(core.clj:32)
        at rewrite_clj.parser.core$parse_delim$fn__1801.invoke(core.clj:42)
        at rewrite_clj.reader$read_repeatedly$fn__891.invoke(reader.clj:141)
        at clojure.core$repeatedly$fn__6176.invoke(core.clj:5089)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.RT.seq(RT.java:528)
        at clojure.core$seq__5124.invokeStatic(core.clj:137)
        at clojure.core$take_while$fn__5638.invoke(core.clj:2896)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.Cons.next(Cons.java:39)
        at clojure.lang.RT.next(RT.java:706)
        at clojure.core$next__5108.invokeStatic(core.clj:64)
        at clojure.core$dorun.invokeStatic(core.clj:3134)
        at clojure.core$doall.invokeStatic(core.clj:3140)
        at clojure.core$doall.invoke(core.clj:3140)
        at rewrite_clj.reader$read_repeatedly.invokeStatic(reader.clj:143)
        at rewrite_clj.reader$read_repeatedly.invoke(reader.clj:137)
        at rewrite_clj.parser.core$parse_delim.invokeStatic(core.clj:43)
        at rewrite_clj.parser.core$parse_delim.invoke(core.clj:38)
        at rewrite_clj.parser.core$eval1873$fn__1874.invoke(core.clj:174)
        at clojure.lang.MultiFn.invoke(MultiFn.java:229)
        at rewrite_clj.reader$read_with_meta.invokeStatic(reader.clj:132)
        at rewrite_clj.reader$read_with_meta.invoke(reader.clj:128)
        at rewrite_clj.parser.core$parse_next.invokeStatic(core.clj:34)
        at rewrite_clj.parser.core$parse_next.invoke(core.clj:32)
        at rewrite_clj.parser.core$parse_delim$fn__1801.invoke(core.clj:42)
        at rewrite_clj.reader$read_repeatedly$fn__891.invoke(reader.clj:141)
        at clojure.core$repeatedly$fn__6176.invoke(core.clj:5089)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.RT.seq(RT.java:528)
        at clojure.core$seq__5124.invokeStatic(core.clj:137)
        at clojure.core$take_while$fn__5638.invoke(core.clj:2896)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.Cons.next(Cons.java:39)
        at clojure.lang.RT.next(RT.java:706)
        at clojure.core$next__5108.invokeStatic(core.clj:64)
        at clojure.core$dorun.invokeStatic(core.clj:3134)
        at clojure.core$doall.invokeStatic(core.clj:3140)
        at clojure.core$doall.invoke(core.clj:3140)
        at rewrite_clj.reader$read_repeatedly.invokeStatic(reader.clj:143)
        at rewrite_clj.reader$read_repeatedly.invoke(reader.clj:137)
        at rewrite_clj.parser.core$parse_delim.invokeStatic(core.clj:43)
        at rewrite_clj.parser.core$parse_delim.invoke(core.clj:38)
        at rewrite_clj.parser.core$eval1869$fn__1870.invoke(core.clj:170)
        at clojure.lang.MultiFn.invoke(MultiFn.java:229)
        at rewrite_clj.reader$read_with_meta.invokeStatic(reader.clj:132)
        at rewrite_clj.reader$read_with_meta.invoke(reader.clj:128)
        at rewrite_clj.parser.core$parse_next.invokeStatic(core.clj:34)
        at rewrite_clj.parser.core$parse_next.invoke(core.clj:32)
        at rewrite_clj.parser$parse.invokeStatic(parser.clj:13)
        at rewrite_clj.parser$parse.invoke(parser.clj:10)
        at rewrite_clj.parser$parse_all$fn__1886.invoke(parser.clj:18)
        at clojure.core$repeatedly$fn__6176.invoke(core.clj:5089)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.RT.seq(RT.java:528)
        at clojure.core$seq__5124.invokeStatic(core.clj:137)
        at clojure.core$take_while$fn__5638.invoke(core.clj:2896)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.Cons.next(Cons.java:39)
        at clojure.lang.RT.next(RT.java:706)
        at clojure.core$next__5108.invokeStatic(core.clj:64)
        at clojure.core$dorun.invokeStatic(core.clj:3134)
        at clojure.core$doall.invokeStatic(core.clj:3140)
        at clojure.core$doall.invoke(core.clj:3140)
        at rewrite_clj.parser$parse_all.invokeStatic(parser.clj:20)
        at rewrite_clj.parser$parse_all.invoke(parser.clj:15)
        at rewrite_clj.parser$parse_file_all.invokeStatic(parser.clj:49)
        at rewrite_clj.parser$parse_file_all.invoke(parser.clj:44)
        at rewrite_clj.zip.base$of_file.invokeStatic(base.clj:79)
        at rewrite_clj.zip.base$of_file.invoke(base.clj:75)
        at rewrite_clj.zip.base$of_file.invokeStatic(base.clj:77)
        at rewrite_clj.zip.base$of_file.invoke(base.clj:75)
        at mutant.internals$forms.invokeStatic(internals.clj:52)
        at mutant.internals$forms.invoke(internals.clj:49)
        at mutant.core$run$fn__3675.invoke(core.clj:10)
        at clojure.core$map$fn__5587.invoke(core.clj:2747)
        at clojure.lang.LazySeq.sval(LazySeq.java:40)
        at clojure.lang.LazySeq.seq(LazySeq.java:49)
        at clojure.lang.RT.seq(RT.java:528)
        at clojure.core$seq__5124.invokeStatic(core.clj:137)
        at clojure.core$apply.invokeStatic(core.clj:652)
        at clojure.core$mapcat.invokeStatic(core.clj:2775)
        at clojure.core$mapcat.doInvoke(core.clj:2775)
        at clojure.lang.RestFn.invoke(RestFn.java:423)
        at mutant.core$run.invokeStatic(core.clj:9)
        at mutant.core$run.invoke(core.clj:6)
        at user$eval3735$fn__3744.invoke(form-init4812278696648608213.clj:1)
        at user$eval3735.invokeStatic(form-init4812278696648608213.clj:1)
        at user$eval3735.invoke(form-init4812278696648608213.clj:1)
        at clojure.lang.Compiler.eval(Compiler.java:7062)
        at clojure.lang.Compiler.eval(Compiler.java:7052)
        at clojure.lang.Compiler.eval(Compiler.java:7052)
        at clojure.lang.Compiler.load(Compiler.java:7514)
        ... 12 more
@MichaelBlume
Copy link

+1

@jstepien
Copy link
Owner

Thanks for filing the issue @NoahTheDuke. I can reproduce it, but I'm having difficulty determining the reason of this behaviour. The project you referenced is quite complex. Would you be so kind and distill it into a minimal example reproducing the erroneous behaviour?

@MichaelBlume
Copy link

I had this problem as well -- my best guess was that a mutation in a macro might be producing an infinite form?

pithyless added a commit to pithyless/mutant that referenced this issue Mar 31, 2019
Bumping rewrite-clj to 0.6.1 seems to resolve
jstepien#5
@piotr-yuxuan
Copy link

+1

1 similar comment
@piotr-yuxuan
Copy link

+1

@piotr-yuxuan
Copy link

:'(

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants