Maybe this symbolizer warning is just a red herring, hard to say.
I've tried to create very long identifiers using this modified tsan test:
https://gist.githubusercontent.com/dvyukov/a8f167c5e62349ede83db3b69e77533b/raw/d500a54803d04140a581705a948844fa69080891/gistfile1.txt
and giving compiler different values in -DXXX=NNN, e.g. 1000, 2000.
And also with -DLongLongLongLong=AAA.
It easily triggers the "WARNING: Symbolizer buffer too small", but no crashes.
I don't have any other ideas so far. Maybe just some memory corruption.
On Fri, Jul 17, 2020 at 10:48 AM Christian Holler <
cho...@mozilla.com> wrote:
>
> Sorry for the long delay here, but I finally found time to work on this
> now and managed to reproduce it with some debug patch applied to our
> compiler-rt.
>
> So far, the only information I have is by changing the output here:
>
> > @@ -530,12 +531,23 @@ bool SymbolizerProcess::ReadFromSymbolizer(char
> > *buffer, uptr max_length) {
> > if (ReachedEndOfOutput(buffer, read_len))
> > break;
> > if (read_len + 1 == max_length) {
> > - Report("WARNING: Symbolizer buffer too small\n");
> > + Report("WARNING: Symbolizer buffer too small (%zu, %zu,
> > %zu)\n", read_len, max_length, just_read);
> > read_len = 0;
> > break;
> > }
> > }
>
> With that, I see that the WARNINGs look like this:
>
> [task 2020-07-16T19:57:55.124Z] 19:57:55 INFO - GECKO(1266) |
> ==1385==WARNING: Symbolizer buffer too small (16383, 16384, 4095)
> [task 2020-07-16T19:57:55.125Z] 19:57:55 INFO - GECKO(1266) |
> ==1385==WARNING: Symbolizer buffer too small (16383, 16384, 4094)
> [task 2020-07-16T19:57:55.126Z] 19:57:55 INFO - GECKO(1266) |
> ==1385==WARNING: Symbolizer buffer too small (16383, 16384, 16383)
> [task 2020-07-16T19:57:55.127Z] 19:57:55 INFO - GECKO(1266) |
> ThreadSanitizer:DEADLYSIGNAL
> [task 2020-07-16T19:57:55.127Z] 19:57:55 INFO - GECKO(1266) |
> ThreadSanitizer: nested bug in the same thread, aborting.
>
> We have the first warning, where `just_read` is something around
> 4094/4095 quite often.
>
> However, when the "nested bug" appears, it it *always* 16383 (max_length
> - 1).
>
> I've been trying to output the buffer, but I am having difficulties in
> doing so (not sure if this is a problem in our CI or a problem in my
> patch, I will keep trying).
>
> If you have any idea what might be happening around this particular edge
> case, that would be great.
>
> I also tried locally what you suggested and tested sanitizer symbolizing
> with huge templates, but I was not able to reproduce the bug at all.
>
>
> Cheers,
>
> Chris