Hi,

We ran into a weird *out of range* issue of *strconv.formatBits*, hope 
someone can shed a light on what could be the root cause, any comment is 
highly appreciated.

problem description:
*      random out of range at code 
<https://github.com/golang/go/blob/release-branch.go1.20/src/strconv/itoa.go#L140>,
 
most of the time the indexing is a huge int but we observed at least one 
exception (#2).*

*      #1: runtime error: index out of range [18446744073709449339] with 
length 200*
* #2: runtime error: index out of range [102511] with length 200*

Wild guesses:
1. The machine code seems to suggest it's unlikely a data race or memory 
corruption? But perhaps 
relevant registers, like R10, had been saved and restored, then it might be 
due to stack corruption?
Given that R12 is scratch reg, is it possible that R12 is clobbered 
somehow, say, by signal handling?

===================================================================
   0x0000000000495b0a<+810>:        mov    %rdi,%r10

   0x0000000000495b0d<+813>:        shr    %rdi

   0x0000000000495b10<+816>:        mov    %rax,%rsi

   0x0000000000495b13<+819>:        movabs $0xa3d70a3d70a3d70b,%rax

   0x0000000000495b1d<+829>:        mov    %rdx,%r11

   0x0000000000495b20<+832>:        mul    %rdi

   0x0000000000495b23<+835>:        shr    $0x5,%rdx

*   0x0000000000495b27<+839>:        imul   $0x64,%rdx,%r12*

*   0x0000000000495b2b<+843>:        sub    %r12,%r10*

*   0x0000000000495b2e<+846>:        lea    (%r10,%r10,1),%rax*

   0x0000000000495b32<+850>:        lea    0x1(%rax),%rax

   0x0000000000495b36<+854>:        nopw   0x0(%rax,%rax,1)

   0x0000000000495b3f<+863>:        nop

   0x0000000000495b40<+864>:        cmp    $0xc8,%rax

   0x0000000000495b46<+870>:        jae    0x495c8f 
<strconv.formatBits+1199>

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/ff804d4c-24ee-480d-8ed1-219f9b8d7cbcn%40googlegroups.com.

Reply via email to