Skip to content

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

Closed

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.

Activity

  1. locked and limited conversation to collaborators on Aug 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions