【问题标题】:Using centos7 as base image for Jaeger使用 centos7 作为 Jaeger 的基础镜像
【发布时间】:2018-10-18 19:15:37
【问题描述】:

我正在尝试使用 CentOS 基础映像而不是 Alpine 来设置 Jaeger。除了查询容器外,代理、收集器和 Cassandra 容器都可以正常工作。 Jaeger 存储库是here。 将基本映像更改为 CentOS 7 后,注释掉适用于复制 ca-certificates.crt 并运行 docker-compose 的部分后,在跟踪查询容器时收到以下零指针错误消息

恐慌:运行时错误:无效的内存地址或 nil 指针取消引用

我运行带有必要标志的 makefile 来编译 app 目录中的代码。 有没有人使用 CentOS 作为基础镜像设置 Jaeger?

以下是容器的完整堆栈错误

goroutine 1 [running]:
github.com/jaegertracing/jaeger/cmd/query/app.NewStaticAssetsHandler(0x0, 0x0, 0xe6cb85, 0x1, 0x0, 0x0, 0xc0000397a0, 0xc0000397b0, 0xc000137098)
    /Users/myusername/Go/src/github.com/jaegertracing/jaeger/cmd/query/app/static_handler.go:74 +0x5e
github.com/jaegertracing/jaeger/cmd/query/app.RegisterStaticHandler(0xc0000a7bd0, 0xc00009d080, 0xc0001eec80)
    /Users/myusername/Go/src/github.com/jaegertracing/jaeger/cmd/query/app/static_handler.go:45 +0x74
main.main.func1(0xc0001746c0, 0xc000184f60, 0x0, 0x2, 0x0, 0x0)
    /Users/myusername/Go/src/github.com/jaegertracing/jaeger/cmd/query/main.go:131 +0x14eb
github.com/jaegertracing/jaeger/vendor/github.com/spf13/cobra.(*Command).execute(0xc0001746c0, 0xc00008e0a0, 0x2, 0x2, 0xc0001746c0, 0xc00008e0a0)
    /Users/myusername/Go/src/github.com/jaegertracing/jaeger/vendor/github.com/spf13/cobra/command.go:698 +0x47a
github.com/jaegertracing/jaeger/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc0001746c0, 0x0, 0x4, 0xc00009cfc0)
    /Users/myusername/Go/src/github.com/jaegertracing/jaeger/vendor/github.com/spf13/cobra/command.go:783 +0x2dc
github.com/jaegertracing/jaeger/vendor/github.com/spf13/cobra.(*Command).Execute(0xc0001746c0, 0xc0001746c0, 0xc000137f28)
    /Users/myusername/Go/src/github.com/jaegertracing/jaeger/vendor/github.com/spf13/cobra/command.go:736 +0x2b
main.main()
    /Users/myusername/Go/src/github.com/jaegertracing/jaeger/cmd/query/main.go:172 +0x5a6
{"level":"info","ts":1539888666.5870771,"caller":"healthcheck/handler.go:99","msg":"Health Check server started","http-port":16687,"status":"unavailable"}
{"level":"info","ts":1539888666.6052766,"caller":"cassandra/factory.go:92","msg":"Cassandra archive storage configuration is empty, skipping"}
{"level":"info","ts":1539888666.6063912,"caller":"query/main.go:186","msg":"Archive storage not created","reason":"Archive storage not configured"}
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0xbe2b9e

【问题讨论】:

  • 听起来代码中某处有错误,但完整的错误和生成它的代码并未包含在问题中。
  • 我已对此进行了修改以包含完整的错误。
  • 第三方软件中的错误应提交给他们的问题跟踪器。

标签: go jaeger


【解决方案1】:

这很可能是由于静态资产没有包含在二进制文件中。您可以通过运行您编译的二进制文件来尝试一下。

与其自行编译,更好的方法是从发布页面获取官方二进制文件并使用它构建您的 Docker 容器。

https://github.com/jaegertracing/jaeger/releases/latest

【讨论】:

    猜你喜欢
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 2013-08-18
    • 1970-01-01
    • 2020-01-20
    • 2017-12-31
    相关资源
    最近更新 更多