laurilehmijoki / s3_website

Manage an S3 website: sync, deliver via CloudFront, benefit from advanced S3 website features.
Other
2.24k stars 187 forks source link

Too many open files error #308

Open joeyvmason opened 6 years ago

joeyvmason commented 6 years ago

We've been encountering this error sporadically for months. It definitely helps to set the concurrency level to 1 (as suggested by #8), but that does not completely resolve the issue.

[fail] Failed to upload lib/bootstrap/dist/js/bootstrap.js.map (/home/rof/src/github.com/joeyvmason/test-website/./lib/bootstrap/dist/js/bootstrap.js.map (Too many open files)
java.io.FileInputStream.open(Native Method)
java.io.FileInputStream.<init>(FileInputStream.java:146)
org.apache.tika.io.TikaInputStream.<init>(TikaInputStream.java:444)
org.apache.tika.io.TikaInputStream.get(TikaInputStream.java:231)
org.apache.tika.io.TikaInputStream.get(TikaInputStream.java:365)
org.apache.tika.Tika.detect(Tika.java:265)
org.apache.tika.Tika.detect(Tika.java:248)
s3.website.model.Upload$$anonfun$contentType$1$$anonfun$6.apply(push.scala:75)
s3.website.model.Upload$$anonfun$contentType$1$$anonfun$6.apply(push.scala:75)
scala.Option.getOrElse(Option.scala:121)
s3.website.model.Upload$$anonfun$contentType$1.apply(push.scala:75)
s3.website.model.Upload$$anonfun$contentType$1.apply(push.scala:60)
scala.util.Success$$anonfun$map$1.apply(Try.scala:237)
scala.util.Try$.apply(Try.scala:192)
scala.util.Success.map(Try.scala:237)
s3.website.model.Upload.contentType$lzycompute(push.scala:60)
s3.website.model.Upload.contentType(push.scala:60)
s3.website.S3$$anonfun$toPutObjectRequest$1$$anonfun$apply$3.apply(S3.scala:69)
s3.website.S3$$anonfun$toPutObjectRequest$1$$anonfun$apply$3.apply(S3.scala:68)
scala.util.Success.flatMap(Try.scala:231)
s3.website.S3$$anonfun$toPutObjectRequest$1.apply(S3.scala:68)
s3.website.S3$$anonfun$toPutObjectRequest$1.apply(S3.scala:66)
scala.util.Either.fold(Either.scala:98)
s3.website.S3$.toPutObjectRequest(S3.scala:65)
s3.website.S3$$anonfun$uploadToS3$1.apply(S3.scala:32)
s3.website.S3$$anonfun$uploadToS3$1.apply(S3.scala:31)
scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:622)
java.lang.Thread.run(Thread.java:748))

I'm going to do some more investigation, but I have a feeling the issue is that the file streams are not being closed properly.