Добрый день!
После запуска wb-rules получаю ошибку:
fatal error: concurrent map read and map write
Подробный вывод
INFO: 2020/04/09 15:51:29 MQTT connection established
WARNING: 2020/04/09 15:51:33 queue handleMessage is half-filled: 1025/2048
INFO: 2020/04/09 15:51:33 queue handleMessage length back to normal: 1014/2048
WARNING: 2020/04/09 15:51:33 queue handleMessage is half-filled: 1025/2048
INFO: 2020/04/09 15:51:33 queue handleMessage length back to normal: 1013/2048
WARNING: 2020/04/09 15:51:33 queue handleMessage is half-filled: 1075/2048
WARNING: 2020/04/09 15:51:33 queue handleMessage is half-filled: 1075/2048
fatal error: concurrent map read and map write
goroutine 22 [running]:
runtime.throw(0x3bcd3b, 0x21)
/usr/local/go/src/runtime/panic.go:619 +0x60 fp=0x11f39e5c sp=0x11f39e50 pc=0x42e40
runtime.mapaccess2_faststr(0x35b1b0, 0x121f9c80, 0x122aaf80, 0xc, 0x11f1c71c, 0x11f1c000)
/usr/local/go/src/runtime/hashmap_fast.go:270 +0x4ac fp=0x11f39e90 sp=0x11f39e5c pc=0x221f0
github.com/contactless/wb-rules/wbrules.(*CellModelDeviceBase).EnsureCell(0x122244b0, 0x122aaf80, 0xc, 0x0)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:339 +0x38 fp=0x11f39ed4 sp=0x11f39e90 pc=0x2bded4
github.com/contactless/wb-rules/wbrules.(*CellModel).EnsureCell(0x11f4cf20, 0x12372980, 0x11ff50c0)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:211 +0x58 fp=0x11f39eec sp=0x11f39ed4 pc=0x2bd03c
github.com/contactless/wb-rules/wbrules.(*RuleEngine).storeVirtualCellValueToDB(0x11f60900, 0x12372980, 0x1, 0x0)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/engine.go:357 +0x30 fp=0x11f39f14 sp=0x11f39eec pc=0x2c12cc
github.com/contactless/wb-rules/wbrules.(*RuleEngine).Start.func2(0x121fc5c0, 0x11f60900)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/engine.go:661 +0x478 fp=0x11f39fe4 sp=0x11f39f14 pc=0x2d1328
runtime.goexit()
/usr/local/go/src/runtime/asm_arm.s:1015 +0x4 fp=0x11f39fe4 sp=0x11f39fe4 pc=0x733b4
created by github.com/contactless/wb-rules/wbrules.(*RuleEngine).Start
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/engine.go:610 +0x170
goroutine 1 [sleep]:
time.Sleep(0x3b9aca00, 0x0)
/usr/local/go/src/runtime/time.go:102 +0x154
main.main()
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/main.go:85 +0x63c
goroutine 5 [syscall]:
os/signal.signal_recv(0x0)
/usr/local/go/src/runtime/sigqueue.go:139 +0x130
os/signal.loop()
/usr/local/go/src/os/signal/signal_unix.go:22 +0x14
created by os/signal.init.0
/usr/local/go/src/os/signal/signal_unix.go:28 +0x30
goroutine 6 [syscall]:
syscall.Syscall6(0xfc, 0x7, 0x12099de4, 0x7, 0xffffffff, 0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/syscall/asm_linux_arm.s:48 +0x8
github.com/contactless/wb-rules/vendor/golang.org/x/sys/unix.EpollWait(0x7, 0x12099de4, 0x7, 0x7, 0xffffffff, 0x0, 0x0, 0x1)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/golang.org/x/sys/unix/zsyscall_linux_arm.go:1654 +0x58
github.com/contactless/wb-rules/vendor/gopkg.in/fsnotify%2ev1.(*fdPoller).wait(0x11f18870, 0x3c9b00, 0x11f18870, 0x0)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/gopkg.in/fsnotify.v1/inotify_poller.go:86 +0x4c
github.com/contactless/wb-rules/vendor/gopkg.in/fsnotify%2ev1.(*Watcher).readEvents(0x11f68510)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/gopkg.in/fsnotify.v1/inotify.go:192 +0x16c
created by github.com/contactless/wb-rules/vendor/gopkg.in/fsnotify%2ev1.NewWatcher
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/gopkg.in/fsnotify.v1/inotify.go:61 +0x1b4
goroutine 7 [select]:
github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo.(*DirWatcher).startWatching.func1(0x11f70190)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo/dirwatcher.go:151 +0x12c
created by github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo.(*DirWatcher).startWatching
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo/dirwatcher.go:149 +0x17c
goroutine 20 [chan receive]:
github.com/contactless/wb-rules/vendor/github.com/contactless/org%2eeclipse%2epaho%2emqtt%2egolang.(*baseToken).Wait(0x123e5a40, 0x0)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/token.go:53 +0x84
github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo.(*PahoMQTTClient).Start.func1(0x11f683f0)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo/mqtt.go:156 +0x100
created by github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo.(*PahoMQTTClient).Start
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo/mqtt.go:150 +0xb8
goroutine 13 [select]:
github.com/contactless/wb-rules/vendor/github.com/contactless/org%2eeclipse%2epaho%2emqtt%2egolang.(*router).matchAndDispatch.func1(0x1214f100, 0x11f68420, 0x1214f101, 0x11fdc200)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/router.go:129 +0x360
created by github.com/contactless/wb-rules/vendor/github.com/contactless/org%2eeclipse%2epaho%2emqtt%2egolang.(*router).matchAndDispatch
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/router.go:127 +0x44
goroutine 14 [select]:
github.com/contactless/wb-rules/vendor/github.com/contactless/org%2eeclipse%2epaho%2emqtt%2egolang.outgoing(0x11fdc200)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/net.go:138 +0x1e0
created by github.com/contactless/wb-rules/vendor/github.com/contactless/org%2eeclipse%2epaho%2emqtt%2egolang.(*Client).Connect.func1
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/client.go:238 +0x518
goroutine 15 [select]:
github.com/contactless/wb-rules/vendor/github.com/contactless/org%2eeclipse%2epaho%2emqtt%2egolang.alllogic(0x11fdc200)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/net.go:229 +0x154
created by github.com/contactless/wb-rules/vendor/github.com/contactless/org%2eeclipse%2epaho%2emqtt%2egolang.(*Client).Connect.func1
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/client.go:239 +0x534
goroutine 21 [runnable]:
github.com/contactless/wb-rules/wbrules.(*CellModelDeviceBase).setCell(0x122244b0, 0x122aafb0, 0xc, 0x3b1a36, 0x4, 0x356d68, 0x3f7ee8, 0x59d500, 0x0, 0xbff00000, ...)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:311 +0x118
github.com/contactless/wb-rules/wbrules.(*CellModelDeviceBase).EnsureCell(0x122244b0, 0x122aafb0, 0xc, 0x26f450)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:342 +0x120
github.com/contactless/wb-rules/wbrules.(*CellModelDeviceBase).AcceptValue(0x122244b0, 0x122aafb0, 0xc, 0x122349be, 0x1)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:352 +0x3c
github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo.(*Driver).handleIncomingControlValue(0x11f700f0, 0x122aaf90, 0x2c, 0x122349be, 0x1, 0x100)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo/driver.go:519 +0x22c
github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo.(*Driver).(github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo.handleIncomingControlValue)-fm(0x122aaf90, 0x2c, 0x122349be, 0x1, 0x100)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo/driver.go:601 +0x28
github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo.(*Driver).wrapMessageHandler.func1.1()
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo/driver.go:342 +0x30
github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo.(*Driver).Start.func1(0x11f700f0, 0x0, 0x11f16680)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo/driver.go:626 +0x1bc
created by github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo.(*Driver).Start
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/wbgo/driver.go:606 +0xa8
goroutine 18 [select]:
github.com/contactless/wb-rules/vendor/github.com/contactless/org%2eeclipse%2epaho%2emqtt%2egolang.keepalive(0x11fdc200)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/ping.go:32 +0x1cc
created by github.com/contactless/wb-rules/vendor/github.com/contactless/org%2eeclipse%2epaho%2emqtt%2egolang.(*Client).Connect.func1
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/client.go:253 +0x748
goroutine 19 [runnable]:
internal/poll.runtime_pollWait(0xb5417fc0, 0x72, 0x121ee000)
/usr/local/go/src/runtime/netpoll.go:173 +0x44
internal/poll.(*pollDesc).wait(0x11f70474, 0x72, 0xffffff00, 0x3f9b40, 0x59d894)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:85 +0x8c
internal/poll.(*pollDesc).waitRead(0x11f70474, 0x121ee000, 0x8000, 0x8000)
/usr/local/go/src/internal/poll/fd_poll_runtime.go:90 +0x2c
internal/poll.(*FD).Read(0x11f70460, 0x121ee000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
/usr/local/go/src/internal/poll/fd_unix.go:157 +0x148
net.(*netFD).Read(0x11f70460, 0x121ee000, 0x8000, 0x8000, 0x122f2e14, 0x0, 0x1)
/usr/local/go/src/net/fd_unix.go:202 +0x38
net.(*conn).Read(0x121256b0, 0x121ee000, 0x8000, 0x8000, 0x0, 0x0, 0x0)
/usr/local/go/src/net/net.go:176 +0x58
bufio.(*Reader).fill(0x11f69770)
/usr/local/go/src/bufio/bufio.go:100 +0x104
bufio.(*Reader).ReadByte(0x11f69770, 0x392920, 0x12422900, 0x2)
/usr/local/go/src/bufio/bufio.go:242 +0x28
github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/packets.ReadPacket(0x3f9d20, 0x11f69770, 0x3fb200, 0x123962f0, 0x0, 0x0)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/packets/packets.go:123 +0x48
github.com/contactless/wb-rules/vendor/github.com/contactless/org%2eeclipse%2epaho%2emqtt%2egolang.incoming(0x11fdc200)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/net.go:91 +0x138
created by github.com/contactless/wb-rules/vendor/github.com/contactless/org%2eeclipse%2epaho%2emqtt%2egolang.(*Client).Connect.func1
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/contactless/org.eclipse.paho.mqtt.golang/client.go:266 +0x63c
goroutine 753 [runnable]:
github.com/contactless/wb-rules/wbrules.(*CellModel).notify(0x11f4cf20, 0x12372970)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:279
created by github.com/contactless/wb-rules/wbrules.(*CellModelDeviceBase).AcceptValue
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:355 +0xe8
goroutine 750 [runnable]:
github.com/contactless/wb-rules/wbrules.(*CellModel).notify(0x11f4cf20, 0x12372940)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:279
created by github.com/contactless/wb-rules/wbrules.(*CellModelDeviceBase).AcceptValue
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:355 +0xe8
goroutine 739 [select]:
github.com/contactless/wb-rules/vendor/github.com/robfig/cron.(*Cron).run(0x12328420)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/robfig/cron/cron.go:184 +0x2d4
created by github.com/contactless/wb-rules/vendor/github.com/robfig/cron.(*Cron).Start
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/vendor/github.com/robfig/cron/cron.go:146 +0x44
goroutine 748 [runnable]:
github.com/contactless/wb-rules/wbrules.(*CellModel).notify(0x11f4cf20, 0x12372920)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:279
created by github.com/contactless/wb-rules/wbrules.(*CellModelDeviceBase).AcceptValue
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:355 +0xe8
goroutine 752 [runnable]:
github.com/contactless/wb-rules/wbrules.(*CellModel).notify(0x11f4cf20, 0x12372960)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:279
created by github.com/contactless/wb-rules/wbrules.(*CellModelDeviceBase).AcceptValue
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:355 +0xe8
goroutine 747 [runnable]:
github.com/contactless/wb-rules/wbrules.(*CellModel).notify(0x11f4cf20, 0x12372910)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:279
created by github.com/contactless/wb-rules/wbrules.(*CellModelDeviceBase).AcceptValue
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:355 +0xe8
goroutine 751 [runnable]:
github.com/contactless/wb-rules/wbrules.(*CellModel).notify(0x11f4cf20, 0x12372950)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:279
created by github.com/contactless/wb-rules/wbrules.(*CellModelDeviceBase).AcceptValue
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:355 +0xe8
goroutine 749 [runnable]:
github.com/contactless/wb-rules/wbrules.(*CellModel).notify(0x11f4cf20, 0x12372930)
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:279
created by github.com/contactless/wb-rules/wbrules.(*CellModelDeviceBase).AcceptValue
/home/jenkins/wbdev/go/src/github.com/contactless/wb-rules/wbrules/cell.go:355 +0xe8
Скрипты такие же как были на wb6, прошивка той же версии. На wb6 работало.