chirpstack / chirpstack-gateway-bridge

ChirpStack Gateway Bridge abstracts Packet Forwarder protocols into Protobuf or JSON over MQTT.
https://www.chirpstack.io
MIT License
423 stars 272 forks source link

Bridge stop working with Basic Station #156

Closed istina-iot closed 4 years ago

istina-iot commented 4 years ago

Is this a bug or a feature request?

Bug

What did you expect?

Normal execution without errors

What happened?

After some time, bridge stop working with basic station without interrupting (our script can't reload bridge, because bridge still running)

What version are your using?

3.6

How can your issue be reproduced?

Run bridge with basic station several hours.

Could you share your log output?

goroutine 24093 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x350f2c0, 0x353c000, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24096 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x350f950, 0x353c0c0, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24099 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x350fa40, 0x353c240, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24102 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x350ff50, 0x353c300, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24111 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x3562600, 0x353c6c0, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24108 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x3562510, 0x353c540, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24126 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x35631d0, 0x353cc00, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24114 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x3562990, 0x353c780, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24117 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x3562ae0, 0x353c900, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24120 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x3562e10, 0x353c9c0, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24147 [chan receive]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x350fe90, 0x353ca80, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24123 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x3562f00, 0x353cb40, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24129 [chan receive, 3 minutes]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x35632c0, 0x353cd80, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24132 [chan receive]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x350e5a0, 0x3558480, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24135 [chan receive]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x350e8d0, 0x35598c0, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24138 [chan receive]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x350f320, 0x3559ec0, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24141 [chan receive]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x350f590, 0x353c3c0, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24144 [chan receive]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x350fd40, 0x353c600, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24150 [chan receive]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x348e1e0, 0x353ccc0, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:746 +0x30
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c

goroutine 24153 [runnable]:
github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap.func2(0x348ef90, 0x353cf00, 0xc684d0)
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743
created by github.com/brocaar/chirpstack-gateway-bridge/internal/backend/basicstation.(*Backend).websocketWrap
        /chirpstack-gateway-bridge/internal/backend/basicstation/backend.go:743 +0x23c
brocaar commented 4 years ago

I'll try to reproduce your issue. Thanks for reporting!

brocaar commented 4 years ago

I believe the above commit should fix these errors. The issue was that the for loop would never return on an error.