jjatria/perl-opentelemetry-exporter-otlp

"Use of uninitialized value in bitwise and (&)" on shutdown

Closed this issue · 2 comments

abh commented

I realize this probably isn't in the exporter exactly, but I regularly have processes hang on shutdown and spewing errors like this endlessly (~30-40GB worth per hour):

Use of uninitialized value in bitwise and (&) at /Users/ask/perl5/perlbrew/perls/perl-5.38.0/lib/site_perl/5.38.0/IO/Async/Stream.pm line 998 during global destruction.
Use of uninitialized value in bitwise and (&) at /Users/ask/perl5/perlbrew/perls/perl-5.38.0/lib/site_perl/5.38.0/IO/Async/Stream.pm line 999 during global destruction.

This issue is making the code borderline unusable for me. If necessary I'd rather have the code just need an explicit flush (and no async anything).

I'm running Plack with a bunch of custom code under Starman. I've no idea if that's a very outdated way of doing things; I can easily replace Starman if there's another more recommended Plack "runner".

I'd rather have the code just need an explicit flush (and no async anything)

What do you mean by this? You might be able to accomplish this by calling force_flush when you think is appropriate, or by setting up the span processor yourself (eg. an OTLP exporter with a simple processor, or with a custom one).

I'm running Plack with a bunch of custom code under Starman. I've no idea if that's a very outdated way of doing things; I can easily replace Starman if there's another more recommended Plack "runner".

The batch processor currently relies on an IO::Async::Function to do its work. I've had success running it on a Plack-based application, but I had to switch from Starman to Net::Async::HTTP::Server. It was mostly a case of

-starman ...
+plackup -s Net::Async::HTTP::Server ...

Maybe this will help in your case?

If not, since the warning is being issued from IO::Async code, maybe asking about it in #io-async on irc.perl.org will help.

I will close this as there seems to be nothing to do. If this is still an issue, please feel free to re-open.