Edge-home-orchestration-go: [DataStorage] 运行时错误

创建于 2021-01-19  ·  7评论  ·  资料来源: lf-edge/edge-home-orchestration-go

描述错误
edgex 代工厂服务器未运行时出现运行时错误,

level=ERROR ts=2021-01-19T01:51:50.815737266Z app=datastorage source=init.go:154 msg="Get \"http://localhost:48080/api/v1/ping\": dial tcp 127.0.0.1:48080: connect: connection refused"
level=INFO ts=2021-01-19T01:51:51.817181193Z app=datastorage source=init.go:144 msg="Check Metadata service's status by ping..."
level=INFO ts=2021-01-19T01:51:51.818287982Z app=datastorage source=init.go:144 msg="Check Data service's status by ping..."
level=ERROR ts=2021-01-19T01:51:51.822577012Z app=datastorage source=init.go:154 msg="Get \"http://localhost:48081/api/v1/ping\": dial tcp 127.0.0.1:48081: connect: connection refused"
level=ERROR ts=2021-01-19T01:51:51.824049381Z app=datastorage source=init.go:154 msg="Get \"http://localhost:48080/api/v1/ping\": dial tcp 127.0.0.1:48080: connect: connection refused"
level=INFO ts=2021-01-19T01:51:52.825768174Z app=datastorage source=init.go:144 msg="Check Metadata service's status by ping..."
level=INFO ts=2021-01-19T01:51:52.826907105Z app=datastorage source=init.go:144 msg="Check Data service's status by ping..."
level=ERROR ts=2021-01-19T01:51:52.830784824Z app=datastorage source=init.go:154 msg="Get \"http://localhost:48081/api/v1/ping\": dial tcp 127.0.0.1:48081: connect: connection refused"
level=ERROR ts=2021-01-19T01:51:52.83209855Z app=datastorage source=init.go:154 msg="Get \"http://localhost:48080/api/v1/ping\": dial tcp 127.0.0.1:48080: connect: connection refused"
INFO[2021-01-19T01:51:53Z]discovery.go:833 activeDiscovery [discoverymgr] activeDiscovery!!!
INFO[2021-01-19T01:51:53Z]discovery.go:571 func1 [deviceDetectionRoutine] edge-orchestration-3125da9e-1e9a-41aa-ac83-004725eb2d1e
level=ERROR ts=2021-01-19T01:51:53.83359109Z app=datastorage source=init.go:139 msg="dependency Metadata service checking time out"
level=ERROR ts=2021-01-19T01:51:53.834663766Z app=datastorage source=init.go:139 msg="dependency Data service checking time out"
level=INFO ts=2021-01-19T01:51:53.840074015Z app=datastorage source=httpserver.go:116 msg="Web server shutting down"
level=INFO ts=2021-01-19T01:51:53.841736032Z app=datastorage source=httpserver.go:107 msg="Web server stopped"
level=INFO ts=2021-01-19T01:51:54.341966491Z app=datastorage source=httpserver.go:118 msg="Web server shut down"
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x20 pc=0x8d1a0e]

goroutine 44 [running]:
github.com/edgexfoundry/device-sdk-go/internal/autoevent.(*manager).StopAutoEvents(0x0)
        /home/t25kim/edge-home-orchestration-go/vendor/github.com/edgexfoundry/device-sdk-go/internal/autoevent/manager.go:69 +0x4e
github.com/edgexfoundry/device-sdk-go/pkg/service.(*DeviceService).Stop(0xc0004c2780, 0xc0005ae600)
        /home/t25kim/edge-home-orchestration-go/vendor/github.com/edgexfoundry/device-sdk-go/pkg/service/service.go:134 +0x45
github.com/edgexfoundry/device-sdk-go/pkg/service.Main(0xe2dbda, 0xb, 0xe3a91d, 0x1a, 0xda46e0, 0xc0005a5de0, 0xf46e20, 0xc0005ae600, 0xc0000330a0, 0xc0005ac300, ...)
        /home/t25kim/edge-home-orchestration-go/vendor/github.com/edgexfoundry/device-sdk-go/pkg/service/main.go:69 +0x6fa
github.com/edgexfoundry/device-sdk-go/pkg/startup.Bootstrap(0xe2dbda, 0xb, 0xe3a91d, 0x1a, 0xda46e0, 0xc0005a5de0)
        /home/t25kim/edge-home-orchestration-go/vendor/github.com/edgexfoundry/device-sdk-go/pkg/startup/bootstrap.go:19 +0x117
created by github.com/lf-edge/edge-home-orchestration-go/src/controller/storagemgr.StorageImpl.StartStorage
        /home/t25kim/edge-home-orchestration-go/src/controller/storagemgr/storage.go:51 +0xef

再现

  1. 将必要的配置文件放在 /var/edge-orchestration/datastorage/
  2. 运行 edge-home-orchestration-go

预期行为
在启动 Data Storage 之前,请提前检查 edgex 代工厂服务器。

测试环境配置(请填写以下信息):

  • 固件版本:Ubuntu 18.04
  • 硬件:x86-64
  • Edge Orchestration 发布:Coconut

最有用的评论

在与 EdgeX 成员沟通后,他们为我们提供了一个分支:github.com/hahattan/device-sdk-go v1.4.1 并修复了河内分支,导致此崩溃。

我一直在通过使用 go.mod 中的替换指令来测试修复。 这似乎运作良好。

正如您所提到的,我们可以等到爱尔兰发布,或者我们也可以将修复克隆到我们的存储库,直到 EdgeX 发布爱尔兰。

请分享您的想法?
@t25kim

谢谢 !

所有7条评论

@suresh-lc PTAL。 先感谢您。

嗨,Sunchit,

我已经知道它为什么崩溃了。 这是一个错误,修复起来并不难。

当服务因依赖项超时(EdgeX 核心数据和核心元数据)而停止时,不会初始化自动事件管理器。

在这一行中, https://github.com/edgexfoundry/device-sdk-go/blob/v1.4.0/pkg/service/service.go#L134

我们应该在调用 StopAutoEvents 之前检查 AutoEvent Manager 是否为 nil。

我们已经在 V2(爱尔兰)中解决了这个问题。

嗨,吉姆和伊恩,

我们可以创建一个河内分支来解决这个问题并为他们标记 1.4.1 吗?

嗨,Sunchit,

我已经知道它为什么崩溃了。 这是一个错误,修复起来并不难。

当服务因依赖项超时(EdgeX 核心数据和核心元数据)而停止时,不会初始化自动事件管理器。

在这一行中, https://github.com/edgexfoundry/device-sdk-go/blob/v1.4.0/pkg/service/service.go#L134

我们应该在调用 StopAutoEvents 之前检查 AutoEvent Manager 是否为 nil。

我们已经在 V2(爱尔兰)中解决了这个问题。

嗨,吉姆和伊恩,

我们可以创建一个河内分支来解决这个问题并为他们标记 1.4.1 吗?

@suresh-lc 这封邮件是谁写的?

嗨,Sunchit,
我已经知道它为什么崩溃了。 这是一个错误,修复起来并不难。
当服务因依赖项超时(EdgeX 核心数据和核心元数据)而停止时,不会初始化自动事件管理器。
在这一行中, https://github.com/edgexfoundry/device-sdk-go/blob/v1.4.0/pkg/service/service.go#L134
我们应该在调用 StopAutoEvents 之前检查 AutoEvent Manager 是否为 nil。
我们已经在 V2(爱尔兰)中解决了这个问题。
嗨,吉姆和伊恩,
我们可以创建一个河内分支来解决这个问题并为他们标记 1.4.1 吗?

@suresh-lc 这封邮件是谁写的?

EdgeX-设备服务团队的Cloud Tsai

此问题将通过使用 edgexfoundry 'Ireland' 版本解决,但尚未正式发布。
我想将其保留为known issue并在爱尔兰发布时升级 edgexfoundry。

在与 EdgeX 成员沟通后,他们为我们提供了一个分支:github.com/hahattan/device-sdk-go v1.4.1 并修复了河内分支,导致此崩溃。

我一直在通过使用 go.mod 中的替换指令来测试修复。 这似乎运作良好。

正如您所提到的,我们可以等到爱尔兰发布,或者我们也可以将修复克隆到我们的存储库,直到 EdgeX 发布爱尔兰。

请分享您的想法?
@t25kim

谢谢 !

@sun-sharma 感谢您告知我们。
你能用replace标志修改go.mod文件吗?
最好添加一条说明它是临时的并且将被删除。

此页面是否有帮助?
0 / 5 - 0 等级

相关问题

t25kim picture t25kim  ·  5评论

MoonkiHong picture MoonkiHong  ·  6评论

t25kim picture t25kim  ·  5评论

t25kim picture t25kim  ·  10评论

MoonkiHong picture MoonkiHong  ·  5评论