)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"5a0c255e0a242e50c1f0ec5857713094d1e13713","unresolved":true,"context_lines":[{"line_number":9,"context_line":"Previously, seamless reloads were a little risky: when they worked, they"},{"line_number":10,"context_line":"worked great, but if they failed (say, because you wrote out an invalid"},{"line_number":11,"context_line":"config), you were left with no usable server processes and possible"},{"line_number":12,"context_line":"client downtime."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Now, add the ability to do a preflight check before reloading processes"},{"line_number":15,"context_line":"to reduce the likelihood of the reloaded process immediately dying. For"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"ea0abd0d_8e64b108","line":12,"updated":"2022-03-10 20:56:23.000000000","message":"Also catches things like pkg_resources.DistributionNotFound errors when you\u0027re mucking around in your dev environment.","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"34f58e7e33de90eedee292cf53f2adec2d5918e8","unresolved":false,"context_lines":[{"line_number":9,"context_line":"Previously, seamless reloads were a little risky: when they worked, they"},{"line_number":10,"context_line":"worked great, but if they failed (say, because you wrote out an invalid"},{"line_number":11,"context_line":"config), you were left with no usable server processes and possible"},{"line_number":12,"context_line":"client downtime."},{"line_number":13,"context_line":""},{"line_number":14,"context_line":"Now, add the ability to do a preflight check before reloading processes"},{"line_number":15,"context_line":"to reduce the likelihood of the reloaded process immediately dying. For"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"67d3fac6_ff1f58a2","line":12,"in_reply_to":"ea0abd0d_8e64b108","updated":"2023-02-16 22:58:56.000000000","message":"Ack","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"981320d5b17f866011957443098cdcf2d36d0386","unresolved":true,"context_lines":[{"line_number":15,"context_line":"to reduce the likelihood of the reloaded process immediately dying. For"},{"line_number":16,"context_line":"example, you might want a line in a systemd unit like"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    ExecReload\u003dbash -c \"swift-proxy-server --check-config /etc/swift/proxy-server.conf \u0026\u0026 kill -HUP $MAINPID\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I9e5e158ce8be92535430b9cabf040063f5188bf4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"23861052_72fc4ba5","line":18,"updated":"2022-03-24 18:32:36.000000000","message":"Looks like you can have multiple ExecReload lines instead of needing to do some bash -c dance. At least, that\u0027s what HAProxy does: https://github.com/haproxy/haproxy/blob/v2.5.0/admin/systemd/haproxy.service.in#L11-L12\n\nStill doesn\u0027t seem *great*, though -- the duplication of the config path between ExecStart and ExecReload bugs me.","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"34f58e7e33de90eedee292cf53f2adec2d5918e8","unresolved":false,"context_lines":[{"line_number":15,"context_line":"to reduce the likelihood of the reloaded process immediately dying. For"},{"line_number":16,"context_line":"example, you might want a line in a systemd unit like"},{"line_number":17,"context_line":""},{"line_number":18,"context_line":"    ExecReload\u003dbash -c \"swift-proxy-server --check-config /etc/swift/proxy-server.conf \u0026\u0026 kill -HUP $MAINPID\""},{"line_number":19,"context_line":""},{"line_number":20,"context_line":"Change-Id: I9e5e158ce8be92535430b9cabf040063f5188bf4"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":2,"id":"a2cfb488_51af3330","line":18,"in_reply_to":"23861052_72fc4ba5","updated":"2023-02-16 22:58:56.000000000","message":"Done","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"}],"/PATCHSET_LEVEL":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"b54d3d8b8b6569a7a3ceb6cb7f7a618f2b0850dd","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":2,"id":"8b202e3a_6bef892e","updated":"2022-03-25 11:32:02.000000000","message":"I put a few suggestions in https://review.opendev.org/c/openstack/swift/+/835208","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":1179,"name":"Clay Gerrard","email":"clay.gerrard@gmail.com","username":"clay-gerrard"},"change_message_id":"e5b21e85d8b37d689175e8ba0e044af06ca818f3","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"72596012_880a5ac3","updated":"2022-05-09 19:55:16.000000000","message":"apparently we\u0027ve been running this in prod","commit_id":"f144508a6ec8b9eb7de184e95cb1474410e8a31e"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"7c91f877ffe77e5a941d6b9d23fbd057dcf52df6","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":4,"id":"e181229a_e7dc3de8","updated":"2022-04-21 17:58:49.000000000","message":"recheck","commit_id":"f144508a6ec8b9eb7de184e95cb1474410e8a31e"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"ffea6919d3113b0569b81842c41820e94e5d38a4","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"73e4f464_a19a2d6c","updated":"2022-07-05 01:59:20.000000000","message":"Nice, had a but if a play with it in my SAIO. Cool that I can mess up my config some and run a test. Still get the trace back but I then get a non-zero return code.\nSuper useful. I wonder if swift-init should grow a test-config that pretty much adds the -t.\n\nReady to land this, once the docstring is fixed. seems you missed a s/check_config/test_confing. It\u0027ll get my +A","commit_id":"0e58e985884aa6e6515c8dc9adde7a636009850d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"37c2e5aa06a6f977f26677092c3186bcc60dc0b9","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":5,"id":"372af56e_e5a13a8a","updated":"2022-05-18 22:10:15.000000000","message":"recheck\n\nLooks like another eventlet logging deadlock bug. Seems to be fixed now.","commit_id":"0e58e985884aa6e6515c8dc9adde7a636009850d"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"3fe786018131e9861f4c1af2e3cb6273ce02adad","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"bd33fd76_106e9a89","updated":"2023-06-09 05:22:42.000000000","message":"The code looks good, nice refactor for the run_wsgi -\u003e check-config code.\n\nTested on my VSAIO and it indeed checks and bails with the -t and --test-config option.\nIt also helps this has been running in downstream prod for a while and running fine.","commit_id":"0a5f0253b1e35821c6fd62008941fc386d651230"},{"author":{"_account_id":22042,"name":"Chris Smart","email":"distroguy@gmail.com","username":"csmart"},"change_message_id":"00a53532b879fe76aab8e062ebcde670a2a7a31c","unresolved":false,"context_lines":[],"source_content_type":"","patch_set":10,"id":"a1e8033b_0fe9bcb2","updated":"2023-06-09 05:22:36.000000000","message":"Works as expected in SAIO - modifying the proxy config to have an invalid settings like port \u003e 65535 resulted in return code of 1, working config has return code of 0.","commit_id":"0a5f0253b1e35821c6fd62008941fc386d651230"}],"swift/common/utils.py":[{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"b54d3d8b8b6569a7a3ceb6cb7f7a618f2b0850dd","unresolved":true,"context_lines":[{"line_number":2648,"context_line":"        parser.add_option(\"-o\", \"--once\", default\u003dFalse, action\u003d\"store_true\","},{"line_number":2649,"context_line":"                          help\u003d\"only run one pass of daemon\")"},{"line_number":2650,"context_line":"    if check_config:"},{"line_number":2651,"context_line":"        parser.add_option(\"-c\", \"--check-config\","},{"line_number":2652,"context_line":"                          default\u003dFalse, action\u003d\"store_true\","},{"line_number":2653,"context_line":"                          help\u003d\"exit after loading and validating config\")"},{"line_number":2654,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"f4f5658e_d7d705c9","line":2651,"range":{"start_line":2651,"start_character":35,"end_line":2651,"end_character":47},"updated":"2022-03-25 11:32:02.000000000","message":"hmmm, not sure about the option name. I ended up writing a docstring like:\n\n  :param check_config: if False (the default) then load and validate the\n        config and if successful then continue to run the server; if True then\n        load and validate the config but do not run the server.\n\nwhich sounds wrong (\"if check_config is False then validate the config...)\n\nI wonder if it would be better as --check_config_only, but that is quite verbose.  Or --dry_run???","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"34f58e7e33de90eedee292cf53f2adec2d5918e8","unresolved":false,"context_lines":[{"line_number":2648,"context_line":"        parser.add_option(\"-o\", \"--once\", default\u003dFalse, action\u003d\"store_true\","},{"line_number":2649,"context_line":"                          help\u003d\"only run one pass of daemon\")"},{"line_number":2650,"context_line":"    if check_config:"},{"line_number":2651,"context_line":"        parser.add_option(\"-c\", \"--check-config\","},{"line_number":2652,"context_line":"                          default\u003dFalse, action\u003d\"store_true\","},{"line_number":2653,"context_line":"                          help\u003d\"exit after loading and validating config\")"},{"line_number":2654,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"a18a68f5_244abb6b","line":2651,"range":{"start_line":2651,"start_character":35,"end_line":2651,"end_character":47},"in_reply_to":"b4df90e2_b5b0b149","updated":"2023-02-16 22:58:56.000000000","message":"Done","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"224073048464809959ded6d83f4e5077da326797","unresolved":true,"context_lines":[{"line_number":2648,"context_line":"        parser.add_option(\"-o\", \"--once\", default\u003dFalse, action\u003d\"store_true\","},{"line_number":2649,"context_line":"                          help\u003d\"only run one pass of daemon\")"},{"line_number":2650,"context_line":"    if check_config:"},{"line_number":2651,"context_line":"        parser.add_option(\"-c\", \"--check-config\","},{"line_number":2652,"context_line":"                          default\u003dFalse, action\u003d\"store_true\","},{"line_number":2653,"context_line":"                          help\u003d\"exit after loading and validating config\")"},{"line_number":2654,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"b4df90e2_b5b0b149","line":2651,"range":{"start_line":2651,"start_character":35,"end_line":2651,"end_character":47},"in_reply_to":"f4f5658e_d7d705c9","updated":"2022-03-25 15:17:29.000000000","message":"FWIW, surveying some other software with similar functionality,\n\n- haproxy uses the short option -c,\n- nginx uses -t (or -T to also dump the config that was loaded), and\n- hitch uses -t or --test.\n\nSo maybe I change it to --test or --test-config?","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"b54d3d8b8b6569a7a3ceb6cb7f7a618f2b0850dd","unresolved":true,"context_lines":[{"line_number":2650,"context_line":"    if check_config:"},{"line_number":2651,"context_line":"        parser.add_option(\"-c\", \"--check-config\","},{"line_number":2652,"context_line":"                          default\u003dFalse, action\u003d\"store_true\","},{"line_number":2653,"context_line":"                          help\u003d\"exit after loading and validating config\")"},{"line_number":2654,"context_line":""},{"line_number":2655,"context_line":"    # if test_args is None, optparse will use sys.argv[:1]"},{"line_number":2656,"context_line":"    options, args \u003d parser.parse_args(args\u003dtest_args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"5452376f_cd471876","line":2653,"updated":"2022-03-25 11:32:02.000000000","message":"it might be worth really (over)-emphasising the \u0027exit\u0027 part of this statement :)\n\ne.g. \n\n  exit after loading and validating config; do not run the daemon","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"34f58e7e33de90eedee292cf53f2adec2d5918e8","unresolved":false,"context_lines":[{"line_number":2650,"context_line":"    if check_config:"},{"line_number":2651,"context_line":"        parser.add_option(\"-c\", \"--check-config\","},{"line_number":2652,"context_line":"                          default\u003dFalse, action\u003d\"store_true\","},{"line_number":2653,"context_line":"                          help\u003d\"exit after loading and validating config\")"},{"line_number":2654,"context_line":""},{"line_number":2655,"context_line":"    # if test_args is None, optparse will use sys.argv[:1]"},{"line_number":2656,"context_line":"    options, args \u003d parser.parse_args(args\u003dtest_args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"dc32a1ba_b50fc0c9","line":2653,"in_reply_to":"53ea17b2_56bb332c","updated":"2023-02-16 22:58:56.000000000","message":"Done","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"224073048464809959ded6d83f4e5077da326797","unresolved":true,"context_lines":[{"line_number":2650,"context_line":"    if check_config:"},{"line_number":2651,"context_line":"        parser.add_option(\"-c\", \"--check-config\","},{"line_number":2652,"context_line":"                          default\u003dFalse, action\u003d\"store_true\","},{"line_number":2653,"context_line":"                          help\u003d\"exit after loading and validating config\")"},{"line_number":2654,"context_line":""},{"line_number":2655,"context_line":"    # if test_args is None, optparse will use sys.argv[:1]"},{"line_number":2656,"context_line":"    options, args \u003d parser.parse_args(args\u003dtest_args)"}],"source_content_type":"text/x-python","patch_set":2,"id":"53ea17b2_56bb332c","line":2653,"in_reply_to":"5452376f_cd471876","updated":"2022-03-25 15:17:29.000000000","message":"+1","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"}],"swift/common/wsgi.py":[{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"5a0c255e0a242e50c1f0ec5857713094d1e13713","unresolved":true,"context_lines":[{"line_number":1041,"context_line":"        strategy \u003d WorkersStrategy(conf, logger)"},{"line_number":1042,"context_line":"        try:"},{"line_number":1043,"context_line":"            # Quick sanity check"},{"line_number":1044,"context_line":"            int(conf[\u0027bind_port\u0027])"},{"line_number":1045,"context_line":"        except (ValueError, KeyError, TypeError):"},{"line_number":1046,"context_line":"            error_msg \u003d \u0027bind_port wasn\\\u0027t properly set in the config file. \u0027 \\"},{"line_number":1047,"context_line":"                \u0027It must be explicitly set to a valid port number.\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"30fb96c2_43dbf2bc","line":1044,"updated":"2022-03-10 20:56:23.000000000","message":"This should probably look more like\n\n if not (1 \u003c\u003d int(conf[\u0027bind_port\u0027]) \u003c\u003d 2 ** 16 - 1):\n     raise ValueError\n\nCurrently, I think the only place we verify that the port is in the valid range is when we make the socket.","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"b54d3d8b8b6569a7a3ceb6cb7f7a618f2b0850dd","unresolved":true,"context_lines":[{"line_number":1041,"context_line":"        strategy \u003d WorkersStrategy(conf, logger)"},{"line_number":1042,"context_line":"        try:"},{"line_number":1043,"context_line":"            # Quick sanity check"},{"line_number":1044,"context_line":"            int(conf[\u0027bind_port\u0027])"},{"line_number":1045,"context_line":"        except (ValueError, KeyError, TypeError):"},{"line_number":1046,"context_line":"            error_msg \u003d \u0027bind_port wasn\\\u0027t properly set in the config file. \u0027 \\"},{"line_number":1047,"context_line":"                \u0027It must be explicitly set to a valid port number.\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"faffb9e9_d34631db","line":1044,"in_reply_to":"30fb96c2_43dbf2bc","updated":"2022-03-25 11:32:02.000000000","message":"is this to be a separate topic? (seems like it should be)","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"224073048464809959ded6d83f4e5077da326797","unresolved":true,"context_lines":[{"line_number":1041,"context_line":"        strategy \u003d WorkersStrategy(conf, logger)"},{"line_number":1042,"context_line":"        try:"},{"line_number":1043,"context_line":"            # Quick sanity check"},{"line_number":1044,"context_line":"            int(conf[\u0027bind_port\u0027])"},{"line_number":1045,"context_line":"        except (ValueError, KeyError, TypeError):"},{"line_number":1046,"context_line":"            error_msg \u003d \u0027bind_port wasn\\\u0027t properly set in the config file. \u0027 \\"},{"line_number":1047,"context_line":"                \u0027It must be explicitly set to a valid port number.\u0027"}],"source_content_type":"text/x-python","patch_set":2,"id":"1d0fdef0_44540f28","line":1044,"in_reply_to":"faffb9e9_d34631db","updated":"2022-03-25 15:17:29.000000000","message":"Probably should be a separate patch, but it\u0027s *very* related in my view: since the --check-config option stops us just short of actually opening and binding to sockets, we don\u0027t want to rely on any sort of validation coming out of the bind call. Currently, if you write a proxy-server.conf with\n\n bind_port \u003d 80800\n\nand try to \"safely\" reload, it\u0027s *not* safe and everything falls over.","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"7c91f877ffe77e5a941d6b9d23fbd057dcf52df6","unresolved":true,"context_lines":[{"line_number":1054,"context_line":""},{"line_number":1055,"context_line":"    # Ensure the configuration and application can be loaded before proceeding."},{"line_number":1056,"context_line":"    global_conf \u003d {\u0027log_name\u0027: log_name}"},{"line_number":1057,"context_line":"    loadapp(conf_path, global_conf\u003dglobal_conf)"},{"line_number":1058,"context_line":"    if \u0027global_conf_callback\u0027 in kwargs:"},{"line_number":1059,"context_line":"        kwargs[\u0027global_conf_callback\u0027](conf, global_conf)"},{"line_number":1060,"context_line":""}],"source_content_type":"text/x-python","patch_set":2,"id":"6a887196_11486322","line":1057,"updated":"2022-04-21 17:58:49.000000000","message":"It feels weird to me that we don\u0027t pass in allow_modify_pipeline like we do below -- I guess it should be fine, though, since the default is True.","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"5a0c255e0a242e50c1f0ec5857713094d1e13713","unresolved":true,"context_lines":[{"line_number":1064,"context_line":"    utils.FALLOCATE_RESERVE, utils.FALLOCATE_IS_PERCENT \u003d \\"},{"line_number":1065,"context_line":"        utils.config_fallocate_value(conf.get(\u0027fallocate_reserve\u0027, \u00271%\u0027))"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"    if kwargs.get(\u0027check_config\u0027):"},{"line_number":1068,"context_line":"        return 0"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"    # Do some daemonization process hygene before we fork any children or run a"}],"source_content_type":"text/x-python","patch_set":2,"id":"91b7bbc1_46dc4cf6","line":1067,"updated":"2022-03-10 20:56:23.000000000","message":"Might want to add a comment to highlight that all validation should occur before this point.","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"34f58e7e33de90eedee292cf53f2adec2d5918e8","unresolved":false,"context_lines":[{"line_number":1064,"context_line":"    utils.FALLOCATE_RESERVE, utils.FALLOCATE_IS_PERCENT \u003d \\"},{"line_number":1065,"context_line":"        utils.config_fallocate_value(conf.get(\u0027fallocate_reserve\u0027, \u00271%\u0027))"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"    if kwargs.get(\u0027check_config\u0027):"},{"line_number":1068,"context_line":"        return 0"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"    # Do some daemonization process hygene before we fork any children or run a"}],"source_content_type":"text/x-python","patch_set":2,"id":"0e245a8d_a24fdcea","line":1067,"in_reply_to":"6a81bfc0_304b530e","updated":"2023-02-16 22:58:56.000000000","message":"Done","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":7847,"name":"Alistair Coles","email":"alistairncoles@gmail.com","username":"acoles"},"change_message_id":"b54d3d8b8b6569a7a3ceb6cb7f7a618f2b0850dd","unresolved":true,"context_lines":[{"line_number":1064,"context_line":"    utils.FALLOCATE_RESERVE, utils.FALLOCATE_IS_PERCENT \u003d \\"},{"line_number":1065,"context_line":"        utils.config_fallocate_value(conf.get(\u0027fallocate_reserve\u0027, \u00271%\u0027))"},{"line_number":1066,"context_line":""},{"line_number":1067,"context_line":"    if kwargs.get(\u0027check_config\u0027):"},{"line_number":1068,"context_line":"        return 0"},{"line_number":1069,"context_line":""},{"line_number":1070,"context_line":"    # Do some daemonization process hygene before we fork any children or run a"}],"source_content_type":"text/x-python","patch_set":2,"id":"6a81bfc0_304b530e","line":1067,"in_reply_to":"91b7bbc1_46dc4cf6","updated":"2022-03-25 11:32:02.000000000","message":"+1\n\nin fact, the validation and preload could be broken out into a separate function to make this even more obvious - see https://review.opendev.org/c/openstack/swift/+/835208","commit_id":"4e98dd2588314c22b2c5f6c7015edd9141be30fe"},{"author":{"_account_id":7233,"name":"Matthew Oliver","email":"matt@oliver.net.au","username":"mattoliverau"},"change_message_id":"ffea6919d3113b0569b81842c41820e94e5d38a4","unresolved":true,"context_lines":[{"line_number":1059,"context_line":"    :param allow_modify_pipeline: Boolean for whether the server should have"},{"line_number":1060,"context_line":"                                  an opportunity to change its own pipeline."},{"line_number":1061,"context_line":"                                  Defaults to True"},{"line_number":1062,"context_line":"    :param check_config: if False (the default) then load and validate the"},{"line_number":1063,"context_line":"        config and if successful then continue to run the server; if True then"},{"line_number":1064,"context_line":"        load and validate the config but do not run the server."},{"line_number":1065,"context_line":"    :returns: 0 if successful, nonzero otherwise"}],"source_content_type":"text/x-python","patch_set":5,"id":"7a0872b4_8d75bddb","line":1062,"range":{"start_line":1062,"start_character":11,"end_line":1062,"end_character":23},"updated":"2022-07-05 01:59:20.000000000","message":"Needs to be changed to test_config.","commit_id":"0e58e985884aa6e6515c8dc9adde7a636009850d"},{"author":{"_account_id":34892,"name":"ASHWIN A NAIR","display_name":"indianwhocodes","email":"nairashwin952013@gmail.com","username":"indianwhocodes","status":"Nvidia"},"change_message_id":"8d9e35144a06dfd2b131b57d23051a10c01b2df7","unresolved":false,"context_lines":[{"line_number":1059,"context_line":"    :param allow_modify_pipeline: Boolean for whether the server should have"},{"line_number":1060,"context_line":"                                  an opportunity to change its own pipeline."},{"line_number":1061,"context_line":"                                  Defaults to True"},{"line_number":1062,"context_line":"    :param check_config: if False (the default) then load and validate the"},{"line_number":1063,"context_line":"        config and if successful then continue to run the server; if True then"},{"line_number":1064,"context_line":"        load and validate the config but do not run the server."},{"line_number":1065,"context_line":"    :returns: 0 if successful, nonzero otherwise"}],"source_content_type":"text/x-python","patch_set":5,"id":"78e2defa_ab308884","line":1062,"range":{"start_line":1062,"start_character":11,"end_line":1062,"end_character":23},"in_reply_to":"7a0872b4_8d75bddb","updated":"2023-08-17 16:16:35.000000000","message":"Done","commit_id":"0e58e985884aa6e6515c8dc9adde7a636009850d"},{"author":{"_account_id":15343,"name":"Tim Burke","email":"tburke@nvidia.com","username":"tburke"},"change_message_id":"34f58e7e33de90eedee292cf53f2adec2d5918e8","unresolved":false,"context_lines":[{"line_number":1059,"context_line":"    :param allow_modify_pipeline: Boolean for whether the server should have"},{"line_number":1060,"context_line":"                                  an opportunity to change its own pipeline."},{"line_number":1061,"context_line":"                                  Defaults to True"},{"line_number":1062,"context_line":"    :param check_config: if False (the default) then load and validate the"},{"line_number":1063,"context_line":"        config and if successful then continue to run the server; if True then"},{"line_number":1064,"context_line":"        load and validate the config but do not run the server."},{"line_number":1065,"context_line":"    :returns: 0 if successful, nonzero otherwise"}],"source_content_type":"text/x-python","patch_set":5,"id":"ffc2ff99_8e744b25","line":1062,"range":{"start_line":1062,"start_character":11,"end_line":1062,"end_character":23},"in_reply_to":"7a0872b4_8d75bddb","updated":"2023-02-16 22:58:56.000000000","message":"Done","commit_id":"0e58e985884aa6e6515c8dc9adde7a636009850d"}]}
