)]}'
{"id":"openocd~master~I7eb66f43462298e263a48048aa0c8769095661eb","project":"openocd","branch":"master","hashtags":[],"change_id":"I7eb66f43462298e263a48048aa0c8769095661eb","subject":"Add wall clock timeout warning to mpsse_flush()","status":"MERGED","created":"2018-11-15 19:37:47.000000000","updated":"2023-07-03 16:23:52.000000000","submitted":"2019-10-15 07:58:56.000000000","submitter":{"_account_id":1000000,"name":"Spencer Oliver","email":"spen@spen-soft.co.uk","username":"ntfreak"},"total_comment_count":1,"unresolved_comment_count":0,"has_review_started":true,"submission_id":"4767-1571126336269-dc130ff9","meta_rev_id":"b575d958e3ad8df029dca63919106be086760a1d","_number":4767,"owner":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"actions":{},"labels":{"Verified":{"approved":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"all":[{"value":0,"_account_id":1001233,"name":"Philipp Guehring","email":"pg@futureware.at","username":"thesourcerer8"},{"value":0,"_account_id":1000000,"name":"Spencer Oliver","email":"spen@spen-soft.co.uk","username":"ntfreak"},{"value":0,"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},{"value":0,"date":"2019-10-15 07:58:56.000000000","_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},{"value":1,"date":"2019-10-15 07:58:56.000000000","permitted_voting_range":{"min":1,"max":1},"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]}],"values":{"-1":"Fails"," 0":"No score","+1":"Verified"},"description":"","default_value":0},"Code-Review":{"approved":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"all":[{"value":0,"_account_id":1001233,"name":"Philipp Guehring","email":"pg@futureware.at","username":"thesourcerer8"},{"value":0,"_account_id":1000000,"name":"Spencer Oliver","email":"spen@spen-soft.co.uk","username":"ntfreak"},{"value":2,"date":"2019-10-15 07:58:56.000000000","permitted_voting_range":{"min":2,"max":2},"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},{"value":0,"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},{"value":0,"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]}],"values":{"-2":"This shall not be merged","-1":"I would prefer this is not merged as is"," 0":"No score","+1":"Looks good to me, but someone else must approve","+2":"Looks good to me, approved"},"description":"","default_value":0}},"removable_reviewers":[],"reviewers":{"CC":[{"_account_id":1002161,"name":"Anatoly P","email":"kupokupokupopo@gmail.com","username":"ecco_the_dolphin"}],"REVIEWER":[{"_account_id":1000000,"name":"Spencer Oliver","email":"spen@spen-soft.co.uk","username":"ntfreak"},{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},{"_account_id":1001233,"name":"Philipp Guehring","email":"pg@futureware.at","username":"thesourcerer8"},{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"}]},"pending_reviewers":{},"reviewer_updates":[{"updated":"2018-11-15 20:22:02.000000000","updated_by":{"_account_id":1001233,"name":"Philipp Guehring","email":"pg@futureware.at","username":"thesourcerer8"},"reviewer":{"_account_id":1001233,"name":"Philipp Guehring","email":"pg@futureware.at","username":"thesourcerer8"},"state":"REVIEWER"},{"updated":"2019-10-02 22:17:10.000000000","updated_by":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"reviewer":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"state":"REVIEWER"},{"updated":"2019-10-03 07:02:48.000000000","updated_by":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"reviewer":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"state":"REVIEWER"},{"updated":"2019-10-15 07:58:56.000000000","updated_by":{"_account_id":1000000,"name":"Spencer Oliver","email":"spen@spen-soft.co.uk","username":"ntfreak"},"reviewer":{"_account_id":1000000,"name":"Spencer Oliver","email":"spen@spen-soft.co.uk","username":"ntfreak"},"state":"REVIEWER"},{"updated":"2023-07-03 16:23:52.000000000","updated_by":{"_account_id":1002161,"name":"Anatoly P","email":"kupokupokupopo@gmail.com","username":"ecco_the_dolphin"},"reviewer":{"_account_id":1002161,"name":"Anatoly P","email":"kupokupokupopo@gmail.com","username":"ecco_the_dolphin"},"state":"CC"}],"messages":[{"id":"363dd756ba87d274057a66b62cbd84d5d9ee67bb","author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"real_author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"date":"2018-11-15 19:37:47.000000000","message":"Uploaded patch set 1.","accounts_in_message":[],"_revision_number":1},{"id":"2acb62fc5543399a505356138a39b5a861e74083","author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"real_author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"date":"2018-11-15 19:38:19.000000000","message":"Uploaded patch set 2: Commit message was updated.","accounts_in_message":[],"_revision_number":2},{"id":"630340c410dc0d2100727fa2a482347aeedfb642","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2018-11-15 19:38:19.000000000","message":"Patch Set 1: Verified-1\n\nBuild Failed \n\nhttp://build.openocd.org/job/openocd-gerrit/10811/ : ABORTED\n\nhttp://build.openocd.org/job/openocd-gerrit-build/10163/ : ABORTED","accounts_in_message":[],"_revision_number":1},{"id":"d37f238a71cda36e7a12bd51bffb14da4a3f1b0e","author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"real_author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"date":"2018-11-15 19:55:25.000000000","message":"Patch Set 2:\n\nStatic clang has no complaints about the new code.","accounts_in_message":[],"_revision_number":2},{"id":"ea30c2483e2bf7b9e37f9b994602fb3b6cbe1b7e","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2018-11-15 19:55:44.000000000","message":"Patch Set 2: Verified+1\n\nBuild Successful \n\nhttp://build.openocd.org/job/openocd-gerrit/10812/ : SUCCESS\n\nhttp://build.openocd.org/job/openocd-gerrit-build/10164/ : SUCCESS","accounts_in_message":[],"_revision_number":2},{"id":"a5e1fe976a28b73566633c731f642b09c96166ed","author":{"_account_id":1001233,"name":"Philipp Guehring","email":"pg@futureware.at","username":"thesourcerer8"},"real_author":{"_account_id":1001233,"name":"Philipp Guehring","email":"pg@futureware.at","username":"thesourcerer8"},"date":"2018-11-15 20:22:02.000000000","message":"Patch Set 2: Code-Review+1","accounts_in_message":[],"_revision_number":2},{"id":"9cfd36feb281cc00b74608a24fe557511a6fcb7d","author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"real_author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"date":"2018-11-16 14:54:17.000000000","message":"Patch Set 2:\n\nLong delays without progress can happen \"intentionally\" for example when using RTCK and the target is not currently returning the clock for whatever reason.\n\nThe timeout you suggest can be hit when scanning a long chain at really low rates, e.g. 2000 bits at 1 kHz, which people probably do from time to time.","accounts_in_message":[],"_revision_number":2},{"id":"bd558b9511d3e3a8cdeb3b1dd8fdca4ce99009af","author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"real_author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"date":"2018-11-16 19:45:57.000000000","message":"Patch Set 2:\n\n\u003e Long delays without progress can happen \"intentionally\" for example\n \u003e when using RTCK and the target is not currently returning the clock\n \u003e for whatever reason.\n \u003e \n \u003e The timeout you suggest can be hit when scanning a long chain at\n \u003e really low rates, e.g. 2000 bits at 1 kHz, which people probably do\n \u003e from time to time.\n\nI picked my timeout by doubling the USB timeout, but I\u0027m happy with any number. The problem we ran into was that our automated test infrastructure would sometimes hang. What do you think is a safe timeout? 1 minutes?","accounts_in_message":[],"_revision_number":2},{"id":"e8a45506db20c48928630d22b018065ecbb8866d","author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"real_author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"date":"2019-02-14 23:21:07.000000000","message":"Patch Set 2:\n\nAndreas, what timeout value would you like to see here?","accounts_in_message":[],"_revision_number":2},{"id":"676a4a43e8ed8672fe02d8f497a25b5c161862cf","author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"real_author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"date":"2019-09-30 21:11:36.000000000","message":"Patch Set 2:\n\nShould I add a config option? Can you comment and let me know how you\u0027d like me to address this?","accounts_in_message":[],"_revision_number":2},{"id":"12b1f866f8e9374bcf74d08adbad0bbb7bd4e639","author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"real_author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"date":"2019-10-01 11:32:53.000000000","message":"Patch Set 2:\n\nI\u0027d much rather learn *why* it loops forever without progress, than patch in some time based workaround.\n\nUnless RTCK is configured, or we send MPSSE commands that wait for pins (which we don\u0027t do), the data transfer from the chip itself is more or less deterministic. Data should stream in at a rate of about one bit per configured clock period, minus some processing overhead. It should *never* stall. So why do you see that it does?","accounts_in_message":[],"_revision_number":2},{"id":"55dd4e392175e88fdee9e8f451d8c08dceaeb26c","author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"real_author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"date":"2019-10-01 17:43:06.000000000","message":"Patch Set 2:\n\n\u003e I\u0027d much rather learn *why* it loops forever without progress, than\n \u003e patch in some time based workaround.\n \u003e \n \u003e Unless RTCK is configured, or we send MPSSE commands that wait for\n \u003e pins (which we don\u0027t do), the data transfer from the chip itself is\n \u003e more or less deterministic. Data should stream in at a rate of\n \u003e about one bit per configured clock period, minus some processing\n \u003e overhead. It should *never* stall. So why do you see that it does?\n\nThat would be much better, but I didn\u0027t figure out what\u0027s going on. My suspicion is that it\u0027s something wonky about how VirtualBox handles USB, or possibly a different hardware failure. (I recently switched from using VirtualBox to running Linux on bare metal, which has definitely improved USB reliability.)\n\nI won\u0027t have the time to root cause this problem. Should I tweak this change, or discard it?","accounts_in_message":[],"_revision_number":2},{"id":"0f7be0fdaeed63c792b02de6ecd5c28692d47527","author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"real_author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"date":"2019-10-02 07:37:59.000000000","message":"Patch Set 2:\n\n\u003e I won\u0027t have the time to root cause this problem. Should I tweak\n \u003e this change, or discard it?\n\nMy main concern is the risk that it times out some transfer that would otherwise succeed. I\u0027m not aware of any other reports of this happening and if it is, as you say in the commit message, not currently happening for you either, I\u0027d write this off as a temporary problem in your particular setup.\n\nIf you think it\u0027s useful, we could keep a LOG_WARN after a timeout but not abort the transfer. At least that would help to make the user aware that something weird could be going on so OpenOCD could be restarted manually if necessary.","accounts_in_message":[],"_revision_number":2},{"id":"b4b677d7024c38e28374bb729a1abe893c1a161e","author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"real_author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"date":"2019-10-02 21:58:16.000000000","message":"Uploaded patch set 3.","accounts_in_message":[],"_revision_number":3},{"id":"9af2333b8789963746406d58085758a8abea3d79","author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"real_author":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"date":"2019-10-02 21:59:19.000000000","message":"Patch Set 3:\n\n\u003e If you think it\u0027s useful, we could keep a LOG_WARN after a timeout\n \u003e but not abort the transfer. At least that would help to make the\n\nI like that idea. If it turns out to be a problem, now people will report the specific warning that they get. If not, then it won\u0027t affect anybody who does happen to have a really slow target. I\u0027ve changed this to a warning.","accounts_in_message":[],"_revision_number":3},{"id":"c10bbafadcbe9bfb5ebca5f94ab934837383c1ed","author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"real_author":{"_account_id":1000014,"name":"jenkins","username":"jenkins","tags":["SERVICE_USER"]},"date":"2019-10-02 22:17:10.000000000","message":"Patch Set 3: Verified+1\n\nBuild Successful \n\nhttp://build.openocd.org/job/openocd-gerrit/12121/ : SUCCESS\n\nhttp://build.openocd.org/job/openocd-gerrit-build/11429/ : SUCCESS","accounts_in_message":[],"_revision_number":3},{"id":"20dcf42c8c5dedea2fdd4b0b3b25b9231dbb9891","author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"real_author":{"_account_id":1000005,"name":"Andreas Fritiofson","email":"andreas.fritiofson@gmail.com","username":"Nattgris"},"date":"2019-10-03 07:02:48.000000000","message":"Patch Set 3: Code-Review+2","accounts_in_message":[],"_revision_number":3},{"id":"9a5fc5ad14cc8e49377172208ca24cac86d45127","author":{"_account_id":1000000,"name":"Spencer Oliver","email":"spen@spen-soft.co.uk","username":"ntfreak"},"real_author":{"_account_id":1000000,"name":"Spencer Oliver","email":"spen@spen-soft.co.uk","username":"ntfreak"},"date":"2019-10-15 07:58:56.000000000","message":"Change has been successfully cherry-picked as d214cadfef7ba75c7c52849c7946d32f0ad8b668 by Spencer Oliver","accounts_in_message":[],"_revision_number":4},{"id":"b575d958e3ad8df029dca63919106be086760a1d","author":{"_account_id":1002161,"name":"Anatoly P","email":"kupokupokupopo@gmail.com","username":"ecco_the_dolphin"},"real_author":{"_account_id":1002161,"name":"Anatoly P","email":"kupokupokupopo@gmail.com","username":"ecco_the_dolphin"},"date":"2023-07-03 16:23:52.000000000","message":"Patch Set 4:\n\n(1 comment)","accounts_in_message":[],"_revision_number":4}],"current_revision":"d214cadfef7ba75c7c52849c7946d32f0ad8b668","revisions":{"d214cadfef7ba75c7c52849c7946d32f0ad8b668":{"kind":"REWORK","_number":4,"created":"2019-10-15 07:58:56.000000000","uploader":{"_account_id":1000000,"name":"Spencer Oliver","email":"spen@spen-soft.co.uk","username":"ntfreak"},"ref":"refs/changes/67/4767/4","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/67/4767/4","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/4 \u0026\u0026 git checkout -b change-4767 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/4 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/4 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/4 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/67/4767/4","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/4 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"0a13ca1a8a83119a4e1ffba13a6a8d1977591bc5","subject":"efm32: use device-specific MSC base for EFM32TG11B"}],"author":{"name":"Tim Newsome","email":"tim@sifive.com","date":"2018-11-14 19:55:09.000000000","tz":-480},"committer":{"name":"Spencer Oliver","email":"spen@spen-soft.co.uk","date":"2019-10-15 07:58:56.000000000","tz":60},"subject":"Add wall clock timeout warning to mpsse_flush()","message":"Add wall clock timeout warning to mpsse_flush()\n\nI think that libusb_handle_events_timeout_completed is supposed to make\nprogress or time out, but sometimes we hit a case where it makes no\nprogress, and mpsse_flush() loops forever. This wall clock timeout\nnotifies the user that this is going on.\n\nWhen I wrote this code, this bug would reproduce every hour or two, but\nright now it\u0027s not happening for me.\n\nChange-Id: I7eb66f43462298e263a48048aa0c8769095661eb\nSigned-off-by: Tim Newsome \u003ctim@sifive.com\u003e\nReviewed-on: http://openocd.zylin.com/4767\nTested-by: jenkins\nReviewed-by: Andreas Fritiofson \u003candreas.fritiofson@gmail.com\u003e\n"}},"821d4af684f78f70ea8ceafec7d44417acee8789":{"kind":"REWORK","_number":3,"created":"2019-10-02 21:58:16.000000000","uploader":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"ref":"refs/changes/67/4767/3","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/67/4767/3","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/3 \u0026\u0026 git checkout -b change-4767 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/3 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/3 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/3 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/67/4767/3","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/3 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"ea41048830f3ef79129fdbf3623d708585929f5b","subject":"Permit null target on TCL connection"}],"author":{"name":"Tim Newsome","email":"tim@sifive.com","date":"2018-11-14 19:55:09.000000000","tz":-480},"committer":{"name":"Tim Newsome","email":"tim@sifive.com","date":"2019-10-02 21:57:42.000000000","tz":-420},"subject":"Add wall clock timeout warning to mpsse_flush()","message":"Add wall clock timeout warning to mpsse_flush()\n\nI think that libusb_handle_events_timeout_completed is supposed to make\nprogress or time out, but sometimes we hit a case where it makes no\nprogress, and mpsse_flush() loops forever. This wall clock timeout\nnotifies the user that this is going on.\n\nWhen I wrote this code, this bug would reproduce every hour or two, but\nright now it\u0027s not happening for me.\n\nChange-Id: I7eb66f43462298e263a48048aa0c8769095661eb\nSigned-off-by: Tim Newsome \u003ctim@sifive.com\u003e\n"}},"70e6e1886eb01f32aa3a9e9a3b85ad972817f6aa":{"kind":"NO_CODE_CHANGE","_number":2,"created":"2018-11-15 19:38:19.000000000","uploader":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"ref":"refs/changes/67/4767/2","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/67/4767/2","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/2 \u0026\u0026 git checkout -b change-4767 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/2 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/2 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/2 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/67/4767/2","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/2 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"ea41048830f3ef79129fdbf3623d708585929f5b","subject":"Permit null target on TCL connection"}],"author":{"name":"Tim Newsome","email":"tim@sifive.com","date":"2018-11-14 19:55:09.000000000","tz":-480},"committer":{"name":"Tim Newsome","email":"tim@sifive.com","date":"2018-11-15 19:37:54.000000000","tz":-480},"subject":"Add wall clock timeout to mpsse_flush()","message":"Add wall clock timeout to mpsse_flush()\n\nI think that libusb_handle_events_timeout_completed is supposed to make\nprogress or time out, but sometimes we hit a case where it makes no progress,\nand mpsse_flush() loops forever. This wall clock timeout kicks it out of that\nloop. OpenOCD appears to die afterwards, but that\u0027s still an improvement.\n\nWhen I wrote this code, this bug would reproduce every hour or two, but\nright now it\u0027s not happening for me.\n\nChange-Id: I7eb66f43462298e263a48048aa0c8769095661eb\nSigned-off-by: Tim Newsome \u003ctim@sifive.com\u003e\n"}},"13f1a34234bc6da1aea2500fcc6e5c61340cb25c":{"kind":"REWORK","_number":1,"created":"2018-11-15 19:37:47.000000000","uploader":{"_account_id":1001242,"name":"Tim Newsome","email":"tim@sifive.com","username":"timsifive"},"ref":"refs/changes/67/4767/1","fetch":{"anonymous http":{"url":"https://review.openocd.org/openocd","ref":"refs/changes/67/4767/1","commands":{"Branch":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/1 \u0026\u0026 git checkout -b change-4767 FETCH_HEAD","Checkout":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/1 \u0026\u0026 git checkout FETCH_HEAD","Cherry Pick":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/1 \u0026\u0026 git cherry-pick FETCH_HEAD","Format Patch":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/1 \u0026\u0026 git format-patch -1 --stdout FETCH_HEAD","Pull":"git pull https://review.openocd.org/openocd refs/changes/67/4767/1","Reset To":"git fetch https://review.openocd.org/openocd refs/changes/67/4767/1 \u0026\u0026 git reset --hard FETCH_HEAD"}}},"commit":{"parents":[{"commit":"ea41048830f3ef79129fdbf3623d708585929f5b","subject":"Permit null target on TCL connection"}],"author":{"name":"Tim Newsome","email":"tim@sifive.com","date":"2018-11-14 19:55:09.000000000","tz":-480},"committer":{"name":"Tim Newsome","email":"tim@sifive.com","date":"2018-11-14 19:56:29.000000000","tz":-480},"subject":"Add wall clock timeout to mpsse_flush()","message":"Add wall clock timeout to mpsse_flush()\n\nI think that libusb_handle_events_timeout_completed is supposed to make\nprogress or time out, but sometimes we hit a case where it makes no progress,\nand mpsse_flush() loops forever. This wall clock timeout kicks it out of that\nloop. OpenOCD appears to die afterwards, but that\u0027s still an improvement.\n\nChange-Id: I7eb66f43462298e263a48048aa0c8769095661eb\nSigned-off-by: Tim Newsome \u003ctim@sifive.com\u003e\n"}}},"requirements":[],"submit_records":[],"submit_requirements":[]}
