rjkroege / edwood

Go version of Plan9 Acme Editor
Other
385 stars 34 forks source link

Random crash #82

Open rjkroege opened 6 years ago

rjkroege commented 6 years ago

When creating a window programmatically:

goroutine 56 [running]:
9fans.net/go/draw.(*Image).Draw(0xc4200c49a0, 0x7f9, 0xe5, 0xb40, 0x708, 0xc4201ec2a0, 0x0, 0x0, 0x0)
        /Users/rjkroege/tools/gopkg/src/9fans.net/go/draw/draw.go:90 +0x29
main.(*Column).Add(0xc4204ad080, 0x0, 0x0, 0xffffffffffffffff, 0x1)
        /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/col.go:136 +0xc16
main.errorwin1(0xc420098500, 0x3a, 0x0, 0x0, 0x0, 0x0)
        /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/util.go:122 +0x160
main.errorwin(0xc42016b640, 0x58, 0x0)
        /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/util.go:142 +0x67
main.xfidwrite(0xc4202222c0)
        /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/xfid.go:499 +0x409
main.xfidctl(0xc4202222c0, 0xc42

xfidwrite should not be calling into Col without passing through a lock in Row.

fhs commented 6 years ago

I can't seem to reproduce it, but here is a crash while I was editing some text:

panic: acme: textsetselect p0=583 p1=0 q0=583 q1=0 t.org=0 nchars=711

goroutine 7 [running, locked to thread]:
main.(*Text).SetSelect(0xc0000d1938, 0x247, 0x0)
    /home/fhs/mygo/src/github.com/rjkroege/edwood/text.go:1310 +0x3cf
main.(*Text).Select(0xc0000d1938)
    /home/fhs/mygo/src/github.com/rjkroege/edwood/text.go:1193 +0x410
main.MovedMouse(0x47, 0x1cb, 0x1, 0x3400e1cd)
    /home/fhs/mygo/src/github.com/rjkroege/edwood/acme.go:421 +0x45c
main.mousethread(0xc0000d40c0)
    /home/fhs/mygo/src/github.com/rjkroege/edwood/acme.go:300 +0x2c4
created by main.main
    /home/fhs/mygo/src/github.com/rjkroege/edwood/acme.go:173 +0x8c7
rjkroege commented 6 years ago

The selection values look wrong. Do you remember if you'd recently middle-clicked a command, particularly one with a | operator? if so, the underlying cause is probably #74.

fhs commented 6 years ago

I don't remember clearly. I think I was cutting, pasting, or selecting some text when it crashed. I doubt I was piping any text.

rjkroege commented 6 years ago

Hm. I'm perplexed then.

rjkroege commented 6 years ago

Also

Untested: main.run(0xc420129400, 0xc420018550, 0x4b, 0xc42012fb30, 0x1, 0x1, 0x0, 0x0, 0x0, 0x0, ...): /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/exec.go:675 +0x34
Untested: main.runproc.func3(): /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/exec.go:936 +0xca
panic: runtime error: index out of range

goroutine 20 [running, locked to thread]:
main.(*Column).Grow(0xc4202b4780, 0xc420129400, 0x1)
        /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/col.go:423 +0x1011
main.(*Column).Add(0xc4202b4780, 0x0, 0x0, 0xffffffffffffffff, 0x1)
        /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/col.go:107 +0x1f4
main.errorwin1(0xc42012fb30, 0x1, 0x131ba40, 0x0, 0x0, 0xa)
        /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/util.go:153 +0x160
main.errorwin(0xc4200fc340, 0x45, 0xc4203c3800)
        /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/util.go:173 +0x67
main.flushwarnings()
        /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/util.go:300 +0x249
main.mousethread(0xc4200c40c0)
        /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/acme.go:288 +0x4c
created by main.main
        /Users/rjkroege/tools/gopkg/src/github.com/rjkroege/edwood/acme.go:173 +0x982

I think that I double-clicked on (I'm guessing) nothing.

knusbaum commented 2 years ago

I am currently seeing this too on start when loading a dumpfile:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x5286c8]

goroutine 21 [running]:
9fans.net/go/draw.(*Image).Draw(0xc0002a6d70, {{0x40e827, 0x8}, {0x5ec220, 0xc0002a6d01}}, 0xc0002a6d90, 0x5342e5, {0x5eeaa0, 0xc0002a6d01})
    /home/kyle/go/pkg/mod/9fans.net/go@v0.0.2/draw/draw.go:90 +0x48
github.com/rjkroege/edwood/draw.(*imageImpl).Draw(0xc0002a6e30, {{0x40e4d4, 0x0}, {0x60, 0x0}}, {0x638f50, 0xc000010258}, {0x0, 0x0}, {0x0, ...})
    /home/kyle/CodeBase/edwood/draw/interface.go:90 +0x85
main.(*Column).Add(0xc0000d8420, 0x0, 0x100000000000000, 0xffffffffffffffff)
    /home/kyle/CodeBase/edwood/col.go:184 +0x356
main.makenewwindow(0x0)
    /home/kyle/CodeBase/edwood/util.go:158 +0x1ba
main.newwindowthread(0xc00009b500)
    /home/kyle/CodeBase/edwood/acme.go:554 +0x31
created by main.main.func1
    /home/kyle/CodeBase/edwood/acme.go:142 +0x5b7