Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions .release-notes/next-release.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@

## Fix potential connection hang when timer event subscription fails

On some platforms, if the operating system cannot allocate resources for a connection timer (e.g., ENOMEM on kqueue or epoll), connections could hang silently instead of reporting an error. Timer subscription failures are now detected and reported as connection failures.

## Require ponyc 0.63.1 or later

github_rest_api now requires ponyc 0.63.1 or later. Older ponyc versions are no longer supported.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,14 @@ All notable changes to this project will be documented in this file. This projec

### Fixed

- Fix potential connection hang when timer event subscription fails ([PR #118](https://github.com/ponylang/github_rest_api/pull/118))

### Added


### Changed

- Require ponyc 0.63.1 or later ([PR #118](https://github.com/ponylang/github_rest_api/pull/118))

## [0.3.2] - 2026-04-07

Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ Additional API surface and functionality will be added as needed. If you need fu

## Installation

* Requires ponyc 0.63.1 or later
* Install [corral](https://github.com/ponylang/corral)
* `corral add github.com/ponylang/github_rest_api.git --version 0.3.2`
* `corral fetch` to fetch your dependencies
Expand Down
2 changes: 1 addition & 1 deletion corral.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
},
{
"locator": "github.com/ponylang/courier.git",
"version": "0.1.5"
"version": "0.2.0"
},
{
"locator": "github.com/ponylang/uri.git",
Expand Down
1 change: 1 addition & 0 deletions github_rest_api/paginated_list.pony
Original file line number Diff line number Diff line change
Expand Up @@ -241,6 +241,7 @@ actor LinkedJsonRequester is courier.HTTPClientConnectionActor
| courier.ConnectionFailedTCP => "Unable to connect"
| courier.ConnectionFailedSSL => "SSL handshake failed"
| courier.ConnectionFailedTimeout => "Connection timed out"
| courier.ConnectionFailedTimerError => "Connect timer failed"
end
_receiver.failure(0, "", consume msg)

Expand Down
1 change: 1 addition & 0 deletions github_rest_api/request/check_requester.pony
Original file line number Diff line number Diff line change
Expand Up @@ -118,6 +118,7 @@ actor CheckRequester is courier.HTTPClientConnectionActor
| courier.ConnectionFailedTCP => "Unable to connect"
| courier.ConnectionFailedSSL => "SSL handshake failed"
| courier.ConnectionFailedTimeout => "Connection timed out"
| courier.ConnectionFailedTimerError => "Connect timer failed"
end
_receiver.failure(0, "", consume msg)

Expand Down
1 change: 1 addition & 0 deletions github_rest_api/request/json_requester.pony
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,7 @@ actor JsonRequester is courier.HTTPClientConnectionActor
| courier.ConnectionFailedTCP => "Unable to connect"
| courier.ConnectionFailedSSL => "SSL handshake failed"
| courier.ConnectionFailedTimeout => "Connection timed out"
| courier.ConnectionFailedTimerError => "Connect timer failed"
end
_receiver.failure(0, "", consume msg)

Expand Down
1 change: 1 addition & 0 deletions github_rest_api/request/no_content_requester.pony
Original file line number Diff line number Diff line change
Expand Up @@ -136,6 +136,7 @@ actor NoContentRequester is courier.HTTPClientConnectionActor
| courier.ConnectionFailedTCP => "Unable to connect"
| courier.ConnectionFailedSSL => "SSL handshake failed"
| courier.ConnectionFailedTimeout => "Connection timed out"
| courier.ConnectionFailedTimerError => "Connect timer failed"
end
_receiver.failure(0, "", consume msg)

Expand Down
Loading