getnameinfo throws an exception when Addrinfo.getaddrinfo is given a nil port
維護者通常 1 天內回覆
還沒有人認領這個 Issue。
評估
- 難度
- 2/5
- 預估耗時
- 1-3 小時
- 新手友好度
- 62/100
- Issue 類型
- 缺陷
- 描述清晰度
- 描述清楚
- 活躍度
- 停滯
- 技術堆疊
- java
- 領域
- networking
研究方向
NullPointerException 來自 ext/socket/Addrinfo.java 中的 getnameinfo(約第 857-878 行),該處依連接埠查找服務名稱,並且在未做 null 檢查的情況下直接解參照結果。使用 issue 中的指令重現問題,然後檢查連接埠 0 或未知連接埠的查找會回傳什麼。完成標準是:getnameinfo 回傳數字連接埠字串(例如 "0"),而不是拋出例外,與 MRI 一致,且 socket 相關的 spec 仍然通過。
由索引模型根據 Issue 內容生成。
描述
Environment Information
$ uname -a
Linux bubbles 6.1.0-26-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.112-1 (2024-09-30) x86_64 GNU/Linux
$ ./jruby-9.4.12.0/bin/jruby -v
jruby 9.4.12.0 (3.1.4) 2025-02-11 f4ab75096a OpenJDK 64-Bit Server VM 17.0.13+11-Debian-2deb12u1 on 17.0.13+11-Debian-2deb12u1 +jit [x86_64-linux]
Expected Behavior
$ ruby -r socket -e 'p Addrinfo.getaddrinfo(Socket.gethostname, nil).first.getnameinfo'
["bubbles.example.com", "0"]
Actual Behavior
$ ./jruby-9.4.12.0/bin/jruby -r socket -e 'p Addrinfo.getaddrinfo(Socket.gethostname, nil).first.getnameinfo'
Unhandled Java exception: java.lang.NullPointerException: Cannot invoke "jnr.netdb.Service.getName()" because the return value of "jnr.netdb.Service.getServiceByPort(int, String)" is null
java.lang.NullPointerException: Cannot invoke "jnr.netdb.Service.getName()" because the return value of "jnr.netdb.Service.getServiceByPort(int, String)" is null
getnameinfo at org/jruby/ext/socket/Addrinfo.java:878
getnameinfo at org/jruby/ext/socket/Addrinfo.java:857
call at org/jruby/ext/socket/Addrinfo$INVOKER$i$getnameinfo.gen:-1
cacheAndCall at org/jruby/runtime/callsite/CachingCallSite.java:456
call at org/jruby/runtime/callsite/CachingCallSite.java:195
invokeOther3:getnameinfo at -e:1
RUBY$script at -e:1
run at -e:-1
invokeWithArguments at java/lang/invoke/MethodHandle.java:732
load at org/jruby/ir/Compiler.java:114
runScript at org/jruby/Ruby.java:1256
runNormally at org/jruby/Ruby.java:1168
runFromMain at org/jruby/Ruby.java:994
doRunFromMain at org/jruby/Main.java:396
internalRun at org/jruby/Main.java:280
run at org/jruby/Main.java:225
main at org/jruby/Main.java:197
- 主要語言
- Ruby
- 星號
- 3.9k
- 分支
- 951
- 平均合併
- 2 天 4 小時
- 30 天內合併 PR
- 96
環境準備
- 沒有 Dockerfile 或 Docker Compose 檔案
- 有 Pull Request 範本
- 閱讀貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
jruby/jruby 的其他 Issue
-
ffi stdlib
難度 2/5 1-3 小時 新手友好度 65/100
維護者通常 1 天內回覆
-
難度 4/5 3-5 天 新手友好度 46/100
維護者通常 1 天內回覆
-
難度 5/5 一週以上 新手友好度 22/100
維護者通常 1 天內回覆
-
難度 4/5 3-5 天 新手友好度 38/100
維護者通常 1 天內回覆
-
Implement native Win32 IO.pipe可能已有人在做 @byteit101 於 15 天前認領。 未關閉windows
jruby/jruby#9780 · 2 則留言 · 已指派 1 人 ·
維護者通常 1 天內回覆
相似的 Issue
-
Lint/NoReturnInMemoization flags `return` in local variable `||=` and `&&=` assignments可能已有人在做 @RaphaelFakhri 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 84/100
Shopify/ruby-style-guide#815 ·
-
難度 2/5 1-3 小時 新手友好度 83/100
zerocracy/judges-action#2849 ·
維護者通常 1 天內回覆
-
難度 2/5 1-3 小時 新手友好度 78/100
bigbluebutton/bigbluebutton#26166 ·
維護者通常 1 天內回覆
-
難度 1/5 1 小時以內 新手友好度 82/100
TarteelAI/quranic-universal-library#916 ·
維護者通常 1 天內回覆
-
good first issue
難度 2/5 1-3 小時 新手友好度 84/100
維護者通常 1 天內回覆