Raise a more descriptive error message for pg_ext LoadError#664
Merged
larskanis merged 1 commit intoged:masterfrom Aug 28, 2025
Merged
Raise a more descriptive error message for pg_ext LoadError#664larskanis merged 1 commit intoged:masterfrom
larskanis merged 1 commit intoged:masterfrom
Conversation
471ffea to
b1d2919
Compare
cbandy
reviewed
Aug 10, 2025
If the `3.4/pg_ext.so` doesn't load, the specific error message is overwritten by the subsequent LoadError of `pg_ext.so`.
This is bad since this can hide valuable information about the load error, like a missing dependency.
One such mussing dependency can be the required GLIBC version.
This patch adds a more descriptive error message containing both attempts to load the C extension.
And it adds an additional help text for the special case of a GLIBC load error.
The old error:
```
cannot load such file -- pg_ext (LoadError)
```
The new error:
```
pg's C extension failed to load: (LoadError)
/lib/x86_64-linux-gnu/libm.so.6: version `GLIBC_2.29' not found (required by /root/.rubies/ruby-3.2.9/lib/ruby/gems/3.2.0/gems/pg-1.6.1-x86_64-linux/lib/3.2/pg_ext.so) - /root/.rubies/ruby-3.2.9/lib/ruby/gems/3.2.0/gems/pg-1.6.1-x86_64-linux/lib/3.2/pg_ext.so
cannot load such file -- pg_ext
The GLIBC version of this system seems too old. Please use the source version of pg:
gem uninstall pg --all
gem install pg --platform ruby
or in your Gemfile:
gem "pg", force_ruby_platform: true
See also: https://github.com/ged/ruby-pg/blob/master/README.md#source-gem
```
Changing from tabs to spaces for better message formatting.
Relates to ged#661
b1d2919 to
f927f51
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
If the
3.4/pg_ext.sodoesn't load, the specific error message is overwritten by the subsequent LoadError ofpg_ext.so. This is bad since this can hide valuable information about the load error, like a missing dependency. One such mussing dependency can be the required GLIBC version.This patch adds a more descriptive error message containing both attempts to load the C extension. And it adds an additional help text for the special case of a GLIBC load error.
The old error:
The new error:
Changing from tabs to spaces for better message formatting.
Relates to #661