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

fix(errors): Support writer options in the rust consumer #6788

Open
wants to merge 6 commits into
base: master
Choose a base branch
from

Conversation

evanh
Copy link
Member

@evanh evanh commented Jan 17, 2025

Currently the rust consumer doesn't load the writer options field in the config. This is needed by errors
to insert fields that don't exist in the tables yet.

Errors is the first user of this, to allow populating a new Nested column without actually writing it yet.

This will allow the consumer to insert fields that don't exist in the tables yet. This is needed for
adding a new field to a Nested column.
@evanh evanh requested a review from a team as a code owner January 17, 2025 19:30
@volokluev
Copy link
Member

Does the rust processor read this setting?

@evanh evanh changed the title fix(errors): Add input_format_skip_unknown_fields to errors fix(errors): Support writer options in the rust consumer Jan 21, 2025
@evanh
Copy link
Member Author

evanh commented Jan 21, 2025

Does the rust processor read this setting?

@volokluev this was a good point. I updated the PR to do this.

untitaker added a commit that referenced this pull request Jan 21, 2025
This was an experiment that is no longer needed.

In the future one could use writer-options as in #6788

blocked on getsentry/ops#13690 where we remove
the usage of those args
Copy link

codecov bot commented Jan 21, 2025

❌ 1 Tests Failed:

Tests completed Failed Passed Skipped
2834 1 2833 11
View the top 1 failed tests by shortest run time
_integration-test.test_01_basics::test_receive_event
Stack Traces | 69.6s run time
client_login = (<httpx.Client object at 0x7ffa3b3c2420>, <Response [200 OK]>)

    #x1B[0m#x1B[94mdef#x1B[39;49;00m #x1B[92mtest_receive_event#x1B[39;49;00m(client_login):#x1B[90m#x1B[39;49;00m
        event_id = #x1B[94mNone#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
        client, _ = client_login#x1B[90m#x1B[39;49;00m
        #x1B[94mwith#x1B[39;49;00m sentry_sdk.init(dsn=get_sentry_dsn(client)):#x1B[90m#x1B[39;49;00m
            event_id = sentry_sdk.capture_exception(#x1B[96mException#x1B[39;49;00m(#x1B[33m"#x1B[39;49;00m#x1B[33ma failure#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m))#x1B[90m#x1B[39;49;00m
        #x1B[94massert#x1B[39;49;00m event_id #x1B[95mis#x1B[39;49;00m #x1B[95mnot#x1B[39;49;00m #x1B[94mNone#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
>       response = poll_for_response(#x1B[90m#x1B[39;49;00m
            #x1B[33mf#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[33m{#x1B[39;49;00mSENTRY_TEST_HOST#x1B[33m}#x1B[39;49;00m#x1B[.../sentry/internal/events/#x1B[39;49;00m#x1B[33m{#x1B[39;49;00mevent_id#x1B[33m}#x1B[39;49;00m#x1B[33m/#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m, client#x1B[90m#x1B[39;49;00m
        )#x1B[90m#x1B[39;49;00m

#x1B[1m#x1B[31m_integration-test/test_01_basics.py#x1B[0m:129: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

request = 'http://localhost:.../internal/events/8d7731e47d31412ca37c8f941f6723db/'
client = <httpx.Client object at 0x7ffa3b3c2420>, validator = None

    #x1B[0m#x1B[94mdef#x1B[39;49;00m #x1B[92mpoll_for_response#x1B[39;49;00m(#x1B[90m#x1B[39;49;00m
        request: #x1B[96mstr#x1B[39;49;00m, client: httpx.Client, validator: Callable = #x1B[94mNone#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
    ) -> httpx.Response:#x1B[90m#x1B[39;49;00m
        #x1B[94mfor#x1B[39;49;00m i #x1B[95min#x1B[39;49;00m #x1B[96mrange#x1B[39;49;00m(TIMEOUT_SECONDS):#x1B[90m#x1B[39;49;00m
            response = client.get(#x1B[90m#x1B[39;49;00m
                request, follow_redirects=#x1B[94mTrue#x1B[39;49;00m, headers={#x1B[33m"#x1B[39;49;00m#x1B[33mReferer#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m: SENTRY_TEST_HOST}#x1B[90m#x1B[39;49;00m
            )#x1B[90m#x1B[39;49;00m
            #x1B[94mif#x1B[39;49;00m response.status_code == #x1B[94m200#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
                #x1B[94mif#x1B[39;49;00m validator #x1B[95mis#x1B[39;49;00m #x1B[94mNone#x1B[39;49;00m #x1B[95mor#x1B[39;49;00m validator(response.text):#x1B[90m#x1B[39;49;00m
                    #x1B[94mbreak#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
            time.sleep(#x1B[94m1#x1B[39;49;00m)#x1B[90m#x1B[39;49;00m
        #x1B[94melse#x1B[39;49;00m:#x1B[90m#x1B[39;49;00m
>           #x1B[94mraise#x1B[39;49;00m #x1B[96mAssertionError#x1B[39;49;00m(#x1B[90m#x1B[39;49;00m
                #x1B[33m"#x1B[39;49;00m#x1B[33mtimeout waiting for response status code 200 or valid data#x1B[39;49;00m#x1B[33m"#x1B[39;49;00m#x1B[90m#x1B[39;49;00m
            )#x1B[90m#x1B[39;49;00m
#x1B[1m#x1B[31mE           AssertionError: timeout waiting for response status code 200 or valid data#x1B[0m

#x1B[1m#x1B[31m_integration-test/test_01_basics.py#x1B[0m:40: AssertionError

To view more test analytics, go to the Test Analytics Dashboard
📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants