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

warnings.warn print whole overflowing message, I think this is a bug #134

Open
MajorAdam opened this issue Dec 2, 2021 · 1 comment · May be fixed by #136
Open

warnings.warn print whole overflowing message, I think this is a bug #134

MajorAdam opened this issue Dec 2, 2021 · 1 comment · May be fixed by #136

Comments

@MajorAdam
Copy link

warnings.warn(

@nklapste
Copy link
Collaborator

Thanks for pointing this out!

Normally, Python warnings should be only be written out to sys.stderr and are normally not logged by Python's standard logging. As such, the warning message created by this call (containing the whole GELF overflowing message) would not be logged by graypy and would be only visible on sys.stderr.

However, there is an exception to this, if logging.captureWarnings(capture=True) is called and the py.warnings logger was configured to have a graypy logging handler added. This will enable Python's logging to capture and log these overflowing warnings with graypy which then proceeds to infinitely recurse. To avoid this infinite recursion you can ignore GELFChunkOverflowWarning warnings with prefixing your code with:

warnings.filterwarnings("ignore", category=GELFChunkOverflowWarning)

Note, doing this will silently ignore any overflowing message warnings. And if using the GELFWarningChunker you will have no indication in either sys.stderr or your Graylog logs that a overflowing message was dropped.

I'll take a look if a mitigation can be made for when logging.captureWarnings(capture=True) is set. But, otherwise on normal Python logging instances this warning should not cause issues.

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 a pull request may close this issue.

2 participants