Message11146

Author jamesmudd
Recipients jamesmudd
Date 2017-02-28.22:30:44
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1488321045.14.0.00231943576571.issue2559@psf.upfronthosting.co.za>
In-reply-to
Content
Just a bit more info on testing this

james@james-ubuntu:~/git/jython$ java -jar dist/jython.jar dist/Lib/test/test_marshal.py -v
test_bool (__main__.IntTestCase) ... ok
test_int64 (__main__.IntTestCase) ... ok
test_ints (__main__.IntTestCase) ... ok
test_floats (__main__.FloatTestCase) ... ok
test_string (__main__.StringTestCase) ... ok
test_unicode (__main__.StringTestCase) ... ok
test_dict (__main__.ContainerTestCase) ... ok
test_list (__main__.ContainerTestCase) ... ok
test_sets (__main__.ContainerTestCase) ... ok
test_tuple (__main__.ContainerTestCase) ... ok
test_exceptions (__main__.ExceptionTestCase) ... ok
test_bug_5888452 (__main__.BugsTestCase) ... ok
test_fuzz (__main__.BugsTestCase) ... ok
test_loads_recursion (__main__.BugsTestCase) ... ERROR
test_patch_873224 (__main__.BugsTestCase) ... ok
test_recursion_limit (__main__.BugsTestCase) ... ERROR
test_version_argument (__main__.BugsTestCase) ... ok

======================================================================
ERROR: test_loads_recursion (__main__.BugsTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "dist/Lib/test/test_marshal.py", line 232, in test_loads_recursion
    self.assertRaises(ValueError, marshal.loads, s)
  File "/home/james/git/jython/dist/Lib/unittest/case.py", line 476, in assertRaises
    callableObj(*args, **kwargs)
  File "/home/james/git/jython/dist/Lib/marshal.py", line 28, in loads
    return load(f)
  File "/home/james/git/jython/dist/Lib/marshal.py", line 19, in load
    return u.load()
RuntimeError: maximum recursion depth exceeded (Java StackOverflowError)

======================================================================
ERROR: test_recursion_limit (__main__.BugsTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "dist/Lib/test/test_marshal.py", line 244, in test_recursion_limit
    data = marshal.dumps(head)
  File "/home/james/git/jython/dist/Lib/marshal.py", line 23, in dumps
    dump(x, f, version)
  File "/home/james/git/jython/dist/Lib/marshal.py", line 12, in dump
    Marshaller(f, version).dump(x)
RuntimeError: maximum recursion depth exceeded (Java StackOverflowError)

----------------------------------------------------------------------
Ran 17 tests in 0.335s

FAILED (errors=2)
Traceback (most recent call last):
  File "dist/Lib/test/test_marshal.py", line 264, in <module>
    test_main()
  File "dist/Lib/test/test_marshal.py", line 255, in test_main
    test_support.run_unittest(IntTestCase,
  File "/home/james/git/jython/dist/Lib/test/test_support.py", line 1320, in run_unittest
    _run_suite(suite)
  File "/home/james/git/jython/dist/Lib/test/test_support.py", line 1303, in _run_suite
    raise TestFailed(err)
test.test_support.TestFailed: multiple errors occurred
james@james-ubuntu:~/git/jython$ 


But with -Xss3m

james@james-ubuntu:~/git/jython$ java -Xss3m -jar dist/jython.jar dist/Lib/test/test_marshal.py -v
test_bool (__main__.IntTestCase) ... ok
test_int64 (__main__.IntTestCase) ... ok
test_ints (__main__.IntTestCase) ... ok
test_floats (__main__.FloatTestCase) ... ok
test_string (__main__.StringTestCase) ... ok
test_unicode (__main__.StringTestCase) ... ok
test_dict (__main__.ContainerTestCase) ... ok
test_list (__main__.ContainerTestCase) ... ok
test_sets (__main__.ContainerTestCase) ... ok
test_tuple (__main__.ContainerTestCase) ... ok
test_exceptions (__main__.ExceptionTestCase) ... ok
test_bug_5888452 (__main__.BugsTestCase) ... ok
test_fuzz (__main__.BugsTestCase) ... ok
test_loads_recursion (__main__.BugsTestCase) ... ok
test_patch_873224 (__main__.BugsTestCase) ... ok
test_recursion_limit (__main__.BugsTestCase) ... ok
test_version_argument (__main__.BugsTestCase) ... ok

----------------------------------------------------------------------
Ran 17 tests in 0.305s

OK
james@james-ubuntu:~/git/jython$ 

If the point of the test is to check for infinite recurrsion then increasing Xss should be ok if the point is to check the stack doesn't get to big then maybe its not a good solution.

A few Jython launch scripts specify -Xss1m so it was considered at some point...
History
Date User Action Args
2017-02-28 22:30:45jamesmuddsetmessageid: <1488321045.14.0.00231943576571.issue2559@psf.upfronthosting.co.za>
2017-02-28 22:30:45jamesmuddsetrecipients: + jamesmudd
2017-02-28 22:30:45jamesmuddlinkissue2559 messages
2017-02-28 22:30:44jamesmuddcreate