-
Notifications
You must be signed in to change notification settings - Fork 81
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bugfix that caused an error when argument has 3 or more nil arguments #2517
Conversation
…e nil values Signed-off-by: hlts2 <hiroto.funakoshi.hiroto@gmail.com>
WalkthroughThe Changes
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
[CHATOPS:HELP] ChatOps commands.
|
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #2517 +/- ##
==========================================
+ Coverage 18.91% 18.95% +0.04%
==========================================
Files 565 565
Lines 65221 65225 +4
==========================================
+ Hits 12334 12362 +28
+ Misses 52089 52063 -26
- Partials 798 800 +2 ☔ View full report in Codecov by Sentry. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
Outside diff range and nitpick comments (1)
internal/errors/errors.go (1)
Line range hint
266-295
: Refactor theJoin
function to simplify the error handling logic and reduce redundancy.func Join(errs ...error) error { var nonNilErrors []error for _, err := range errs { if err != nil { nonNilErrors = append(nonNilErrors, err) } } switch len(nonNilErrors) { case 0: return nil case 1: return nonNilErrors[0] default: return &joinError{errs: nonNilErrors} } }This refactor simplifies the error handling by collecting non-nil errors first and then deciding the return based on the number of non-nil errors. This approach avoids unnecessary type assertions and simplifies the logic.
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (2)
- internal/errors/errors.go (2 hunks)
- internal/errors/errors_test.go (3 hunks)
Additional comments not posted (2)
internal/errors/errors_test.go (2)
1654-1707
: The structure of theTestJoin
function and its test cases are well-defined and adhere to best practices for concurrency and memory leak prevention.
1654-1707
: Implementation details such as the use ofgoleak.VerifyNone
for goroutine leak checks and deferred cleanup are correctly applied, enhancing the robustness of the tests.
Signed-off-by: hlts2 <hiroto.funakoshi.hiroto@gmail.com>
Deploying vald with
|
Latest commit: |
4733c80
|
Status: | ✅ Deploy successful! |
Preview URL: | https://42215b08.vald.pages.dev |
Branch Preview URL: | https://bugfix-internal-errors-join.vald.pages.dev |
internal/errors/errors.go
Outdated
if x != nil { | ||
e = x | ||
} else { | ||
e = &joinError{ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Since you are instantiating a new joinError in all cases, why not simply check if e is nil after the Switch and create a new one only if it is nil?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for your feedback. I fixed it!
8009a29
Co-authored-by: Yusuke Kato <kpango@vdaas.org> Signed-off-by: Hiroto Funakoshi <hiroto.funakoshi.hiroto@gmail.com>
Signed-off-by: hlts2 <hiroto.funakoshi.hiroto@gmail.com>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 0
Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Files selected for processing (2)
- internal/errors/errors.go (2 hunks)
- internal/errors/errors_test.go (3 hunks)
Files skipped from review as they are similar to previous changes (1)
- internal/errors/errors_test.go
Additional context used
GitHub Check: codecov/patch
internal/errors/errors.go
[warning] 266-267: internal/errors/errors.go#L266-L267
Added lines #L266 - L267 were not covered by tests
[warning] 271-272: internal/errors/errors.go#L271-L272
Added lines #L271 - L272 were not covered by tests
Additional comments not posted (1)
internal/errors/errors.go (1)
Line range hint
266-288
: Ensure newly added logic inJoin
function is covered by tests.The changes in the
Join
function to handle multiplenil
errors and the initialization ofe
based on conditions look good. However, these changes are not covered by tests according to the static analysis report. It's crucial to ensure that the new logic works as expected under different scenarios.Verification successful
The extracted content of the
TestJoin
function shows that it includes test cases for various scenarios, including when all errors arenil
, when all errors are non-nil
and different, and when errors are mixednil
and non-nil
. These test cases sufficiently cover the new logic added to theJoin
function.
return nil when all errors are nil
returns an aggregated error when all errors are non-nil and different
returns an error when errors are mixed nil and non-nil
These scenarios ensure that the changes in the
Join
function are thoroughly tested.Scripts executed
The following scripts were executed for the analysis:
Script:
#!/bin/bash # Description: Check if the test file `errors_test.go` contains tests for the new logic in `Join` function. # Test: Search for the test cases related to the new logic in `Join` function. rg --type go $'TestJoin' internal/errors/errors_test.goLength of output: 84
Script:
#!/bin/bash # Description: Extract the content of the TestJoin function to verify if it covers the new logic in the Join function. # Extract the TestJoin function from the test file. ast-grep --lang go --pattern $'func TestJoin($_) { $$$ }' internal/errors/errors_test.goLength of output: 4626
Tools
GitHub Check: codecov/patch
[warning] 266-267: internal/errors/errors.go#L266-L267
Added lines #L266 - L267 were not covered by tests
[warning] 271-272: internal/errors/errors.go#L271-L272
Added lines #L271 - L272 were not covered by tests
…#2517) * fix: bugfix a problem that caused an error when argument has 3 or more nil values Signed-off-by: hlts2 <hiroto.funakoshi.hiroto@gmail.com> * fix: apply coderabbit suggestion Signed-off-by: hlts2 <hiroto.funakoshi.hiroto@gmail.com> * Update internal/errors/errors.go Co-authored-by: Yusuke Kato <kpango@vdaas.org> Signed-off-by: Hiroto Funakoshi <hiroto.funakoshi.hiroto@gmail.com> * fix: create error if e is nil Signed-off-by: hlts2 <hiroto.funakoshi.hiroto@gmail.com> --------- Signed-off-by: hlts2 <hiroto.funakoshi.hiroto@gmail.com> Signed-off-by: Hiroto Funakoshi <hiroto.funakoshi.hiroto@gmail.com> Co-authored-by: Yusuke Kato <kpango@vdaas.org>
…#2517) (#2520) * fix: bugfix a problem that caused an error when argument has 3 or more nil values * fix: apply coderabbit suggestion * Update internal/errors/errors.go * fix: create error if e is nil --------- Signed-off-by: hlts2 <hiroto.funakoshi.hiroto@gmail.com> Signed-off-by: Hiroto Funakoshi <hiroto.funakoshi.hiroto@gmail.com> Co-authored-by: Hiroto Funakoshi <hiroto.funakoshi.hiroto@gmail.com> Co-authored-by: Yusuke Kato <kpango@vdaas.org>
fix: git add chart directory for release (#2356) (#2357) [patch] release v1.7.11 (#2358) :bookmark: :robot: Release v1.7.11 (#2360) Change docker scan timeout longer (#2363) (#2364) refactor code using golangci-lint (#2362) (#2365) Create SECURITY.md (#2367) (#2368) add commit hash build image (#2359) (#2371) update docker build target platform selection rules (#2370) (#2374) Make agent export index metrics to Pod k8s resource (#2319) (#2372) backport ci deps others (#2386) Update workflow to release readreplica chart (#2383) (#2387) :green_heart: :recycle: Add Con-Bench helm chart to the Vald charts (#2388) (#2389) Delete unnecessary code for mirror (#2366) (#2391) change JP logo to EN logo (#2369) (#2392) Add rotate-all option to rotator (#2305) (#2393) fix: build error of internal kvs test (#2396) (#2398) Resolve kvs already closed before last saving (#2390) (#2394) :robot: Update license headers / Format Go codes and YAML files (#2397) (#2400) create continous benchmark doc (#2352) (#2395) fix: disable protobuf dispatch for client (#2401) (#2403) update deps (#2404) (#2405) [patch] release v1.7.12 (#2406) :bookmark: :robot: Release v1.7.12 (#2408) :pencil: Fix typo of file name (#2413) (#2415) Fix agent-faiss build failed (#2418) (#2419) Add tests for index information export (#2412) (#2414) Fix the logic to determine docker image (#2410) (#2420) Update build rule for nightly image (#2421) (#2422) Fix output settings to determine-docker-image-tag action and release branch build tag name (#2423) (#2425) Add `index-operator` template implementation (#2375) (#2424) fix: typo of execution rule (#2426) (#2427) Backport Flush API (#2434) update deps & add validation for Flush API when agent is Read Only (#2433) (#2436) docs: add hrichiksite as a contributor for doc (#2441) (#2442) fix: bugfix version update for docker build (#2445) (#2446) Fix index job logic to pass DNS A record (#2438) (#2448) Added snapshot timestamp annotations to read replica agent (#2428) (#2443) Fix operator-sdk version (#2447) (#2449) add file name lint (#2417) (#2450) fix: add extra option for ci-container build (#2451) (#2452) Add base of benchmark operator dashboard (#2430) (#2453) Implement index operator logic for read replica rotation (#2444) (#2456) add inner product distance type for ngt (#2454) (#2458) Fix e2e for read replica and add e2e for index operator (#2455) (#2459) Add unit tests for index operator (#2460) (#2461) Bugfix recreate benchmark job when operator reboot (#2463) (#2464) Refactor k8s types (#2462) (#2465) :robot: Automatically update PULL_REQUEST_TEMPLATE and ISSUE_TEMPLATE (#2457) (#2469) Fix workflow trigger for backport pr creation (#2471) (#2472) Automatically add backport main label for release-pr (#2473) (#2475) update deps (#2468) (#2476) Implement client metrics interceptor for continuous benchmark job (#2477) (#2480) :chart_with_upwards_trend: Add client metrics panels for continuous benchmark job (#2481) (#2483) Update continuous benchmark docs (#2485) (#2486) Sync release/v1.7 to main (#2495) add read replica and rotator docs (#2497) (#2499) add reviewer guideline (#2507) (#2508) update large top-K ratio handling logic (#2509) (#2511) Change default image tag from latest to nightly (#2516) (#2518) Bugfix that caused an error when argument has 3 or more nil arguments (#2517) (#2520) add faiss in values.yaml & valdrelease.yaml (#2514) (#2519) capitalize faq (#2512) (#2522) Backport docs updates to release/v1.7 (#2521) [CI] Add workflow to synchronize ubuntu base image (#2526) (#2527) fix: update schedule (#2528) (#2530) refactor index manager service add index service API to expose index informations (#2525) (#2532) fix conflict bug (#2537) fix: make format (#2534) (#2540) Backport PR #2542, #2538 to release/v1.7 (#2543) fix: add checkout option (#2545) (#2546) Implement ngt Statistics API (#2539) (#2547) Add workflow to check git conflict for backport PR (#2548) (#2550) [create-pull-request] automated change (#2552) (#2556) Update dependencies, C++ standard, and improve Dockerfiles for better build systems and localization (#2549) (#2557) Backport #2559 (#2560) [BUGFIX] index correction process (#2565) (#2566) change external docker image reference to ghcr.io registry (#2567) (#2568) [patch] Release v1.7.13 (#2569) :bookmark: :robot: Release v1.7.13 (#2570) add HTTP2 support for http.Client and Vald HTTP Server (#2572) (#2575) Signed-off-by: kpango <kpango@vdaas.org>
fix: git add chart directory for release (#2356) (#2357) [patch] release v1.7.11 (#2358) :bookmark: :robot: Release v1.7.11 (#2360) Change docker scan timeout longer (#2363) (#2364) refactor code using golangci-lint (#2362) (#2365) Create SECURITY.md (#2367) (#2368) add commit hash build image (#2359) (#2371) update docker build target platform selection rules (#2370) (#2374) Make agent export index metrics to Pod k8s resource (#2319) (#2372) backport ci deps others (#2386) Update workflow to release readreplica chart (#2383) (#2387) :green_heart: :recycle: Add Con-Bench helm chart to the Vald charts (#2388) (#2389) Delete unnecessary code for mirror (#2366) (#2391) change JP logo to EN logo (#2369) (#2392) Add rotate-all option to rotator (#2305) (#2393) fix: build error of internal kvs test (#2396) (#2398) Resolve kvs already closed before last saving (#2390) (#2394) :robot: Update license headers / Format Go codes and YAML files (#2397) (#2400) create continous benchmark doc (#2352) (#2395) fix: disable protobuf dispatch for client (#2401) (#2403) update deps (#2404) (#2405) [patch] release v1.7.12 (#2406) :bookmark: :robot: Release v1.7.12 (#2408) :pencil: Fix typo of file name (#2413) (#2415) Fix agent-faiss build failed (#2418) (#2419) Add tests for index information export (#2412) (#2414) Fix the logic to determine docker image (#2410) (#2420) Update build rule for nightly image (#2421) (#2422) Fix output settings to determine-docker-image-tag action and release branch build tag name (#2423) (#2425) Add `index-operator` template implementation (#2375) (#2424) fix: typo of execution rule (#2426) (#2427) Backport Flush API (#2434) update deps & add validation for Flush API when agent is Read Only (#2433) (#2436) docs: add hrichiksite as a contributor for doc (#2441) (#2442) fix: bugfix version update for docker build (#2445) (#2446) Fix index job logic to pass DNS A record (#2438) (#2448) Added snapshot timestamp annotations to read replica agent (#2428) (#2443) Fix operator-sdk version (#2447) (#2449) add file name lint (#2417) (#2450) fix: add extra option for ci-container build (#2451) (#2452) Add base of benchmark operator dashboard (#2430) (#2453) Implement index operator logic for read replica rotation (#2444) (#2456) add inner product distance type for ngt (#2454) (#2458) Fix e2e for read replica and add e2e for index operator (#2455) (#2459) Add unit tests for index operator (#2460) (#2461) Bugfix recreate benchmark job when operator reboot (#2463) (#2464) Refactor k8s types (#2462) (#2465) :robot: Automatically update PULL_REQUEST_TEMPLATE and ISSUE_TEMPLATE (#2457) (#2469) Fix workflow trigger for backport pr creation (#2471) (#2472) Automatically add backport main label for release-pr (#2473) (#2475) update deps (#2468) (#2476) Implement client metrics interceptor for continuous benchmark job (#2477) (#2480) :chart_with_upwards_trend: Add client metrics panels for continuous benchmark job (#2481) (#2483) Update continuous benchmark docs (#2485) (#2486) Sync release/v1.7 to main (#2495) add read replica and rotator docs (#2497) (#2499) add reviewer guideline (#2507) (#2508) update large top-K ratio handling logic (#2509) (#2511) Change default image tag from latest to nightly (#2516) (#2518) Bugfix that caused an error when argument has 3 or more nil arguments (#2517) (#2520) add faiss in values.yaml & valdrelease.yaml (#2514) (#2519) capitalize faq (#2512) (#2522) Backport docs updates to release/v1.7 (#2521) [CI] Add workflow to synchronize ubuntu base image (#2526) (#2527) fix: update schedule (#2528) (#2530) refactor index manager service add index service API to expose index informations (#2525) (#2532) fix conflict bug (#2537) fix: make format (#2534) (#2540) Backport PR #2542, #2538 to release/v1.7 (#2543) fix: add checkout option (#2545) (#2546) Implement ngt Statistics API (#2539) (#2547) Add workflow to check git conflict for backport PR (#2548) (#2550) [create-pull-request] automated change (#2552) (#2556) Update dependencies, C++ standard, and improve Dockerfiles for better build systems and localization (#2549) (#2557) Backport #2559 (#2560) [BUGFIX] index correction process (#2565) (#2566) change external docker image reference to ghcr.io registry (#2567) (#2568) [patch] Release v1.7.13 (#2569) :bookmark: :robot: Release v1.7.13 (#2570) add HTTP2 support for http.Client and Vald HTTP Server (#2572) (#2575) Signed-off-by: kpango <kpango@vdaas.org>
fix: git add chart directory for release (#2356) (#2357) [patch] release v1.7.11 (#2358) :bookmark: :robot: Release v1.7.11 (#2360) Change docker scan timeout longer (#2363) (#2364) refactor code using golangci-lint (#2362) (#2365) Create SECURITY.md (#2367) (#2368) add commit hash build image (#2359) (#2371) update docker build target platform selection rules (#2370) (#2374) Make agent export index metrics to Pod k8s resource (#2319) (#2372) backport ci deps others (#2386) Update workflow to release readreplica chart (#2383) (#2387) :green_heart: :recycle: Add Con-Bench helm chart to the Vald charts (#2388) (#2389) Delete unnecessary code for mirror (#2366) (#2391) change JP logo to EN logo (#2369) (#2392) Add rotate-all option to rotator (#2305) (#2393) fix: build error of internal kvs test (#2396) (#2398) Resolve kvs already closed before last saving (#2390) (#2394) :robot: Update license headers / Format Go codes and YAML files (#2397) (#2400) create continous benchmark doc (#2352) (#2395) fix: disable protobuf dispatch for client (#2401) (#2403) update deps (#2404) (#2405) [patch] release v1.7.12 (#2406) :bookmark: :robot: Release v1.7.12 (#2408) :pencil: Fix typo of file name (#2413) (#2415) Fix agent-faiss build failed (#2418) (#2419) Add tests for index information export (#2412) (#2414) Fix the logic to determine docker image (#2410) (#2420) Update build rule for nightly image (#2421) (#2422) Fix output settings to determine-docker-image-tag action and release branch build tag name (#2423) (#2425) Add `index-operator` template implementation (#2375) (#2424) fix: typo of execution rule (#2426) (#2427) Backport Flush API (#2434) update deps & add validation for Flush API when agent is Read Only (#2433) (#2436) docs: add hrichiksite as a contributor for doc (#2441) (#2442) fix: bugfix version update for docker build (#2445) (#2446) Fix index job logic to pass DNS A record (#2438) (#2448) Added snapshot timestamp annotations to read replica agent (#2428) (#2443) Fix operator-sdk version (#2447) (#2449) add file name lint (#2417) (#2450) fix: add extra option for ci-container build (#2451) (#2452) Add base of benchmark operator dashboard (#2430) (#2453) Implement index operator logic for read replica rotation (#2444) (#2456) add inner product distance type for ngt (#2454) (#2458) Fix e2e for read replica and add e2e for index operator (#2455) (#2459) Add unit tests for index operator (#2460) (#2461) Bugfix recreate benchmark job when operator reboot (#2463) (#2464) Refactor k8s types (#2462) (#2465) :robot: Automatically update PULL_REQUEST_TEMPLATE and ISSUE_TEMPLATE (#2457) (#2469) Fix workflow trigger for backport pr creation (#2471) (#2472) Automatically add backport main label for release-pr (#2473) (#2475) update deps (#2468) (#2476) Implement client metrics interceptor for continuous benchmark job (#2477) (#2480) :chart_with_upwards_trend: Add client metrics panels for continuous benchmark job (#2481) (#2483) Update continuous benchmark docs (#2485) (#2486) Sync release/v1.7 to main (#2495) add read replica and rotator docs (#2497) (#2499) add reviewer guideline (#2507) (#2508) update large top-K ratio handling logic (#2509) (#2511) Change default image tag from latest to nightly (#2516) (#2518) Bugfix that caused an error when argument has 3 or more nil arguments (#2517) (#2520) add faiss in values.yaml & valdrelease.yaml (#2514) (#2519) capitalize faq (#2512) (#2522) Backport docs updates to release/v1.7 (#2521) [CI] Add workflow to synchronize ubuntu base image (#2526) (#2527) fix: update schedule (#2528) (#2530) refactor index manager service add index service API to expose index informations (#2525) (#2532) fix conflict bug (#2537) fix: make format (#2534) (#2540) Backport PR #2542, #2538 to release/v1.7 (#2543) fix: add checkout option (#2545) (#2546) Implement ngt Statistics API (#2539) (#2547) Add workflow to check git conflict for backport PR (#2548) (#2550) [create-pull-request] automated change (#2552) (#2556) Update dependencies, C++ standard, and improve Dockerfiles for better build systems and localization (#2549) (#2557) Backport #2559 (#2560) [BUGFIX] index correction process (#2565) (#2566) change external docker image reference to ghcr.io registry (#2567) (#2568) [patch] Release v1.7.13 (#2569) :bookmark: :robot: Release v1.7.13 (#2570) add HTTP2 support for http.Client and Vald HTTP Server (#2572) (#2575) Signed-off-by: kpango <kpango@vdaas.org>
Description
I fixed a problem that the result of Join does not return nil when three or more nil arguments are given.
Related Issue
Versions
Checklist
Special notes for your reviewer
Summary by CodeRabbit
Bug Fixes
nil
for empty ornil
error lists.Tests