Skip to content

satellite grpc-client not work, interface conversion: interface is nil, not api.Client #7567

@jk2K

Description

@jk2K

Please answer these questions before submitting your issue.

  • Why do you submit this issue?
  • Question or discussion
  • Bug
  • Requirement
  • Feature or performance improvement

Question

  • What do you want to know?

why satellite cannot connect to Skywalking


Bug

  • Which version of SkyWalking, OS, and JRE?

SkyWalking: 8.7.0

JRE: jdk1.8.0_191

  • Which company or project?

  • What happened?
    If possible, provide a way to reproduce the error. e.g. demo application, component version.

2021/08/25 19:40:41 maxprocs: Updating GOMAXPROCS=2: determined from CPU quota                                                                                  
load config from : /export/servers/skywalking-satellite/configs/satellite_config.yaml                                                                           
2021-08-25 19:40:41.013 [info][client_name=grpc-client] - [core] parsed scheme: ""                                                                              
2021-08-25 19:40:41.013 [info][client_name=grpc-client] - [core] scheme "" not registered, fallback to default scheme                                           
2021-08-25 19:40:41.013 [info][client_name=grpc-client] - [core] ccResolverWrapper: sending update to cc: {[{11.91.154.15:11800  <nil> 0 <nil>}] <nil> <nil>}   
2021-08-25 19:40:41.013 [info][client_name=grpc-client] - [core] ClientConn switching balancer to "pick_first"                                                  
2021-08-25 19:40:41.014 [info][client_name=grpc-client] - [core] Channel switches to new LB policy "pick_first"                                                 
2021-08-25 19:40:41.014 [info][client_name=grpc-client] - [core] Subchannel Connectivity change to CONNECTING                                                   
2021-08-25 19:40:41.014 [info][client_name=grpc-client] - [core] pickfirstBalancer: UpdateSubConnState: 0xc00038ef60, {CONNECTING <nil>}                        
2021-08-25 19:40:41.014 [info][client_name=grpc-client] - [core] Channel Connectivity change to CONNECTING                                                      
2021-08-25 19:40:41.014 [info][] - satellite is initializing...                                                                                                 
2021-08-25 19:40:41.014 [info][client_name=grpc-client] - [core] Subchannel picks a new address "11.91.154.15:11800" to connect                                 
2021-08-25 19:40:41.014 [info][client_name=grpc-client] - [core] Channel Connectivity change to SHUTDOWN                                                        
2021-08-25 19:40:41.014 [info][client_name=grpc-client] - [core] Subchannel Connectivity change to SHUTDOWN                                                     
2021-08-25 19:40:41.014 [info][] - grpc client is closed                                                                                                        
2021-08-25 19:40:41.014 [info][] - grpc server is closed                                                                                                        
2021-08-25 19:40:41.014 [info][] - prometheus server is closed                                                                                                  
2021-08-25 19:40:41.014 [warning][client_name=grpc-client] - [core] grpc: addrConn.createTransport failed to connect to {11.91.154.15:11800 11.91.154.15:11800 <
nil> 0 <nil>}. Err: connection error: desc = "transport: Error while dialing dial tcp 11.91.154.15:11800: operation was canceled". Reconnecting...              
panic: interface conversion: interface is nil, not api.Client                                                                                                   
                                                                                                                                                                
goroutine 1 [running]:                                                                                                                                          
github.com/apache/skywalking-satellite/internal/satellite/module/sender.NewSender(0xc00078bc20, 0x2ce7860, 0xc000c86de0)                                        
        /Users/yemeng1/Documents/codes/go/src/github.com/skywalking-satellite/internal/satellite/module/sender/create.go:36 +0xb7                               
github.com/apache/skywalking-satellite/internal/satellite/boot.initModules(0xc0008199b0, 0x0, 0x2ccf680, 0xc0007a7f80)                                          
        /Users/yemeng1/Documents/codes/go/src/github.com/skywalking-satellite/internal/satellite/boot/boot.go:101 +0x1ab                                        
github.com/apache/skywalking-satellite/internal/satellite/boot.Start(0xc0008199b0, 0x12a05f200, 0x0, 0x0)                                                       
        /Users/yemeng1/Documents/codes/go/src/github.com/skywalking-satellite/internal/satellite/boot/boot.go:65 +0x2fc                                         
main.glob..func1(0xc0007a7bc0, 0x3, 0x4)                                                                                                                        
        /Users/yemeng1/Documents/codes/go/src/github.com/skywalking-satellite/cmd/command.go:54 +0xbc                                                           
github.com/urfave/cli/v2.(*Command).Run(0x4038b80, 0xc0007a79c0, 0x0, 0x0)                                                                                      
        /Users/yemeng1/Documents/codes/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/command.go:163 +0x4e0                                                         
github.com/urfave/cli/v2.(*App).RunContext(0xc0001b5d40, 0x2ccf6c0, 0xc0000520b0, 0xc00004c180, 0x3, 0x3, 0x0, 0x0)                                             
        /Users/yemeng1/Documents/codes/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/app.go:313 +0x814                                                             
github.com/urfave/cli/v2.(*App).Run(...)                                                                                                                        
        /Users/yemeng1/Documents/codes/go/pkg/mod/github.com/urfave/cli/v2@v2.3.0/app.go:224                                                                    
main.main()                                                                                                                                                     
        /Users/yemeng1/Documents/codes/go/src/github.com/skywalking-satellite/cmd/main.go:44 +0x191

the port is ok

nc -zv 11.91.154.15 11800                                                                                                                               
Connection to 11.91.154.15 11800 port [tcp/*] succeeded!

my SkyWalking Satellite config

#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#

# The logger configuration.
logger:
  # The log format pattern configuration.
  log_pattern: ${SATELLITE_LOGGER_LOG_PATTERN:%time [%level][%field] - %msg}
  # The time format pattern configuration.
  time_pattern: ${SATELLITE_LOGGER_TIME_PATTERN:2006-01-02 15:04:05.000}
  # The lowest level of printing allowed.
  level: ${SATELLITE_LOGGER_LEVEL:info}

# The Satellite self telemetry configuration.
telemetry:
  # The space concept for the deployment, such as the namespace concept in the Kubernetes.
  cluster: ${SATELLITE_TELEMETRY_CLUSTER:satellite-cluster}
  # The group concept for the deployment, such as the service resource concept in the Kubernetes.
  service: ${SATELLITE_TELEMETRY_SERVICE:satellite-service}
  # The minimum running unit, such as the pod concept in the Kubernetes.
  instance: ${SATELLITE_TELEMETRY_SERVICE:satellite-instance}

# The sharing plugins referenced by the specific plugins in the different pipes.
sharing:
  clients:
    - plugin_name: "grpc-client"
      # The gRPC server address (default localhost:11800). 
      server_addr: 11.91.154.15:11800
      # The TLS switch (default false).
      enable_TLS: false
      # The file path of client.pem. The config only works when opening the TLS switch.
      client_pem_path: ""
      # The file path of client.key. The config only works when opening the TLS switch.
      client_key_path: ""
      # The file path oca.pem. The config only works when opening the TLS switch.
      ca_pem_path: ""
      # InsecureSkipVerify controls whether a client verifies the server's certificate chain and host name.
      insecure_skip_verify: true
      # The auth value when send request
      authentication: ""
      # How frequently to check the connection
      check_period: 5
  servers:
    - plugin_name: "grpc-server"
      # The address of grpc server.
      address: ${SATELLITE_GRPC_ADDRESS:":11800"}
      # The TLS cert file path.
      tls_cert_file: ${SATELLITE_GRPC_TLS_KEY_FILE:""}
      # The TLS key file path.
      tls_key_file: ${SATELLITE_GRPC_TLS_KEY_FILE:""}
    - plugin_name: "prometheus-server"
      # The prometheus server address.
      address: ${SATELLITE_PROMETHEUS_ADDRESS:":1234"}
      # The prometheus server metrics endpoint.
      endpoint: ${SATELLITE_PROMETHEUS_ENDPOINT:"/metrics"}

# The working pipe configurations.
pipes:
  - common_config:
      pipe_name: logpipe
    gatherer:
      server_name: "grpc-server"
      receiver:
        plugin_name: "grpc-nativelog-receiver"
      queue:
        plugin_name: "memory-queue"
        # The maximum buffer event size.
        event_buffer_size: ${SATELLITE_QUEUE_EVENT_BUFFER_SIZE:5000}
    processor:
      filters:
    sender:
      fallbacker:
        plugin_name: none-fallbacker
      # The time interval between two flush operations. And the time unit is millisecond.
      flush_time: ${SATELLITE_LOGPIPE_SENDER_FLUSH_TIME:1000}
      # The maximum buffer elements.
      max_buffer_size: ${SATELLITE_LOGPIPE_SENDER_MAX_BUFFER_SIZE:200}
      # The minimum flush elements.
      min_flush_events: ${SATELLITE_LOGPIPE_SENDER_MIN_FLUSH_EVENTS:100}
      client_name: kafka-client
      forwarders:
        - plugin_name: nativelog-kafka-forwarder
          # The remote kafka topic.
          topic: ${SATELLITE_NATIVELOG-TOPIC:log-topic}

Requirement or improvement

  • Please describe your requirements or improvement suggestions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions