{"action":"created","issue":{"url":"https://api.github.com/repos/os72/protoc-jar/issues/8","labels_url":"https://api.github.com/repos/os72/protoc-jar/issues/8/labels{/name}","comments_url":"https://api.github.com/repos/os72/protoc-jar/issues/8/comments","events_url":"https://api.github.com/repos/os72/protoc-jar/issues/8/events","html_url":"https://github.com/os72/protoc-jar/issues/8","id":128367896,"number":8,"title":"Text file busy","user":{"login":"prettynatty","id":107261,"avatar_url":"https://avatars.githubusercontent.com/u/107261?v=3","gravatar_id":"","url":"https://api.github.com/users/prettynatty","html_url":"https://github.com/prettynatty","followers_url":"https://api.github.com/users/prettynatty/followers","following_url":"https://api.github.com/users/prettynatty/following{/other_user}","gists_url":"https://api.github.com/users/prettynatty/gists{/gist_id}","starred_url":"https://api.github.com/users/prettynatty/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/prettynatty/subscriptions","organizations_url":"https://api.github.com/users/prettynatty/orgs","repos_url":"https://api.github.com/users/prettynatty/repos","events_url":"https://api.github.com/users/prettynatty/events{/privacy}","received_events_url":"https://api.github.com/users/prettynatty/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-01-24T02:32:59Z","updated_at":"2016-01-28T17:30:07Z","closed_at":null,"body":"Sometimes (~50% of builds) on our build server are failed because of ther following error:\r\n\r\n```\r\n[05:21:29][Step 1/1] Caused by: java.io.IOException: Cannot run program \"/tmp/protoc7238484964672343287.exe\": error=26, Text file busy\r\n[05:21:29][Step 1/1] \tat java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)\r\n[05:21:29][Step 1/1] \tat com.github.os72.protocjar.Protoc.runProtoc(Protoc.java:69)\r\n[05:21:29][Step 1/1] \tat com.github.os72.protocjar.Protoc.runProtoc(Protoc.java:53)\r\n[05:21:29][Step 1/1] \tat im.actor.Build$$anonfun$defaultSettingsServer$5$$anonfun$apply$2.apply(Build.scala:74)\r\n[05:21:29][Step 1/1] \tat im.actor.Build$$anonfun$defaultSettingsServer$5$$anonfun$apply$2.apply(Build.scala:73)\r\n[05:21:29][Step 1/1] \tat com.trueaccord.scalapb.compiler.PosixProtocDriver.buildRunner(Process.scala:69)\r\n[05:21:29][Step 1/1] \tat com.trueaccord.scalapb.ScalaPbPlugin$$anonfun$10$$anonfun$apply$2.apply(ScalaPbPlugin.scala:54)\r\n[05:21:29][Step 1/1] \tat com.trueaccord.scalapb.ScalaPbPlugin$$anonfun$10$$anonfun$apply$2.apply(ScalaPbPlugin.scala:54)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$.executeProtoc(ProtobufPlugin.scala:68)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$.sbtprotobuf$ProtobufPlugin$$compile(ProtobufPlugin.scala:86)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$$anonfun$sourceGeneratorTask$1$$anonfun$5.apply(ProtobufPlugin.scala:115)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$$anonfun$sourceGeneratorTask$1$$anonfun$5.apply(ProtobufPlugin.scala:114)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$1.apply(Tracked.scala:235)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$1.apply(Tracked.scala:235)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2$$anonfun$apply$3$$anonfun$apply$4.apply(Tracked.scala:249)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2$$anonfun$apply$3$$anonfun$apply$4.apply(Tracked.scala:245)\r\n[05:21:29][Step 1/1] \tat sbt.Difference.apply(Tracked.scala:224)\r\n[05:21:29][Step 1/1] \tat sbt.Difference.apply(Tracked.scala:206)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2$$anonfun$apply$3.apply(Tracked.scala:245)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2$$anonfun$apply$3.apply(Tracked.scala:244)\r\n[05:21:29][Step 1/1] \tat sbt.Difference.apply(Tracked.scala:224)\r\n[05:21:29][Step 1/1] \tat sbt.Difference.apply(Tracked.scala:200)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2.apply(Tracked.scala:244)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2.apply(Tracked.scala:242)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$$anonfun$sourceGeneratorTask$1.apply(ProtobufPlugin.scala:117)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$$anonfun$sourceGeneratorTask$1.apply(ProtobufPlugin.scala:112)\r\n[05:21:29][Step 1/1] \tat scala.Function9$$anonfun$tupled$1.apply(Function9.scala:35)\r\n[05:21:29][Step 1/1] \tat scala.Function9$$anonfun$tupled$1.apply(Function9.scala:34)\r\n[05:21:29][Step 1/1] \tat scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)\r\n[05:21:29][Step 1/1] \tat sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)\r\n[05:21:29][Step 1/1] \tat sbt.std.Transform$$anon$4.work(System.scala:63)\r\n[05:21:29][Step 1/1] \tat sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)\r\n[05:21:29][Step 1/1] \tat sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)\r\n[05:21:29][Step 1/1] \tat sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)\r\n[05:21:29][Step 1/1] \tat sbt.Execute.work(Execute.scala:235)\r\n[05:21:29][Step 1/1] \tat sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)\r\n[05:21:29][Step 1/1] \tat sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)\r\n[05:21:29][Step 1/1] \tat sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)\r\n[05:21:29][Step 1/1] \tat sbt.CompletionService$$anon$2.call(CompletionService.scala:28)\r\n[05:21:29][Step 1/1] \tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\r\n[05:21:29][Step 1/1] \tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\r\n[05:21:29][Step 1/1] \tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\r\n[05:21:29][Step 1/1] \tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n[05:21:29][Step 1/1] \tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n[05:21:29][Step 1/1] \tat java.lang.Thread.run(Thread.java:745)\r\n[05:21:29][Step 1/1] Caused by: java.io.IOException: error=26, Text file busy\r\n[05:21:29][Step 1/1] \tat java.lang.UNIXProcess.forkAndExec(Native Method)\r\n[05:21:29][Step 1/1] \tat java.lang.UNIXProcess.<init>(UNIXProcess.java:248)\r\n[05:21:29][Step 1/1] \tat java.lang.ProcessImpl.start(ProcessImpl.java:134)\r\n[05:21:29][Step 1/1] \tat java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)\r\n[05:21:29][Step 1/1] \tat com.github.os72.protocjar.Protoc.runProtoc(Protoc.java:69)\r\n[05:21:29][Step 1/1] \tat com.github.os72.protocjar.Protoc.runProtoc(Protoc.java:53)\r\n[05:21:29][Step 1/1] \tat im.actor.Build$$anonfun$defaultSettingsServer$5$$anonfun$apply$2.apply(Build.scala:74)\r\n[05:21:29][Step 1/1] \tat im.actor.Build$$anonfun$defaultSettingsServer$5$$anonfun$apply$2.apply(Build.scala:73)\r\n[05:21:29][Step 1/1] \tat com.trueaccord.scalapb.compiler.PosixProtocDriver.buildRunner(Process.scala:69)\r\n[05:21:29][Step 1/1] \tat com.trueaccord.scalapb.ScalaPbPlugin$$anonfun$10$$anonfun$apply$2.apply(ScalaPbPlugin.scala:54)\r\n[05:21:29][Step 1/1] \tat com.trueaccord.scalapb.ScalaPbPlugin$$anonfun$10$$anonfun$apply$2.apply(ScalaPbPlugin.scala:54)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$.executeProtoc(ProtobufPlugin.scala:68)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$.sbtprotobuf$ProtobufPlugin$$compile(ProtobufPlugin.scala:86)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$$anonfun$sourceGeneratorTask$1$$anonfun$5.apply(ProtobufPlugin.scala:115)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$$anonfun$sourceGeneratorTask$1$$anonfun$5.apply(ProtobufPlugin.scala:114)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$1.apply(Tracked.scala:235)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$1.apply(Tracked.scala:235)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2$$anonfun$apply$3$$anonfun$apply$4.apply(Tracked.scala:249)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2$$anonfun$apply$3$$anonfun$apply$4.apply(Tracked.scala:245)\r\n[05:21:29][Step 1/1] \tat sbt.Difference.apply(Tracked.scala:224)\r\n[05:21:29][Step 1/1] \tat sbt.Difference.apply(Tracked.scala:206)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2$$anonfun$apply$3.apply(Tracked.scala:245)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2$$anonfun$apply$3.apply(Tracked.scala:244)\r\n[05:21:29][Step 1/1] \tat sbt.Difference.apply(Tracked.scala:224)\r\n[05:21:29][Step 1/1] \tat sbt.Difference.apply(Tracked.scala:200)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2.apply(Tracked.scala:244)\r\n[05:21:29][Step 1/1] \tat sbt.FileFunction$$anonfun$cached$2.apply(Tracked.scala:242)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$$anonfun$sourceGeneratorTask$1.apply(ProtobufPlugin.scala:117)\r\n[05:21:29][Step 1/1] \tat sbtprotobuf.ProtobufPlugin$$anonfun$sourceGeneratorTask$1.apply(ProtobufPlugin.scala:112)\r\n[05:21:29][Step 1/1] \tat scala.Function9$$anonfun$tupled$1.apply(Function9.scala:35)\r\n[05:21:29][Step 1/1] \tat scala.Function9$$anonfun$tupled$1.apply(Function9.scala:34)\r\n[05:21:29][Step 1/1] \tat scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)\r\n[05:21:29][Step 1/1] \tat sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:40)\r\n[05:21:29][Step 1/1] \tat sbt.std.Transform$$anon$4.work(System.scala:63)\r\n[05:21:29][Step 1/1] \tat sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)\r\n[05:21:29][Step 1/1] \tat sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:226)\r\n[05:21:29][Step 1/1] \tat sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:17)\r\n[05:21:29][Step 1/1] \tat sbt.Execute.work(Execute.scala:235)\r\n[05:21:29][Step 1/1] \tat sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)\r\n[05:21:29][Step 1/1] \tat sbt.Execute$$anonfun$submit$1.apply(Execute.scala:226)\r\n[05:21:29][Step 1/1] \tat sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:159)\r\n[05:21:29][Step 1/1] \tat sbt.CompletionService$$anon$2.call(CompletionService.scala:28)\r\n[05:21:29][Step 1/1] \tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\r\n[05:21:29][Step 1/1] \tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\r\n[05:21:29][Step 1/1] \tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\r\n[05:21:29][Step 1/1] \tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)\r\n[05:21:29][Step 1/1] \tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)\r\n[05:21:29][Step 1/1] \tat java.lang.Thread.run(Thread.java:745)\r\n```\r\n\r\nbuild server is running on Ubuntu 14.04. protoc-jar 3.0.0-b2"},"comment":{"url":"https://api.github.com/repos/os72/protoc-jar/issues/comments/176293280","html_url":"https://github.com/os72/protoc-jar/issues/8#issuecomment-176293280","issue_url":"https://api.github.com/repos/os72/protoc-jar/issues/8","id":176293280,"user":{"login":"os72","id":6581778,"avatar_url":"https://avatars.githubusercontent.com/u/6581778?v=3","gravatar_id":"","url":"https://api.github.com/users/os72","html_url":"https://github.com/os72","followers_url":"https://api.github.com/users/os72/followers","following_url":"https://api.github.com/users/os72/following{/other_user}","gists_url":"https://api.github.com/users/os72/gists{/gist_id}","starred_url":"https://api.github.com/users/os72/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/os72/subscriptions","organizations_url":"https://api.github.com/users/os72/orgs","repos_url":"https://api.github.com/users/os72/repos","events_url":"https://api.github.com/users/os72/events{/privacy}","received_events_url":"https://api.github.com/users/os72/received_events","type":"User","site_admin":false},"created_at":"2016-01-28T17:30:07Z","updated_at":"2016-01-28T17:30:07Z","body":"Looking.. It could be because I'm not closing the stream in `extractProtoc`. If I make a fix, could you make local SNAPSHOT build and help verify?"}}