-
Notifications
You must be signed in to change notification settings - Fork 2k
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
Crash on infer -- gradlew veryLargeJavaProject #22
Comments
I see something similar with a not-very-large Maven Java project with many dependencies on Mac OS X 10.8: Fatal error: exception Sys_error("/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-elasticbeanstalk/1.9.4/aws-java-sdk-elasticbeanstalk-1.9.4.jar: Too many open files")
[ERROR] Failure during frontend, original command was
[u'inferJ', u'-g', u'-a', 'capture', u'javac', '-d', '/Users/ian/workspace/my-project/target/classes', '-classpath', '/Users/ian/workspace/my-project/target/classes:/Users/ian/.m2/repository/org/springframework/boot/spring-boot-starter-web/1.1.9.RELEASE/spring-boot-starter-web-1.1.9.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/boot/spring-boot-starter/1.1.9.RELEASE/spring-boot-starter-1.1.9.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/boot/spring-boot/1.1.9.RELEASE/spring-boot-1.1.9.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/boot/spring-boot-autoconfigure/1.1.9.RELEASE/spring-boot-autoconfigure-1.1.9.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/boot/spring-boot-starter-logging/1.1.9.RELEASE/spring-boot-starter-logging-1.1.9.RELEASE.jar:/Users/ian/.m2/repository/org/slf4j/jcl-over-slf4j/1.7.7/jcl-over-slf4j-1.7.7.jar:/Users/ian/.m2/repository/org/slf4j/jul-to-slf4j/1.7.7/jul-to-slf4j-1.7.7.jar:/Users/ian/.m2/repository/org/slf4j/log4j-over-slf4j/1.7.7/log4j-over-slf4j-1.7.7.jar:/Users/ian/.m2/repository/ch/qos/logback/logback-classic/1.1.2/logback-classic-1.1.2.jar:/Users/ian/.m2/repository/ch/qos/logback/logback-core/1.1.2/logback-core-1.1.2.jar:/Users/ian/.m2/repository/org/springframework/boot/spring-boot-starter-tomcat/1.1.9.RELEASE/spring-boot-starter-tomcat-1.1.9.RELEASE.jar:/Users/ian/.m2/repository/org/apache/tomcat/embed/tomcat-embed-core/7.0.56/tomcat-embed-core-7.0.56.jar:/Users/ian/.m2/repository/org/apache/tomcat/embed/tomcat-embed-el/7.0.56/tomcat-embed-el-7.0.56.jar:/Users/ian/.m2/repository/org/apache/tomcat/embed/tomcat-embed-logging-juli/7.0.56/tomcat-embed-logging-juli-7.0.56.jar:/Users/ian/.m2/repository/org/apache/tomcat/embed/tomcat-embed-websocket/7.0.56/tomcat-embed-websocket-7.0.56.jar:/Users/ian/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.3.4/jackson-databind-2.3.4.jar:/Users/ian/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.3.4/jackson-annotations-2.3.4.jar:/Users/ian/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.3.4/jackson-core-2.3.4.jar:/Users/ian/.m2/repository/org/hibernate/hibernate-validator/5.0.3.Final/hibernate-validator-5.0.3.Final.jar:/Users/ian/.m2/repository/javax/validation/validation-api/1.1.0.Final/validation-api-1.1.0.Final.jar:/Users/ian/.m2/repository/org/jboss/logging/jboss-logging/3.1.1.GA/jboss-logging-3.1.1.GA.jar:/Users/ian/.m2/repository/org/springframework/spring-core/4.0.8.RELEASE/spring-core-4.0.8.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/spring-web/4.0.8.RELEASE/spring-web-4.0.8.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/spring-webmvc/4.0.8.RELEASE/spring-webmvc-4.0.8.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/boot/spring-boot-starter-actuator/1.1.9.RELEASE/spring-boot-starter-actuator-1.1.9.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/boot/spring-boot-actuator/1.1.9.RELEASE/spring-boot-actuator-1.1.9.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/boot/spring-boot-starter-security/1.1.9.RELEASE/spring-boot-starter-security-1.1.9.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/spring-beans/4.0.8.RELEASE/spring-beans-4.0.8.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/spring-context/4.0.8.RELEASE/spring-context-4.0.8.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/spring-expression/4.0.8.RELEASE/spring-expression-4.0.8.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/security/spring-security-config/3.2.5.RELEASE/spring-security-config-3.2.5.RELEASE.jar:/Users/ian/.m2/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar:/Users/ian/.m2/repository/org/springframework/security/spring-security-core/3.2.5.RELEASE/spring-security-core-3.2.5.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/security/spring-security-web/3.2.5.RELEASE/spring-security-web-3.2.5.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/spring-aop/4.0.8.RELEASE/spring-aop-4.0.8.RELEASE.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk/1.9.4/aws-java-sdk-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-elastictranscoder/1.9.4/aws-java-sdk-elastictranscoder-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-core/1.9.4/aws-java-sdk-core-1.9.4.jar:/Users/ian/.m2/repository/commons-logging/commons-logging/1.1.3/commons-logging-1.1.3.jar:/Users/ian/.m2/repository/org/apache/httpcomponents/httpclient/4.3.6/httpclient-4.3.6.jar:/Users/ian/.m2/repository/org/apache/httpcomponents/httpcore/4.3.3/httpcore-4.3.3.jar:/Users/ian/.m2/repository/commons-codec/commons-codec/1.6/commons-codec-1.6.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-cognitoidentity/1.9.4/aws-java-sdk-cognitoidentity-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-redshift/1.9.4/aws-java-sdk-redshift-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-ses/1.9.4/aws-java-sdk-ses-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-route53/1.9.4/aws-java-sdk-route53-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-rds/1.9.4/aws-java-sdk-rds-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-cloudtrail/1.9.4/aws-java-sdk-cloudtrail-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-cloudsearch/1.9.4/aws-java-sdk-cloudsearch-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-swf-libraries/1.9.4/aws-java-sdk-swf-libraries-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-simpleworkflow/1.9.4/aws-java-sdk-simpleworkflow-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-datapipeline/1.9.4/aws-java-sdk-datapipeline-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-storagegateway/1.9.4/aws-java-sdk-storagegateway-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-glacier/1.9.4/aws-java-sdk-glacier-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-sqs/1.9.4/aws-java-sdk-sqs-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-sns/1.9.4/aws-java-sdk-sns-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-s3/1.9.4/aws-java-sdk-s3-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-emr/1.9.4/aws-java-sdk-emr-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-cloudwatchmetrics/1.9.4/aws-java-sdk-cloudwatchmetrics-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-cloudwatch/1.9.4/aws-java-sdk-cloudwatch-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-dynamodb/1.9.4/aws-java-sdk-dynamodb-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-logs/1.9.4/aws-java-sdk-logs-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-support/1.9.4/aws-java-sdk-support-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-ec2/1.9.4/aws-java-sdk-ec2-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-elasticbeanstalk/1.9.4/aws-java-sdk-elasticbeanstalk-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-simpledb/1.9.4/aws-java-sdk-simpledb-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-cognitosync/1.9.4/aws-java-sdk-cognitosync-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-cloudfront/1.9.4/aws-java-sdk-cloudfront-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-elasticache/1.9.4/aws-java-sdk-elasticache-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-importexport/1.9.4/aws-java-sdk-importexport-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-opsworks/1.9.4/aws-java-sdk-opsworks-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-elasticloadbalancing/1.9.4/aws-java-sdk-elasticloadbalancing-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-autoscaling/1.9.4/aws-java-sdk-autoscaling-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-kinesis/1.9.4/aws-java-sdk-kinesis-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-cloudformation/1.9.4/aws-java-sdk-cloudformation-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-sts/1.9.4/aws-java-sdk-sts-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-directconnect/1.9.4/aws-java-sdk-directconnect-1.9.4.jar:/Users/ian/.m2/repository/com/amazonaws/aws-java-sdk-iam/1.9.4/aws-java-sdk-iam-1.9.4.jar:/Users/ian/.m2/repository/io/swagger/swagger-jaxrs/1.5.0/swagger-jaxrs-1.5.0.jar:/Users/ian/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-yaml/2.4.2/jackson-dataformat-yaml-2.4.2.jar:/Users/ian/.m2/repository/com/fasterxml/jackson/dataformat/jackson-dataformat-xml/2.4.2/jackson-dataformat-xml-2.4.2.jar:/Users/ian/.m2/repository/com/fasterxml/jackson/module/jackson-module-jaxb-annotations/2.4.2/jackson-module-jaxb-annotations-2.4.2.jar:/Users/ian/.m2/repository/org/codehaus/woodstox/stax2-api/3.1.4/stax2-api-3.1.4.jar:/Users/ian/.m2/repository/io/swagger/swagger-core/1.5.0/swagger-core-1.5.0.jar:/Users/ian/.m2/repository/org/apache/commons/commons-lang3/3.2.1/commons-lang3-3.2.1.jar:/Users/ian/.m2/repository/com/fasterxml/jackson/datatype/jackson-datatype-joda/2.3.4/jackson-datatype-joda-2.3.4.jar:/Users/ian/.m2/repository/io/swagger/swagger-models/1.5.0/swagger-models-1.5.0.jar:/Users/ian/.m2/repository/io/swagger/swagger-annotations/1.5.0/swagger-annotations-1.5.0.jar:/Users/ian/.m2/repository/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar:/Users/ian/.m2/repository/org/reflections/reflections/0.9.9/reflections-0.9.9.jar:/Users/ian/.m2/repository/org/javassist/javassist/3.18.1-GA/javassist-3.18.1-GA.jar:/Users/ian/.m2/repository/com/google/code/findbugs/annotations/2.0.1/annotations-2.0.1.jar:/Users/ian/.m2/repository/com/fasterxml/jackson/jaxrs/jackson-jaxrs-json-provider/2.4.2/jackson-jaxrs-json-provider-2.4.2.jar:/Users/ian/.m2/repository/com/fasterxml/jackson/jaxrs/jackson-jaxrs-base/2.4.2/jackson-jaxrs-base-2.4.2.jar:/Users/ian/.m2/repository/io/springfox/springfox-swagger2/2.0.1/springfox-swagger2-2.0.1.jar:/Users/ian/.m2/repository/org/mapstruct/mapstruct/1.0.0.Beta4/mapstruct-1.0.0.Beta4.jar:/Users/ian/.m2/repository/com/wordnik/swagger-annotations/1.5.3-M1/swagger-annotations-1.5.3-M1.jar:/Users/ian/.m2/repository/com/wordnik/swagger-models/1.5.3-M1/swagger-models-1.5.3-M1.jar:/Users/ian/.m2/repository/io/springfox/springfox-spi/2.0.1/springfox-spi-2.0.1.jar:/Users/ian/.m2/repository/io/springfox/springfox-core/2.0.1/springfox-core-2.0.1.jar:/Users/ian/.m2/repository/io/springfox/springfox-schema/2.0.1/springfox-schema-2.0.1.jar:/Users/ian/.m2/repository/io/springfox/springfox-swagger-common/2.0.1/springfox-swagger-common-2.0.1.jar:/Users/ian/.m2/repository/io/springfox/springfox-spring-web/2.0.1/springfox-spring-web-2.0.1.jar:/Users/ian/.m2/repository/com/google/guava/guava/18.0/guava-18.0.jar:/Users/ian/.m2/repository/com/fasterxml/classmate/1.1.0/classmate-1.1.0.jar:/Users/ian/.m2/repository/org/slf4j/slf4j-api/1.7.7/slf4j-api-1.7.7.jar:/Users/ian/.m2/repository/joda-time/joda-time/2.3/joda-time-2.3.jar:/Users/ian/.m2/repository/org/springframework/plugin/spring-plugin-core/1.2.0.RELEASE/spring-plugin-core-1.2.0.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/plugin/spring-plugin-metadata/1.2.0.RELEASE/spring-plugin-metadata-1.2.0.RELEASE.jar:/Users/ian/.m2/repository/org/springframework/hateoas/spring-hateoas/0.16.0.RELEASE/spring-hateoas-0.16.0.RELEASE.jar:/Users/ian/.m2/repository/org/objenesis/objenesis/2.1/objenesis-2.1.jar:/Users/ian/.m2/repository/io/springfox/springfox-swagger-ui/2.0.1/springfox-swagger-ui-2.0.1.jar:/Users/ian/.m2/repository/org/projectlombok/lombok/1.14.8/lombok-1.14.8.jar:', '-sourcepath', '/Users/ian/workspace/my-project/src/main/java:/Users/ian/workspace/my-project/target/generated-sources/annotations:', '-s', '/Users/ian/workspace/my-project/target/generated-sources/annotations', '-g', '-nowarn', '-target', '1.8', '-source', '1.8', '-encoding', 'UTF-8', '/Users/ian/workspace/my-project/src/main/java/com/example/myproject/ExampleClass.java']
Traceback (most recent call last):
File "/Users/ian/Downloads/infer-osx-v0.1.0/infer/infer/bin/infer", line 142, in <module>
main()
File "/Users/ian/Downloads/infer-osx-v0.1.0/infer/infer/bin/infer", line 119, in main
capture_exitcode = imported_module.gen_instance(args, cmd).capture()
File "/Users/ian/Downloads/infer-osx-v0.1.0/infer/infer/bin/../lib/capture/mvn.py", line 59, in capture
return util.run_commands(cmds)
File "/Users/ian/Downloads/infer-osx-v0.1.0/infer/infer/bin/../lib/capture/util.py", line 34, in run_commands
if not cmd.start():
File "/Users/ian/Downloads/infer-osx-v0.1.0/infer/infer/bin/inferlib.py", line 632, in start
if self.capture() == os.EX_OK:
File "/Users/ian/Downloads/infer-osx-v0.1.0/infer/infer/bin/inferlib.py", line 400, in capture
return self.run_infer_frontend()
File "/Users/ian/Downloads/infer-osx-v0.1.0/infer/infer/bin/inferlib.py", line 391, in run_infer_frontend
self.args.analyzer
File "/Users/ian/Downloads/infer-osx-v0.1.0/infer/infer/bin/inferlib.py", line 318, in run_command
raise e
subprocess.CalledProcessError: Command '[u'/Users/ian/Downloads/infer-osx-v0.1.0/infer/infer/bin/InferJava', u'-results_dir', u'/Users/ian/workspace/my-project/infer-out', u'-verbose_out', '/var/folders/2l/wcldlljn1kdg4387y0589850_gjkdp/T/javac_SM4qv_.out', u'-models', u'/Users/ian/Downloads/infer-osx-v0.1.0/infer/infer/bin/../lib/java/models.jar', u'-no-static_final']' returned non-zero exit status 2 |
Apparently I faced a similar problem. The target Android project is relatively large with a bunch of dependencies in it.
|
@maxponte thank you for reporting. Indeed, we haven't tested our gradle extension on large builds. If you look around the Traceback you sent us, do you see inferJ with a lot of parameters? |
@akotulski I have the same issue. Here is my output. It seems something doesn't like like my class name
|
@jetherton you are hitting different issue - we are working on fixing that one: |
I mentioned this in #38 since I found it first, but reposting here. The We had the same issue with our projects, and after adjusting the files as described here for OSX we didn't get the issue anymore. |
@clinejj: that fixed my problem. Thanks! For the lazy:
With this method, upon the next reboot, the kern.maxfiles will go back to the default value. |
@akotulski, I have another crash in 0.11
|
@FreddieMigme: this looks unrelated. Can you please open a new issue? Thanks for the report! |
Thanks! Will take a look at that one. |
Summary: The current way gradle plugin works is by parsing the verbose output to figure out which files to compile. This becomes a problem when the number of files exceed allowed argument parameter length. Use javac's @sources file instead. This patch will leave the tempfiles behind (also noted by Jyrki during the review), however I would like to leave that to a follow up commit and first make sure the tool works for people experiencing this problem. Fixes #22 Closes #131 Github Author: =?UTF-8?q?Deniz=20T=C3=BCrkoglu?= <deniz@spotify.com>
still have this problem,Infer version git-712d27b5445da91cffad410ca71d31135f351259 |
Traceback (most recent call last):
File "/Users/mponte/infer-0.1.0/infer/bin/infer", line 142, in
main()
File "/Users/mponte/infer-0.1.0/infer/bin/infer", line 119, in main
capture_exitcode = imported_module.gen_instance(args, cmd).capture()
File "/Users/mponte/infer-0.1.0/infer/bin/../lib/capture/gradle.py", line 42, in capture
return util.run_commands(cmds)
File "/Users/mponte/infer-0.1.0/infer/bin/../lib/capture/util.py", line 34, in run_commands
if not cmd.start():
File "/Users/mponte/infer-0.1.0/infer/bin/inferlib.py", line 632, in start
if self.capture() == os.EX_OK:
File "/Users/mponte/infer-0.1.0/infer/bin/inferlib.py", line 398, in capture
javac_status = self.compile()
File "/Users/mponte/infer-0.1.0/infer/bin/inferlib.py", line 395, in compile
return self.javac.run()
File "/Users/mponte/infer-0.1.0/infer/bin/jwlib.py", line 44, in run
subprocess.check_call(javac_cmd, stderr=file_out)
File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 535, in check_call
retcode = call(_popenargs, *_kwargs)
File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 522, in call
return Popen(_popenargs, *_kwargs).wait()
File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in init
errread, errwrite)
File "/usr/local/Cellar/python/2.7.10/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
raise child_exception
OSError: [Errno 7] Argument list too long
I'm thinking this might have something to do with infer being untested on very large builds?
The text was updated successfully, but these errors were encountered: