Skip to content
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

[bug] - Refactor newDiff constructor to avoid double initialization of contentWriter #2742

Merged
merged 6 commits into from
Apr 25, 2024

Conversation

ahrav
Copy link
Collaborator

@ahrav ahrav commented Apr 24, 2024

Description:

This PR addresses an issue in the newDiff constructor where the contentWriter could potentially be double initialized, leading to duplicate resource creation and potential resource leaks.

Screenshot 2024-04-24 at 2 01 27 PM

Suggested improvement for bufferwriter package:
While investigating the issue with the newDiff constructor, it became apparent that the current design of the bufferwriter package could be improved to make it more ergonomic and less prone to misuse.
Instead of allocating resources (i.e., the underlying buffer) in the New constructor, we should consider modifying the implementation to allocate resources lazily, only when the Write method is called for the first time. This lazy allocation approach would prevent potential resource leaks and make it easier to use the package correctly.

Checklist:

  • Tests passing (make test-community)?
  • Lint passing (make lint this requires golangci-lint)?

@ahrav ahrav requested a review from a team April 24, 2024 21:27
@ahrav ahrav marked this pull request as ready for review April 24, 2024 21:31
@ahrav ahrav requested a review from a team as a code owner April 24, 2024 21:31
@ahrav ahrav mentioned this pull request Apr 25, 2024
2 tasks
Comment on lines +2385 to +2386
mockWriter := newMockContentWriter()
assert.NotNil(t, mockWriter, "Failed to create mockWriter")
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is mockWriter doing anything useful in this test? It seems to be just a test fixture.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤦 Thank you for catching this. I updated the test to ensure mockContentWriter implements contentWriter as well as using it as part of the opts for the second test case.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm still not sure I understand how the test catches double initialization. It looks like counter is set to 1 in newMockContentWriter() and never modified, so it'll always be 1 regardless of what newDiff does.

@ahrav ahrav merged commit 8ceeb5d into main Apr 25, 2024
12 checks passed
@ahrav ahrav deleted the bug-duplicate-buffer-creation branch April 25, 2024 15:01
mcastorina added a commit that referenced this pull request Apr 25, 2024
This wasn't actually testing the fix, which is more difficult to
orchestrate than is worth.

See: #2742
@mcastorina mcastorina mentioned this pull request Apr 25, 2024
2 tasks
mcastorina added a commit that referenced this pull request Apr 25, 2024
This wasn't actually testing the fix, which is more difficult to
orchestrate than is worth.

See: #2742
haraldh added a commit to matter-labs/vault-auth-tee that referenced this pull request May 6, 2024
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
|
[trufflesecurity/trufflehog](https://togithub.com/trufflesecurity/trufflehog)
| action | minor | `v3.74.0` -> `v3.75.0` |

---

### Release Notes

<details>
<summary>trufflesecurity/trufflehog
(trufflesecurity/trufflehog)</summary>

###
[`v3.75.0`](https://togithub.com/trufflesecurity/trufflehog/releases/tag/v3.75.0)

[Compare
Source](https://togithub.com/trufflesecurity/trufflehog/compare/v3.74.0...v3.75.0)

#### What's Changed

- \[chore] - update buffer metrics by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2737
- fix(deps): update module github.com/aws/aws-sdk-go to v1.51.28 by
[@&#8203;renovate](https://togithub.com/renovate) in
[trufflesecurity/trufflehog#2741
- chore(deps): update golangci/golangci-lint-action action to v5 by
[@&#8203;renovate](https://togithub.com/renovate) in
[trufflesecurity/trufflehog#2744
- Scan commit metadata by [@&#8203;rgmz](https://togithub.com/rgmz) in
[trufflesecurity/trufflehog#2713
- Fix SQL Server detector tests by
[@&#8203;rosecodym](https://togithub.com/rosecodym) in
[trufflesecurity/trufflehog#2716
- Revert "Scan commit metadata" by
[@&#8203;rosecodym](https://togithub.com/rosecodym) in
[trufflesecurity/trufflehog#2747
- \[bug] - Refactor newDiff constructor to avoid double initialization
of contentWriter by [@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2742
- \[chore] - update buffered file writer metric by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2740
- \[refactor] - lazy buffer retrieval by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2745
- \[chore] Remove broken test by
[@&#8203;mcastorina](https://togithub.com/mcastorina) in
[trufflesecurity/trufflehog#2748
- \[bug] - fix buffer size metric by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2749
- \[bug] - Fix the metric for buffered file writer writes by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2750
- fix(deps): update module github.com/aws/aws-sdk-go to v1.51.29 by
[@&#8203;renovate](https://togithub.com/renovate) in
[trufflesecurity/trufflehog#2751
- update integration logos by
[@&#8203;dustin-decker](https://togithub.com/dustin-decker) in
[trufflesecurity/trufflehog#2752
- fix(deps): update module github.com/aws/aws-sdk-go to v1.51.30 by
[@&#8203;renovate](https://togithub.com/renovate) in
[trufflesecurity/trufflehog#2756
- \[chore] - add additional binary extension by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2760
- pkg: fix function names in comment by
[@&#8203;mountcount](https://togithub.com/mountcount) in
[trufflesecurity/trufflehog#2761
- \[chore] - ignore pbix and vsdx files by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2762
- fix(deps): update module github.com/aws/aws-sdk-go to v1.51.31 by
[@&#8203;renovate](https://togithub.com/renovate) in
[trufflesecurity/trufflehog#2763
- Scan commit metadata by [@&#8203;rgmz](https://togithub.com/rgmz) in
[trufflesecurity/trufflehog#2754
- \[bug] - Correctly set metrics for enumerated orgs by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2757
- \[chore ] -Update ignore extensions by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2764
- \[chore] Add some happy path logs to GitLab by
[@&#8203;mcastorina](https://togithub.com/mcastorina) in
[trufflesecurity/trufflehog#2765
- Fix Git source test by [@&#8203;rgmz](https://togithub.com/rgmz) in
[trufflesecurity/trufflehog#2767
- \[feat] - buffered file reader by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2731
- \[feat] - Add ReadFrom method to BufferedFileWriter by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2759
- fix(deps): update module google.golang.org/protobuf to v1.34.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[trufflesecurity/trufflehog#2766
- \[bug] - Improve BufferedFileReader Close Behavior by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2768
- fixes calendly api key regex by
[@&#8203;ankushgoel27](https://togithub.com/ankushgoel27) in
[trufflesecurity/trufflehog#2368
- Expose detector-specific false positive logic by
[@&#8203;rosecodym](https://togithub.com/rosecodym) in
[trufflesecurity/trufflehog#2743
- Detector-Fix: Reintroduce Cloudflareglobalapikey by
[@&#8203;ankushgoel27](https://togithub.com/ankushgoel27) in
[trufflesecurity/trufflehog#2101
- Detector-Competition-Fix - fixed the alchemy detector regex by
[@&#8203;ankushgoel27](https://togithub.com/ankushgoel27) in
[trufflesecurity/trufflehog#1821
- fix(deps): update module github.com/aws/aws-sdk-go to v1.51.32 by
[@&#8203;renovate](https://togithub.com/renovate) in
[trufflesecurity/trufflehog#2769
- fix(deps): update module google.golang.org/api to v0.177.0 by
[@&#8203;renovate](https://togithub.com/renovate) in
[trufflesecurity/trufflehog#2770
- \[chore] - update imports by
[@&#8203;ahrav](https://togithub.com/ahrav) in
[trufflesecurity/trufflehog#2772
- adds build version to finished scanning log by
[@&#8203;zricethezav](https://togithub.com/zricethezav) in
[trufflesecurity/trufflehog#2773
- Update rabbitmq.go regex detect amqps protocol by
[@&#8203;NikhilPanwar](https://togithub.com/NikhilPanwar) in
[trufflesecurity/trufflehog#2609
- fix for infinite recursion in Postman var sub by
[@&#8203;zricethezav](https://togithub.com/zricethezav) in
[trufflesecurity/trufflehog#2780

#### New Contributors

- [@&#8203;mountcount](https://togithub.com/mountcount) made their first
contribution in
[trufflesecurity/trufflehog#2761

**Full Changelog**:
trufflesecurity/trufflehog@v3.74.0...v3.75.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/matter-labs/vault-auth-tee).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMzEuMCIsInVwZGF0ZWRJblZlciI6IjM3LjMzMS4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants