)]}'
{"/PATCHSET_LEVEL":[{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"7e23cff056cc2e49ecdcefe21b521892c70100c3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":1,"id":"fca0cc9b_230211f6","updated":"2022-04-01 14:00:17.000000000","message":"Note the call to setrecursionlimit in this pyparsing example:\n    https://github.com/pyparsing/pyparsing/blob/master/examples/simpleArith.py\n","commit_id":"5827b2d23e23618b75b4854a1e708aea87b1c430"},{"author":{"_account_id":29122,"name":"Raghavendra Tilay","email":"raghavendra-uddhav.tilay@hpe.com","username":"raghavendrat"},"change_message_id":"feb14a5f2977484e2ee95761a2ca6b709552cc36","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"fb6ea0c2_38b6d30b","updated":"2022-05-20 12:43:05.000000000","message":"Code and UT look good. Zuul also passed.","commit_id":"0d300c96ac6c5133e13d64f6afeded488912f818"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"42652879a42110d4e5292e8b0c866d3d4b781621","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"df5b5f9a_2e551ba8","updated":"2022-05-27 15:35:50.000000000","message":"Luigi\u0027s comment looks done. Zuul passed and we have test!","commit_id":"0d300c96ac6c5133e13d64f6afeded488912f818"},{"author":{"_account_id":27615,"name":"Rajat Dhasmana","email":"rajatdhasmana@gmail.com","username":"whoami-rajat"},"change_message_id":"ee0824a7330db014e2ca1b4eb7eb8c7f67bfde28","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"3e55bb29_63614bdd","updated":"2022-05-27 15:31:27.000000000","message":"This is a good workaround that will allow people to use complex expressions with out filters/weighers but we should also focus on reducing the recursion calls as tried in[1] as it takes a huge amount of time and space on higher recursion calls.\n\n[1] https://review.opendev.org/c/openstack/cinder/+/835553","commit_id":"0d300c96ac6c5133e13d64f6afeded488912f818"},{"author":{"_account_id":20813,"name":"Sofia Enriquez","email":"lsofia.enriquez@gmail.com","username":"enriquetaso"},"change_message_id":"9c4fa971073ff359f289aea4940e99b6dee9c570","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"461475be_37ec39b1","in_reply_to":"3e55bb29_63614bdd","updated":"2022-05-27 15:37:03.000000000","message":"ack!","commit_id":"0d300c96ac6c5133e13d64f6afeded488912f818"}],"cinder/scheduler/evaluator/evaluator.py":[{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"ea591339ef1e1bc4fd5fb6cf0538f45d5678612b","unresolved":true,"context_lines":[{"line_number":291,"context_line":"    _vars \u003d kwargs"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    # Some reasonable formulas break with the default recursion limit of"},{"line_number":294,"context_line":"    # 1000.  Raise it here and reset it afterward."},{"line_number":295,"context_line":"    orig_recursion_limit \u003d sys.getrecursionlimit()"},{"line_number":296,"context_line":"    if orig_recursion_limit \u003c 3000:"},{"line_number":297,"context_line":"        sys.setrecursionlimit(3000)"}],"source_content_type":"text/x-python","patch_set":1,"id":"94f1fdde_c7f1422c","line":294,"updated":"2022-04-29 16:12:17.000000000","message":"Is 1000 documented anywhere? According the documentation it is platform-dependent.\n\nNow, setting this new value is probably fine, as 3000 should cover most of complex operations. \n\nI was just wondering if it would make sense to use a more dynamic approach, now that there is RecursionError exception ( https://docs.python.org/3.8/library/exceptions.html#RecursionError ) something along the line of:\n- evaluate the expression\n- if RecurseError is thown, double the the current limit and try again,\n- but repeat this doubling only a limited amount of times (3) at most.\n\nBut again this is probably overkill and I\u0027m not a cinder core (luckily :) so let\u0027s wait to hear from the people who can actually accept this change.","commit_id":"5827b2d23e23618b75b4854a1e708aea87b1c430"},{"author":{"_account_id":4523,"name":"Eric Harney","email":"eharney@redhat.com","username":"eharney"},"change_message_id":"053ad7c51b39102556b1b1840b8f7a0e589b6b1c","unresolved":true,"context_lines":[{"line_number":291,"context_line":"    _vars \u003d kwargs"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    # Some reasonable formulas break with the default recursion limit of"},{"line_number":294,"context_line":"    # 1000.  Raise it here and reset it afterward."},{"line_number":295,"context_line":"    orig_recursion_limit \u003d sys.getrecursionlimit()"},{"line_number":296,"context_line":"    if orig_recursion_limit \u003c 3000:"},{"line_number":297,"context_line":"        sys.setrecursionlimit(3000)"}],"source_content_type":"text/x-python","patch_set":1,"id":"9d864899_18778ffd","line":294,"in_reply_to":"94f1fdde_c7f1422c","updated":"2022-05-03 15:04:29.000000000","message":"I think this is overkill.  AFAIK the default is 1000 on any platform of interest for us, but the way the code is written, it doesn\u0027t actually matter what the default is.\n\nIntroducing extra complexity into this seems unnecessary.","commit_id":"5827b2d23e23618b75b4854a1e708aea87b1c430"},{"author":{"_account_id":10459,"name":"Luigi Toscano","email":"ltoscano@redhat.com","username":"ltoscano"},"change_message_id":"94bb5fe5667adb7c331a2a10beaeebf0bad64fd9","unresolved":true,"context_lines":[{"line_number":291,"context_line":"    _vars \u003d kwargs"},{"line_number":292,"context_line":""},{"line_number":293,"context_line":"    # Some reasonable formulas break with the default recursion limit of"},{"line_number":294,"context_line":"    # 1000.  Raise it here and reset it afterward."},{"line_number":295,"context_line":"    orig_recursion_limit \u003d sys.getrecursionlimit()"},{"line_number":296,"context_line":"    if orig_recursion_limit \u003c 3000:"},{"line_number":297,"context_line":"        sys.setrecursionlimit(3000)"}],"source_content_type":"text/x-python","patch_set":1,"id":"b1fd9f3a_1d237f45","line":294,"in_reply_to":"9d864899_18778ffd","updated":"2022-05-03 20:53:54.000000000","message":"I see, I was just curious.","commit_id":"5827b2d23e23618b75b4854a1e708aea87b1c430"}]}
