{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":84517704,"defaultBranch":"master","name":"h2","ownerLogin":"hyperium","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2017-03-10T04:03:11.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/8730506?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1712167853.0","currentOid":""},"activityList":{"items":[{"before":"092f3b391b7d68dc88b3d676c64b176d60c20e2d","after":"ecb00954288065638372d40036a128d9d61c448c","ref":"refs/heads/master","pushedAt":"2024-05-08T13:01:38.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"chore(lib): fix unexpected cfg warning (#777)","shortMessageHtmlLink":"chore(lib): fix unexpected cfg warning (#777)"}},{"before":"be129832df989bf28940da3618827e190ae64ef2","after":"092f3b391b7d68dc88b3d676c64b176d60c20e2d","ref":"refs/heads/master","pushedAt":"2024-05-06T13:17:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"examples: update to rustls 0.23","shortMessageHtmlLink":"examples: update to rustls 0.23"}},{"before":"0d66e3cba2da9925dc3f277b9c71b96356789a76","after":"be129832df989bf28940da3618827e190ae64ef2","ref":"refs/heads/master","pushedAt":"2024-05-02T01:29:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"Fix race condition in connection termination\n\nSee https://github.com/hyperium/hyper/issues/3652.\n\nWhat I have found is the final reference to a stream being dropped\nafter the `maybe_close_connection_if_no_streams` but before the\n`inner.poll()` completes can lead to the connection dangling forever\nwithout any forward progress. No streams/references are alive, but the\nconnection is not complete and never wakes up again. This seems like a\nclassic TOCTOU race condition.\n\nIn this fix, I check again at the end of poll and if this state is\ndetected, wake up the task again.\n\nWth the test in https://github.com/hyperium/hyper/pull/3655, on my machine, it fails about 5% of the time:\n```\n1876 runs so far, 100 failures (94.94% pass rate). 95.197349ms avg, 1.097347435s max, 5.398457ms min\n```\n\nWith that PR, this test is 100% reliable\n```\n64010 runs so far, 0 failures (100.00% pass rate). 44.484057ms avg, 121.454709ms max, 1.872657ms min\n```\n\nNote: we also have reproduced this using `h2` directly outside of `hyper`, which is what gives me\nconfidence this issue lies in `h2` and not `hyper`.","shortMessageHtmlLink":"Fix race condition in connection termination"}},{"before":"e2168def328e20553f18dc9bd6108dd83f340010","after":"0d66e3cba2da9925dc3f277b9c71b96356789a76","ref":"refs/heads/master","pushedAt":"2024-04-24T01:23:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"readme: Added link to Tokio Discord. (#771)\n\nGitter chat has notification that community discussion were moved to Discord.\r\n\r\nLink to community discussion updated to point directly to Discord.","shortMessageHtmlLink":"readme: Added link to Tokio Discord. (#771)"}},{"before":"51fe05acbdb61645a45e13a91b99d39a7fedda1f","after":"e2168def328e20553f18dc9bd6108dd83f340010","ref":"refs/heads/master","pushedAt":"2024-04-09T15:40:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"Noah-Kennedy","name":"Noah Kennedy","path":"/Noah-Kennedy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9875622?s=80&v=4"},"commit":{"message":"chore: add simple h2 benchmark (#762)\n\nThis PR adds a simple benchmark to measure perf improvement changes. E.g., a potential fix for this issue: https://github.com/hyperium/h2/issues/531\r\n\r\nThe benchmark is simple: have a client send `100_000` requests to a server and wait for a response. \r\n\r\nOutput:\r\n```\r\ncargo bench\r\nH2 running in current-thread runtime at 127.0.0.1:5928:\r\nOverall: 353ms.\r\nFastest: 91ms\r\nSlowest: 315ms\r\nAvg : 249ms\r\nH2 running in multi-thread runtime at 127.0.0.1:5929:\r\nOverall: 533ms.\r\nFastest: 88ms\r\nSlowest: 511ms\r\nAvg : 456ms\r\n```","shortMessageHtmlLink":"chore: add simple h2 benchmark (#762)"}},{"before":"88f826330550588d777749ff3f7ecbad2c73aaad","after":null,"ref":"refs/heads/release-0.4.4","pushedAt":"2024-04-03T18:09:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"}},{"before":"e76bd740334795a1ebb32dd38756bbedfda09b9f","after":"51fe05acbdb61645a45e13a91b99d39a7fedda1f","ref":"refs/heads/master","pushedAt":"2024-04-03T18:09:44.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"v0.4.4","shortMessageHtmlLink":"v0.4.4"}},{"before":"1a357aaefc7243fdfa9442f45d90be17794a4004","after":"357127e279c06935830fe2140378312eac801494","ref":"refs/heads/0.3.x","pushedAt":"2024-04-03T18:02:42.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"v0.3.26","shortMessageHtmlLink":"v0.3.26"}},{"before":null,"after":"88f826330550588d777749ff3f7ecbad2c73aaad","ref":"refs/heads/release-0.4.4","pushedAt":"2024-04-03T18:01:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"v0.4.4","shortMessageHtmlLink":"v0.4.4"}},{"before":"5b6c9e0da092728d702dff3607626aafb7809d77","after":"1a357aaefc7243fdfa9442f45d90be17794a4004","ref":"refs/heads/0.3.x","pushedAt":"2024-04-03T17:56:59.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: limit number of CONTINUATION frames allowed\n\nCalculate the amount of allowed CONTINUATION frames based on other\nsettings.\n\n max_header_list_size / max_frame_size\n\nThat is about how many CONTINUATION frames would be needed to send\nheaders up to the max allowed size. We then multiply by that by a small\namount, to allow for implementations that don't perfectly pack into the\nminimum frames *needed*.\n\nIn practice, *much* more than that would be a very inefficient peer, or\na peer trying to waste resources.\n\nSee https://seanmonstar.com/blog/hyper-http2-continuation-flood/ for\nmore info.","shortMessageHtmlLink":"fix: limit number of CONTINUATION frames allowed"}},{"before":"b272c2befb646e7f8b3bc92076c49773025c0e68","after":null,"ref":"refs/heads/0.3-sec-continuation","pushedAt":"2024-04-03T17:56:59.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"}},{"before":"979a788cdf4a9c19f9626ff010c4e09d5bca3f4b","after":null,"ref":"refs/heads/sec-continuation","pushedAt":"2024-04-03T17:56:49.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"}},{"before":"07fc8245ff8b58f581e0d3c5035b54eb14b69192","after":"e76bd740334795a1ebb32dd38756bbedfda09b9f","ref":"refs/heads/master","pushedAt":"2024-04-03T17:56:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: limit number of CONTINUATION frames allowed\n\nCalculate the amount of allowed CONTINUATION frames based on other\nsettings.\n\n max_header_list_size / max_frame_size\n\nThat is about how many CONTINUATION frames would be needed to send\nheaders up to the max allowed size. We then multiply by that by a small\namount, to allow for implementations that don't perfectly pack into the\nminimum frames *needed*.\n\nIn practice, *much* more than that would be a very inefficient peer, or\na peer trying to waste resources.\n\nSee https://seanmonstar.com/blog/hyper-http2-continuation-flood/ for\nmore info.","shortMessageHtmlLink":"fix: limit number of CONTINUATION frames allowed"}},{"before":"93d9d66617c65779c99c91eaf11a6d2780ad2fdd","after":"b272c2befb646e7f8b3bc92076c49773025c0e68","ref":"refs/heads/0.3-sec-continuation","pushedAt":"2024-04-03T17:50:10.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: limit number of CONTINUATION frames allowed\n\nCalculate the amount of allowed CONTINUATION frames based on other\nsettings.\n\n max_header_list_size / max_frame_size\n\nThat is about how many CONTINUATION frames would be needed to send\nheaders up to the max allowed size. We then multiply by that by a small\namount, to allow for implementations that don't perfectly pack into the\nminimum frames *needed*.\n\nIn practice, *much* more than that would be a very inefficient peer, or\na peer trying to waste resources.\n\nSee https://seanmonstar.com/blog/hyper-http2-continuation-flood/ for\nmore info.","shortMessageHtmlLink":"fix: limit number of CONTINUATION frames allowed"}},{"before":"1972dffddbe57650ed044a2299db2f01d9cf9232","after":"979a788cdf4a9c19f9626ff010c4e09d5bca3f4b","ref":"refs/heads/sec-continuation","pushedAt":"2024-04-03T17:49:38.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: limit number of CONTINUATION frames allowed\n\nCalculate the amount of allowed CONTINUATION frames based on other\nsettings.\n\n max_header_list_size / max_frame_size\n\nThat is about how many CONTINUATION frames would be needed to send\nheaders up to the max allowed size. We then multiply by that by a small\namount, to allow for implementations that don't perfectly pack into the\nminimum frames *needed*.\n\nIn practice, *much* more than that would be a very inefficient peer, or\na peer trying to waste resources.\n\nSee https://seanmonstar.com/blog/hyper-http2-continuation-flood/ for\nmore info.","shortMessageHtmlLink":"fix: limit number of CONTINUATION frames allowed"}},{"before":"fd2b2cf1753cd02a16e28ce053883a132da2d9f6","after":"93d9d66617c65779c99c91eaf11a6d2780ad2fdd","ref":"refs/heads/0.3-sec-continuation","pushedAt":"2024-04-03T17:39:23.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: limit number of CONTINUATION frames allowed\n\nCalculate the amount of allowed CONTINUATION frames based on other\nsettings.\n\n max_header_list_size / max_frame_size\n\nThat is about how many CONTINUATION frames would be needed to send\nheaders up to the max allowed size. We then multiply by that by a small\namount, to allow for implementations that don't perfectly pack into the\nminimum frames *needed*.\n\nIn practice, *much* more than that would be a very inefficient peer, or\na peer trying to waste resources.\n\nSee https://seanmonstar.com/blog/hyper-http2-continuation-flood/ for\nmore info.","shortMessageHtmlLink":"fix: limit number of CONTINUATION frames allowed"}},{"before":"f088f110de57832e180d75c3552d7803f107777d","after":"1972dffddbe57650ed044a2299db2f01d9cf9232","ref":"refs/heads/sec-continuation","pushedAt":"2024-04-03T17:38:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: limit number of CONTINUATION frames allowed\n\nCalculate the amount of allowed CONTINUATION frames based on other\nsettings.\n\n max_header_list_size / max_frame_size\n\nThat is about how many CONTINUATION frames would be needed to send\nheaders up to the max allowed size. We then multiply by that by a small\namount, to allow for implementations that don't perfectly pack into the\nminimum frames *needed*.\n\nIn practice, *much* more than that would be a very inefficient peer, or\na peer trying to waste resources.\n\nSee https://seanmonstar.com/blog/hyper-http2-continuation-flood/ for\nmore info.","shortMessageHtmlLink":"fix: limit number of CONTINUATION frames allowed"}},{"before":"5c41f26d68f282f6f2f7087f8b693f1f8af4eaf0","after":"f088f110de57832e180d75c3552d7803f107777d","ref":"refs/heads/sec-continuation","pushedAt":"2024-04-03T17:38:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: limit number of CONTINUATION frames allowed\n\nCalculate the amount of allowed CONTINUATION frames based on other\nsettings.\n\n max_header_list_size / max_frame_size\n\nThat is about how many CONTINUATION frames would be needed to send\nheaders up to the max allowed size. We then multiply by that by a small\namount, to allow for implementations that don't perfectly pack into the\nminimum frames *needed*.\n\nIn practice, *much* more than that would be a very inefficient peer, or\na peer trying to waste resources.\n\nSee https://seanmonstar.com/blog/hyper-http2-continuation-flood/ for\nmore info.","shortMessageHtmlLink":"fix: limit number of CONTINUATION frames allowed"}},{"before":null,"after":"fd2b2cf1753cd02a16e28ce053883a132da2d9f6","ref":"refs/heads/0.3-sec-continuation","pushedAt":"2024-04-03T17:37:29.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: limit number of CONTINUATION frames allowed\n\nCalculate the amount of allowed CONTINUATION frames based on other\nsettings.\n\n max_header_list_size / max_frame_size\n\nThat is about how many CONTINUATION frames would be needed to send\nheaders up to the max allowed size. We then multiply by that by a small\namount, to allow for implementations that don't perfectly pack into the\nminimum frames *needed*.\n\nIn practice, *much* more than that would be a very inefficient peer, or\na peer trying to waste resources.\n\nSee https://seanmonstar.com/blog/hyper-http2-continuation-flood/ for\nmore info.","shortMessageHtmlLink":"fix: limit number of CONTINUATION frames allowed"}},{"before":null,"after":"5c41f26d68f282f6f2f7087f8b693f1f8af4eaf0","ref":"refs/heads/sec-continuation","pushedAt":"2024-04-03T17:34:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: limit number of CONTINUATION frames allowed\n\nCalculate the amount of allowed CONTINUATION frames based on other\nsettings.\n\n max_header_list_size / max_frame_size\n\nThat is about how many CONTINUATION frames would be needed to send\nheaders up to the max allowed size. We then multiply by that by a small\namount, to allow for implementations that don't perfectly pack into the\nminimum frames *needed*.\n\nIn practice, *much* more than that would be a very inefficient peer, or\na peer trying to waste resources.\n\nSee https://seanmonstar.com/blog/hyper-http2-continuation-flood/ for\nmore info.","shortMessageHtmlLink":"fix: limit number of CONTINUATION frames allowed"}},{"before":"3a798327211345b9b2bf797e2e4f3aca4e0ddfee","after":"5b6c9e0da092728d702dff3607626aafb7809d77","ref":"refs/heads/0.3.x","pushedAt":"2024-04-02T19:43:34.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"refactor: cleanup new unused warnings (#757)","shortMessageHtmlLink":"refactor: cleanup new unused warnings (#757)"}},{"before":"7817c18b58dd0cdebc742cc8dc923b9fd8886e1d","after":null,"ref":"refs/heads/0.3-warnings","pushedAt":"2024-04-02T19:43:34.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"}},{"before":null,"after":"7817c18b58dd0cdebc742cc8dc923b9fd8886e1d","ref":"refs/heads/0.3-warnings","pushedAt":"2024-04-02T18:24:37.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"refactor: cleanup new unused warnings (#749)","shortMessageHtmlLink":"refactor: cleanup new unused warnings (#749)"}},{"before":"7ed7686a4cd9548b9e9c703f0d1490a0f2217992","after":null,"ref":"refs/heads/0.3-fix-flow","pushedAt":"2024-04-02T16:18:54.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"}},{"before":null,"after":"7ed7686a4cd9548b9e9c703f0d1490a0f2217992","ref":"refs/heads/0.3-fix-flow","pushedAt":"2024-04-02T16:17:24.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: stream flow control insufficient size before ack (#746)","shortMessageHtmlLink":"fix: stream flow control insufficient size before ack (#746)"}},{"before":"a8af2358647cd2a68f851dfe3228cc3116654223","after":"07fc8245ff8b58f581e0d3c5035b54eb14b69192","ref":"refs/heads/master","pushedAt":"2024-03-15T15:23:36.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"v0.4.3","shortMessageHtmlLink":"v0.4.3"}},{"before":"94e80b1c72bec282bb5d13596803e6fb341fec4c","after":"3a798327211345b9b2bf797e2e4f3aca4e0ddfee","ref":"refs/heads/0.3.x","pushedAt":"2024-03-15T15:18:40.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"v0.3.25","shortMessageHtmlLink":"v0.3.25"}},{"before":"7ed7686a4cd9548b9e9c703f0d1490a0f2217992","after":null,"ref":"refs/heads/0.3-fix-flow","pushedAt":"2024-03-15T15:14:58.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"}},{"before":"df9a2621138abb5c7733466c66e0da71314506b8","after":"7ed7686a4cd9548b9e9c703f0d1490a0f2217992","ref":"refs/heads/0.3-fix-flow","pushedAt":"2024-03-15T15:04:44.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: stream flow control insufficient size before ack (#746)","shortMessageHtmlLink":"fix: stream flow control insufficient size before ack (#746)"}},{"before":null,"after":"df9a2621138abb5c7733466c66e0da71314506b8","ref":"refs/heads/0.3-fix-flow","pushedAt":"2024-03-15T14:59:10.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"seanmonstar","name":"Sean McArthur","path":"/seanmonstar","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/51479?s=80&v=4"},"commit":{"message":"fix: stream flow control insufficient size before ack (#746)","shortMessageHtmlLink":"fix: stream flow control insufficient size before ack (#746)"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAERKJZMAA","startCursor":null,"endCursor":null}},"title":"Activity ยท hyperium/h2"}