)]}'
{"/COMMIT_MSG":[{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"e6eb325b5df757b66ebc37063adac2f2a2ff8144","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Shixiong Shang \u003csparkofwisdom@hotmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-02-23 10:05:39 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Updated the --init-config file."},{"line_number":8,"context_line":"Rebased to the lastest master branch"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Removed whitespace to solve \"openstack-helm-linter\" error"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa0c359_5e962640","line":7,"range":{"start_line":7,"start_character":30,"end_line":7,"end_character":31},"updated":"2018-02-26 07:04:59.000000000","message":"nit: no need for this period.  Also line break after this.","commit_id":"61b13ae0a649ccf627e8fa7e4501d5a94ab19eea"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"e6eb325b5df757b66ebc37063adac2f2a2ff8144","unresolved":false,"context_lines":[{"line_number":5,"context_line":"CommitDate: 2018-02-23 10:05:39 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Updated the --init-config file."},{"line_number":8,"context_line":"Rebased to the lastest master branch"},{"line_number":9,"context_line":""},{"line_number":10,"context_line":"Removed whitespace to solve \"openstack-helm-linter\" error"},{"line_number":11,"context_line":""},{"line_number":12,"context_line":"Removed the part that deletes the corrupted db files."},{"line_number":13,"context_line":"Please note that, if all mariadb nodes have corrupted db files,"}],"source_content_type":"text/x-gerrit-commit-message","patch_set":4,"id":"3fa0c359_3e9f9a50","line":10,"range":{"start_line":8,"start_character":0,"end_line":10,"end_character":57},"updated":"2018-02-26 07:04:59.000000000","message":"there is no need to explicitly spell out all the steps taken to resolve error.","commit_id":"61b13ae0a649ccf627e8fa7e4501d5a94ab19eea"},{"author":{"_account_id":8898,"name":"Chris Wedgwood","email":"cw@f00f.org","username":"anticw"},"change_message_id":"923864a482a1d6596e79e01cf2b52a1f0bd60eba","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Shixiong Shang \u003csparkofwisdom@hotmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-10 15:34:29 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Closes-Bug: 1709524"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Added logic to repair invalid or corrupted grstate.dat file"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf659307_2c82dd50","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":19},"updated":"2018-04-06 16:09:14.000000000","message":"remove from top of commit message","commit_id":"0460594aecbf1ea77764640f6d5260064c98db02"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"4aea232dc501bb99023abb3ec1a4b3163e29fabb","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Shixiong Shang \u003csparkofwisdom@hotmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-10 15:34:29 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Closes-Bug: 1709524"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Added logic to repair invalid or corrupted grstate.dat file"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"bf659307_94851cd2","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":19},"in_reply_to":"bf659307_2c82dd50","updated":"2018-04-08 15:55:39.000000000","message":"++ Lets make the first line of the commit (the header) more informative, it is already stated in the footer.","commit_id":"0460594aecbf1ea77764640f6d5260064c98db02"},{"author":{"_account_id":21691,"name":"weizj","email":"wzj334965317@outlook.com","username":"ZhijunWei"},"change_message_id":"01d72bbb7c3aea256ada39b2734bda98a03d95f4","unresolved":false,"context_lines":[{"line_number":4,"context_line":"Commit:     Shixiong Shang \u003csparkofwisdom@hotmail.com\u003e"},{"line_number":5,"context_line":"CommitDate: 2018-03-10 15:34:29 -0500"},{"line_number":6,"context_line":""},{"line_number":7,"context_line":"Closes-Bug: 1709524"},{"line_number":8,"context_line":""},{"line_number":9,"context_line":"Added logic to repair invalid or corrupted grstate.dat file"},{"line_number":10,"context_line":""}],"source_content_type":"text/x-gerrit-commit-message","patch_set":6,"id":"5f7c97a3_64fd3d39","line":7,"range":{"start_line":7,"start_character":0,"end_line":7,"end_character":19},"in_reply_to":"bf659307_94851cd2","updated":"2018-05-07 15:03:12.000000000","message":"Please follow proper formatting for commit messages\nTitle of commit \u003c less then 50 characters \u003cCR\u003e \nDescription of commit (wrapped at 71 characters) may be mulltiline\nCloses-Bug: #X or TrivialFix or Implements:","commit_id":"0460594aecbf1ea77764640f6d5260064c98db02"}],"mariadb/templates/bin/_start.sh.tpl":[{"author":{"_account_id":23928,"name":"Pete Birley","email":"petebirley@gmail.com","username":"portdirect"},"change_message_id":"b913eb37c193dd5eea05c07015f625d594e380cf","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        then"},{"line_number":29,"context_line":"        echo \"neither gvwstate.dat nor grastate.dat file exists\""},{"line_number":30,"context_line":"        echo \"/var/lib/mysql is a clean directory\""},{"line_number":31,"context_line":"    elif [ ! -f \"/var/lib/mysq/gvwstate.dat\" ] || [ ! -f \"/var/lib/mysq/grastate.dat\" ]"},{"line_number":32,"context_line":"        then"},{"line_number":33,"context_line":"        # may try to recover the local node, instead of removing the files..."},{"line_number":34,"context_line":"        # recoving may take long time and no guarantee the db can be recovered"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"3fa0c359_39620a40","line":31,"range":{"start_line":31,"start_character":67,"end_line":31,"end_character":71},"updated":"2018-02-06 18:57:00.000000000","message":"typo","commit_id":"4bafe1dd1121ec5e9f28d28ca4d1568b00a0782d"},{"author":{"_account_id":23928,"name":"Pete Birley","email":"petebirley@gmail.com","username":"portdirect"},"change_message_id":"b913eb37c193dd5eea05c07015f625d594e380cf","unresolved":false,"context_lines":[{"line_number":28,"context_line":"        then"},{"line_number":29,"context_line":"        echo \"neither gvwstate.dat nor grastate.dat file exists\""},{"line_number":30,"context_line":"        echo \"/var/lib/mysql is a clean directory\""},{"line_number":31,"context_line":"    elif [ ! -f \"/var/lib/mysq/gvwstate.dat\" ] || [ ! -f \"/var/lib/mysq/grastate.dat\" ]"},{"line_number":32,"context_line":"        then"},{"line_number":33,"context_line":"        # may try to recover the local node, instead of removing the files..."},{"line_number":34,"context_line":"        # recoving may take long time and no guarantee the db can be recovered"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"3fa0c359_99731e16","line":31,"range":{"start_line":31,"start_character":26,"end_line":31,"end_character":30},"updated":"2018-02-06 18:57:00.000000000","message":"typo","commit_id":"4bafe1dd1121ec5e9f28d28ca4d1568b00a0782d"},{"author":{"_account_id":23928,"name":"Pete Birley","email":"petebirley@gmail.com","username":"portdirect"},"change_message_id":"b913eb37c193dd5eea05c07015f625d594e380cf","unresolved":false,"context_lines":[{"line_number":29,"context_line":"        echo \"neither gvwstate.dat nor grastate.dat file exists\""},{"line_number":30,"context_line":"        echo \"/var/lib/mysql is a clean directory\""},{"line_number":31,"context_line":"    elif [ ! -f \"/var/lib/mysq/gvwstate.dat\" ] || [ ! -f \"/var/lib/mysq/grastate.dat\" ]"},{"line_number":32,"context_line":"        then"},{"line_number":33,"context_line":"        # may try to recover the local node, instead of removing the files..."},{"line_number":34,"context_line":"        # recoving may take long time and no guarantee the db can be recovered"},{"line_number":35,"context_line":"        echo \"either gvwstate.dat or grastate.dat file exist\""},{"line_number":36,"context_line":"        echo \"mariadb directory was not cleaned up properly. risk of corrupted db files...\""},{"line_number":37,"context_line":"        echo \"clean up the directory\""},{"line_number":38,"context_line":"        rmcommand\u003d\"rm -rf /var/lib/mysql/*\""},{"line_number":39,"context_line":"        eval $rmcommand"},{"line_number":40,"context_line":"        echo \"now /var/lib/mysql is a clean directory\""},{"line_number":41,"context_line":"    else [ -f \"/var/lib/mysql/gvwstate.dat\" ] \u0026\u0026 [ -f \"/var/lib/mysql/grastate.dat\" ]"},{"line_number":42,"context_line":"        echo \"both gvwstate.dat or grastate.dat files exist\""},{"line_number":43,"context_line":"    fi"}],"source_content_type":"text/x-smarty","patch_set":1,"id":"3fa0c359_19614e37","line":40,"range":{"start_line":32,"start_character":0,"end_line":40,"end_character":54},"updated":"2018-02-06 18:57:00.000000000","message":"this is a bit scary, as the typos above demonstrate.","commit_id":"4bafe1dd1121ec5e9f28d28ca4d1568b00a0782d"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"e6eb325b5df757b66ebc37063adac2f2a2ff8144","unresolved":false,"context_lines":[{"line_number":19,"context_line":""},{"line_number":20,"context_line":"# Bootstrap database"},{"line_number":21,"context_line":"CLUSTER_INIT_ARGS\u003d\"\""},{"line_number":22,"context_line":"\u003c\u003c\u003c\u003c\u003c\u003c\u003c HEAD"},{"line_number":23,"context_line":"CLUSTER_CONFIG_PATH\u003d/etc/mysql/conf.d/10-cluster-config.cnf"},{"line_number":24,"context_line":""},{"line_number":25,"context_line":"function exitWithManualRecovery() {"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"3fa0c359_9e902e45","line":22,"range":{"start_line":22,"start_character":0,"end_line":22,"end_character":7},"updated":"2018-02-26 07:04:59.000000000","message":"merge conflict","commit_id":"61b13ae0a649ccf627e8fa7e4501d5a94ab19eea"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"e6eb325b5df757b66ebc37063adac2f2a2ff8144","unresolved":false,"context_lines":[{"line_number":101,"context_line":"CLUSTER_CONFIG_PATH\u003d/etc/mysql/conf.d/10-cluster-config.cnf"},{"line_number":102,"context_line":""},{"line_number":103,"context_line":"# build member list"},{"line_number":104,"context_line":"\u003e\u003e\u003e\u003e\u003e\u003e\u003e ebc866c3... Updated the --init-config file."},{"line_number":105,"context_line":"MEMBERS\u003d\"\""},{"line_number":106,"context_line":"for i in $(seq 1 ${MARIADB_REPLICAS}); do"},{"line_number":107,"context_line":"    if [ \"$i\" -eq \"1\" ]"}],"source_content_type":"text/x-smarty","patch_set":4,"id":"3fa0c359_3e7a3a23","line":104,"range":{"start_line":104,"start_character":0,"end_line":104,"end_character":51},"updated":"2018-02-26 07:04:59.000000000","message":"need to resolve this merge conflict.","commit_id":"61b13ae0a649ccf627e8fa7e4501d5a94ab19eea"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"15a7cdd2612b54e276903da1cdf9d0cf4c30ca8b","unresolved":false,"context_lines":[{"line_number":21,"context_line":"CLUSTER_INIT_ARGS\u003d\"\""},{"line_number":22,"context_line":"RECOVER\u003d\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"function checkCluster() {"},{"line_number":25,"context_line":"  # Check the status of other cluster memebers."},{"line_number":26,"context_line":"  # If all mariadb cluster members are offline, then return 1."},{"line_number":27,"context_line":"  # Otherwise, return 0."}],"source_content_type":"text/x-smarty","patch_set":6,"id":"df7087c5_c26dfd98","line":24,"range":{"start_line":24,"start_character":9,"end_line":24,"end_character":21},"updated":"2018-03-11 07:14:10.000000000","message":"is this function called anywhere, a quick search doesn\u0027t turn up anything.","commit_id":"0460594aecbf1ea77764640f6d5260064c98db02"},{"author":{"_account_id":27787,"name":"Shixiong Shang","email":"sparkofwisdom@hotmail.com","username":"shshang"},"change_message_id":"76113e0d15435e419977f976a882a717c58be79c","unresolved":false,"context_lines":[{"line_number":21,"context_line":"CLUSTER_INIT_ARGS\u003d\"\""},{"line_number":22,"context_line":"RECOVER\u003d\"\""},{"line_number":23,"context_line":""},{"line_number":24,"context_line":"function checkCluster() {"},{"line_number":25,"context_line":"  # Check the status of other cluster memebers."},{"line_number":26,"context_line":"  # If all mariadb cluster members are offline, then return 1."},{"line_number":27,"context_line":"  # Otherwise, return 0."}],"source_content_type":"text/x-smarty","patch_set":6,"id":"df7087c5_39c95425","line":24,"range":{"start_line":24,"start_character":9,"end_line":24,"end_character":21},"in_reply_to":"df7087c5_c26dfd98","updated":"2018-03-13 17:24:14.000000000","message":"This one is used at Line 127","commit_id":"0460594aecbf1ea77764640f6d5260064c98db02"},{"author":{"_account_id":8898,"name":"Chris Wedgwood","email":"cw@f00f.org","username":"anticw"},"change_message_id":"923864a482a1d6596e79e01cf2b52a1f0bd60eba","unresolved":false,"context_lines":[{"line_number":29,"context_line":"  if ! mysql --defaults-file\u003d/etc/mysql/admin_user.cnf \\"},{"line_number":30,"context_line":"        --connect-timeout 2 \\"},{"line_number":31,"context_line":"        -e \u0027select 1\u0027"},{"line_number":32,"context_line":"  then"},{"line_number":33,"context_line":"    echo 1"},{"line_number":34,"context_line":"  else"},{"line_number":35,"context_line":"    echo 0"},{"line_number":36,"context_line":"  fi"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"function autoRecover() {"}],"source_content_type":"text/x-smarty","patch_set":6,"id":"bf659307_6cd77525","line":36,"range":{"start_line":32,"start_character":0,"end_line":36,"end_character":4},"updated":"2018-04-06 16:09:14.000000000","message":"if you use return, can you then no just do\n\n\nif function ; then\n  echo function returned 0\nelif\n  echo function returned non-zero\nfi\n\n?","commit_id":"0460594aecbf1ea77764640f6d5260064c98db02"},{"author":{"_account_id":20466,"name":"Tin Lam","email":"tin@lam.wtf","username":"tinlam"},"change_message_id":"15a7cdd2612b54e276903da1cdf9d0cf4c30ca8b","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  fi"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"function autoRecover() {"},{"line_number":40,"context_line":"    # The string, \"Recovered position\", indicates the recovery is successful."},{"line_number":41,"context_line":"    # If successful, reconstruct the grastate.dat and continue to boot"},{"line_number":42,"context_line":"    # If not successful, print warning message"}],"source_content_type":"text/x-smarty","patch_set":6,"id":"df7087c5_e2684188","line":39,"range":{"start_line":39,"start_character":9,"end_line":39,"end_character":20},"updated":"2018-03-11 07:14:10.000000000","message":"ditto","commit_id":"0460594aecbf1ea77764640f6d5260064c98db02"},{"author":{"_account_id":27787,"name":"Shixiong Shang","email":"sparkofwisdom@hotmail.com","username":"shshang"},"change_message_id":"76113e0d15435e419977f976a882a717c58be79c","unresolved":false,"context_lines":[{"line_number":36,"context_line":"  fi"},{"line_number":37,"context_line":"}"},{"line_number":38,"context_line":""},{"line_number":39,"context_line":"function autoRecover() {"},{"line_number":40,"context_line":"    # The string, \"Recovered position\", indicates the recovery is successful."},{"line_number":41,"context_line":"    # If successful, reconstruct the grastate.dat and continue to boot"},{"line_number":42,"context_line":"    # If not successful, print warning message"}],"source_content_type":"text/x-smarty","patch_set":6,"id":"df7087c5_9971800f","line":39,"range":{"start_line":39,"start_character":9,"end_line":39,"end_character":20},"in_reply_to":"df7087c5_e2684188","updated":"2018-03-13 17:24:14.000000000","message":"This one is used at Line 142","commit_id":"0460594aecbf1ea77764640f6d5260064c98db02"}]}
