qark icon indicating copy to clipboard operation
qark copied to clipboard

RuntimeError: maximum recursion depth exceeded in __instancecheck__

Open jchau207 opened this issue 5 years ago • 2 comments

After decompiling, "Running scans" immediatly failed with maximum recursion depth. :

Traceback (most recent call last):
  File "/usr/local/bin/qark", line 8, in <module>
    sys.exit(cli())
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 722, in __call__
    return self.main(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 697, in main
    rv = self.invoke(ctx)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 895, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/usr/local/lib/python2.7/site-packages/click/core.py", line 535, in invoke
    return callback(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/click/decorators.py", line 17, in new_func
    return f(get_current_context(), *args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/qark/qark.py", line 90, in cli
    scanner.run()
  File "/usr/local/lib/python2.7/site-packages/qark/scanner/scanner.py", line 64, in run
    self._run_checks(plugins)
  File "/usr/local/lib/python2.7/site-packages/qark/scanner/scanner.py", line 78, in _run_checks
    current_file_subject.notify(filepath)
  File "/usr/local/lib/python2.7/site-packages/qark/scanner/scanner.py", line 125, in notify
    observer.update(file_path, call_run=True)
  File "/usr/local/lib/python2.7/site-packages/qark/scanner/plugin.py", line 239, in update
    super(CoroutinePlugin, self).update(file_path)
  File "/usr/local/lib/python2.7/site-packages/qark/scanner/plugin.py", line 185, in update
    JavaASTPlugin.java_ast = javalang.parse.parse(self.file_contents)
  File "/usr/local/lib/python2.7/site-packages/javalang/parse.py", line 53, in parse
    return parser.parse()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 110, in parse
    return self.parse_compilation_unit()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 302, in parse_compilation_unit
    type_declaration = self.parse_type_declaration()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 347, in parse_type_declaration
    return self.parse_class_or_interface_declaration()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 356, in parse_class_or_interface_declaration
    type_declaration = self.parse_normal_class_declaration()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 394, in parse_normal_class_declaration
    body = self.parse_class_body()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 768, in parse_class_body
    declaration = self.parse_class_body_declaration()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 791, in parse_class_body_declaration
    return self.parse_member_declaration()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 801, in parse_member_declaration
    member = self.parse_void_method_declarator_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 905, in parse_void_method_declarator_rest
    body = self.parse_block()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1274, in parse_block
    statement = self.parse_block_statement()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1349, in parse_block_statement
    return self.parse_statement()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1520, in parse_statement
    expression = self.parse_expression()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1752, in parse_expression
    expressionl = self.parse_expressionl()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1767, in parse_expressionl
    expression_2 = self.parse_expression_2()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1793, in parse_expression_2
    expression_3 = self.parse_expression_3()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1849, in parse_expression_3
    primary = self.parse_primary()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1975, in parse_primary
    identifier_suffix = self.parse_identifier_suffix()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2163, in parse_identifier_suffix
    arguments = self.parse_arguments()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2025, in parse_arguments
    expression = self.parse_expression()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1752, in parse_expression
    expressionl = self.parse_expressionl()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1767, in parse_expressionl
    expression_2 = self.parse_expression_2()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1793, in parse_expression_2
    expression_3 = self.parse_expression_3()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1842, in parse_expression_3
    expression = self.parse_expression_3()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1849, in parse_expression_3
    primary = self.parse_primary()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1933, in parse_primary
    return self.parse_par_expression()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2010, in parse_par_expression
    expression = self.parse_expression()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1752, in parse_expression
    expressionl = self.parse_expressionl()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1767, in parse_expressionl
    expression_2 = self.parse_expression_2()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1793, in parse_expression_2
    expression_3 = self.parse_expression_3()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1849, in parse_expression_3
    primary = self.parse_primary()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1951, in parse_primary
    return self.parse_creator()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2099, in parse_creator
    arguments, body = self.parse_class_creator_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2130, in parse_class_creator_rest
    class_body = self.parse_class_body()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 768, in parse_class_body
    declaration = self.parse_class_body_declaration()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 791, in parse_class_body_declaration
    return self.parse_member_declaration()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 825, in parse_member_declaration
    member = self.parse_method_or_field_declaraction()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 839, in parse_method_or_field_declaraction
    member = self.parse_method_or_field_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 857, in parse_method_or_field_rest
    return self.parse_method_declarator_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 886, in parse_method_declarator_rest
    body = self.parse_block()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1274, in parse_block
    statement = self.parse_block_statement()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1345, in parse_block_statement
    statement = self.parse_local_variable_declaration_statement()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1355, in parse_local_variable_declaration_statement
    declarators = self.parse_variable_declarators()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1207, in parse_variable_declarators
    declarator = self.parse_variable_declarator()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1218, in parse_variable_declarator
    array_dimension, initializer = self.parse_variable_declarator_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1230, in parse_variable_declarator_rest
    initializer = self.parse_variable_initializer()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1239, in parse_variable_initializer
    return self.parse_expression()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1752, in parse_expression
    expressionl = self.parse_expressionl()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1767, in parse_expressionl
    expression_2 = self.parse_expression_2()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1793, in parse_expression_2
    expression_3 = self.parse_expression_3()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1849, in parse_expression_3
    primary = self.parse_primary()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1951, in parse_primary
    return self.parse_creator()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2099, in parse_creator
    arguments, body = self.parse_class_creator_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2130, in parse_class_creator_rest
    class_body = self.parse_class_body()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 768, in parse_class_body
    declaration = self.parse_class_body_declaration()
File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 791, in parse_class_body_declaration
    return self.parse_member_declaration()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 825, in parse_member_declaration
    member = self.parse_method_or_field_declaraction()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 839, in parse_method_or_field_declaraction
    member = self.parse_method_or_field_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 857, in parse_method_or_field_rest
    return self.parse_method_declarator_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 886, in parse_method_declarator_rest
    body = self.parse_block()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1274, in parse_block
    statement = self.parse_block_statement()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1345, in parse_block_statement
    statement = self.parse_local_variable_declaration_statement()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1355, in parse_local_variable_declaration_statement
    declarators = self.parse_variable_declarators()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1207, in parse_variable_declarators
    declarator = self.parse_variable_declarator()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1218, in parse_variable_declarator
    array_dimension, initializer = self.parse_variable_declarator_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1230, in parse_variable_declarator_rest
    initializer = self.parse_variable_initializer()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1239, in parse_variable_initializer
    return self.parse_expression()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1752, in parse_expression
    expressionl = self.parse_expressionl()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1767, in parse_expressionl
    expression_2 = self.parse_expression_2()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1793, in parse_expression_2
    expression_3 = self.parse_expression_3()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1849, in parse_expression_3
    primary = self.parse_primary()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1951, in parse_primary
    return self.parse_creator()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2099, in parse_creator
    arguments, body = self.parse_class_creator_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2130, in parse_class_creator_rest
    class_body = self.parse_class_body()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 768, in parse_class_body
    declaration = self.parse_class_body_declaration()

...

File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 791, in parse_class_body_declaration
    return self.parse_member_declaration()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 825, in parse_member_declaration
    member = self.parse_method_or_field_declaraction()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 839, in parse_method_or_field_declaraction
    member = self.parse_method_or_field_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 857, in parse_method_or_field_rest
    return self.parse_method_declarator_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 886, in parse_method_declarator_rest
    body = self.parse_block()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1274, in parse_block
    statement = self.parse_block_statement()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1345, in parse_block_statement
    statement = self.parse_local_variable_declaration_statement()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1355, in parse_local_variable_declaration_statement
    declarators = self.parse_variable_declarators()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1207, in parse_variable_declarators
    declarator = self.parse_variable_declarator()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1218, in parse_variable_declarator
    array_dimension, initializer = self.parse_variable_declarator_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1230, in parse_variable_declarator_rest
    initializer = self.parse_variable_initializer()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1239, in parse_variable_initializer
    return self.parse_expression()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1752, in parse_expression
    expressionl = self.parse_expressionl()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1767, in parse_expressionl
    expression_2 = self.parse_expression_2()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1793, in parse_expression_2
    expression_3 = self.parse_expression_3()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1849, in parse_expression_3
    primary = self.parse_primary()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1951, in parse_primary
    return self.parse_creator()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2099, in parse_creator
    arguments, body = self.parse_class_creator_rest()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2126, in parse_class_creator_rest
    arguments = self.parse_arguments()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 2025, in parse_arguments
    expression = self.parse_expression()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1752, in parse_expression
    expressionl = self.parse_expressionl()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1767, in parse_expressionl
    expression_2 = self.parse_expression_2()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1793, in parse_expression_2
    expression_3 = self.parse_expression_3()
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 1829, in parse_expression_3
    if self.would_accept('('):
  File "/usr/local/lib/python2.7/site-packages/javalang/parser.py", line 146, in would_accept
    if isinstance(accept, six.string_types) and (
RuntimeError: maximum recursion depth exceeded in __instancecheck__

Also during decompilation, there is this stack over flow error that keeps popping up:

Method create (Ljava/lang/Object;Lkotlin/coroutines/Continuation;)Lkotlin/coroutines/Continuation; couldn't be written.
java.lang.StackOverflowError
	at java.io.PrintStream.write(PrintStream.java:526)
	at java.io.PrintStream.print(PrintStream.java:669)
	at java.io.PrintStream.println(PrintStream.java:806)
	at org.jetbrains.java.decompiler.main.decompiler.PrintStreamLogger.writeMessage(PrintStreamLogger.java:22)
	at org.jetbrains.java.decompiler.main.decompiler.PrintStreamLogger.writeMessage(PrintStreamLogger.java:29)
	at org.jetbrains.java.decompiler.main.ClassWriter.methodToJava(ClassWriter.java:829)
	at org.jetbrains.java.decompiler.main.ClassWriter.classToJava(ClassWriter.java:213)
	at org.jetbrains.java.decompiler.modules.decompiler.exps.NewExprent.toJava(NewExprent.java:230)
	at org.jetbrains.java.decompiler.modules.decompiler.exps.AssignmentExprent.toJava(AssignmentExprent.java:133)
	at org.jetbrains.java.decompiler.modules.decompiler.ExprProcessor.listToJava(ExprProcessor.java:809)
	at org.jetbrains.java.decompiler.modules.decompiler.stats.BasicBlockStatement.toJava(BasicBlockStatement.java:59)
	at org.jetbrains.java.decompiler.modules.decompiler.stats.RootStatement.toJava(RootStatement.java:23)
	at org.jetbrains.java.decompiler.main.ClassWriter.methodToJava(ClassWriter.java:818)
	at org.jetbrains.java.decompiler.main.ClassWriter.classToJava(ClassWriter.java:213)
	at org.jetbrains.java.decompiler.modules.decompiler.exps.NewExprent.toJava(NewExprent.java:230)
	at org.jetbrains.java.decompiler.modules.decompiler.exps.AssignmentExprent.toJava(AssignmentExprent.java:133)
	at org.jetbrains.java.decompiler.modules.decompiler.ExprProcessor.listToJava(ExprProcessor.java:809)
	at org.jetbrains.java.decompiler.modules.decompiler.stats.BasicBlockStatement.toJava(BasicBlockStatement.java:59)
	at org.jetbrains.java.decompiler.modules.decompiler.stats.RootStatement.toJava(RootStatement.java:23)
	at org.jetbrains.java.decompiler.main.ClassWriter.methodToJava(ClassWriter.java:818)
	at org.jetbrains.java.decompiler.main.ClassWriter.classToJava(ClassWriter.java:213)

....

jchau207 avatar Jan 08 '20 07:01 jchau207

Facing same issue. Any solution to this?

mukut007 avatar Aug 27 '20 02:08 mukut007

Any updates on this? Also facing same issue.

joseph-acc avatar Apr 02 '21 19:04 joseph-acc