Bugzilla will be upgraded to version 5.0 on a still to be determined date in the near future. The original upgrade date has been delayed.
Bug 1595065 - [svcat] svcat deprovision(unbind) with "--wait" option return "panic: runtime error: invalid memory address or nil pointer dereference" when executed against a remotely hosted cluster
[svcat] svcat deprovision(unbind) with "--wait" option return "panic: runtime...
Status: CLOSED ERRATA
Product: OpenShift Container Platform
Classification: Red Hat
Component: Service Catalog (Show other bugs)
3.10.0
Unspecified Unspecified
medium Severity medium
: ---
: 3.11.0
Assigned To: Jay Boyd
Dongbo Yan
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2018-06-25 23:18 EDT by sunzhaohua
Modified: 2018-10-11 03:21 EDT (History)
5 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Cause: In some scenarios using the command `svcat deprovision <service-instance-name> --wait` may sometimes result in the svcat command terminating with a panic error. Consequence: The deprovision command was executed the the program encountered a code bug when attempting wait for the instance to be fully deprovisioned.
Story Points: ---
Clone Of:
Environment:
Last Closed: 2018-10-11 03:20:54 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)


External Trackers
Tracker ID Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2018:2652 None None None 2018-10-11 03:21 EDT

  None (edit)
Description sunzhaohua 2018-06-25 23:18:22 EDT
Description of problem:
svcat deprovision(unbind) with "--wait" option return "panic: runtime error: invalid memory address or nil pointer dereference" when executed against a remotely hosted cluster.
In cluster, "svcat unbind --name ups-instance3-bind1 --wait" work normally.

Version-Release number of selected component (if applicable):
$ svcat version
client: v3.10.8;Upstream:v0.1.19
server: v1.10.0+b81c8f8

How reproducible:
Always

Steps to Reproduce:
1. $ svcat describe instances ups-instance3
2. $ svcat unbind --name ups-instance3-bind1 --wait
3.

Actual results:
In cluster, `svcat unbind --name ups-instance3-bind1 --wait` work normally. Out of cluster the binding was deleted but binding name was not printed, and output "panic: runtime error: invalid memory address or nil pointer dereference". 

[root@ip-172-18-12-11 ~]# svcat describe instances ups-instance3
  Name:        ups-instance3                                                                      
  Namespace:   szh-project                                                                        
  Status:      Ready - The instance was provisioned successfully @ 2018-06-26 02:43:03 +0000 UTC  
  Class:       user-provided-service                                                              
  Plan:        default                                                                            

Parameters:
  {}

Bindings:
         NAME           STATUS  
+---------------------+--------+
  ups-instance3         Ready   
  ups-instance3-bind1   Ready 
  ups-instance3-bind2   Ready   

In cluster:
[root@ip-172-18-12-11 ~]# svcat unbind --name ups-instance3-bind1 --wait
deleted ups-instance3-bind1

Out of cluster:
[szh@localhost ~]$ svcat unbind --name ups-instance3-bind2 --wait
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x178 pc=0xedf887]

goroutine 1 [running]:
github.com/kubernetes-incubator/service-catalog/pkg/svcat/service-catalog.(*SDK).BindingHasStatus(0xc42048b840, 0x0, 0x1208580, 0x6, 0xc42000e078)
        /builddir/build/BUILD/atomic-enterprise-service-catalog-git-1442.44299e9/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/pkg/svcat/service-catalog/binding.go:246 +0x37
github.com/kubernetes-incubator/service-catalog/pkg/svcat/service-catalog.(*SDK).IsBindingFailed(0xc42048b840, 0x0, 0xb)
        /builddir/build/BUILD/atomic-enterprise-service-catalog-git-1442.44299e9/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/pkg/svcat/service-catalog/binding.go:241 +0x4a
github.com/kubernetes-incubator/service-catalog/cmd/svcat/binding.(*unbindCmd).deleteBinding(0xc420240ea0, 0x7f1d859ed278, 0xc420240ea0)
        /builddir/build/BUILD/atomic-enterprise-service-catalog-git-1442.44299e9/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/cmd/svcat/binding/unbind_cmd.go:100 +0x1c1
github.com/kubernetes-incubator/service-catalog/cmd/svcat/binding.(*unbindCmd).Run(0xc420240ea0, 0xc420240ea0, 0xc420266000)
        /builddir/build/BUILD/atomic-enterprise-service-catalog-git-1442.44299e9/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/cmd/svcat/binding/unbind_cmd.go:83 +0x5b
github.com/kubernetes-incubator/service-catalog/cmd/svcat/command.RunE.func1(0xc420262480, 0xc4202411d0, 0x0, 0x3, 0x0, 0x0)
        /builddir/build/BUILD/atomic-enterprise-service-catalog-git-1442.44299e9/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/cmd/svcat/command/command.go:81 +0x2f
github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra.(*Command).execute(0xc420262480, 0xc420241110, 0x3, 0x3, 0xc420262480, 0xc420241110)
        /builddir/build/BUILD/atomic-enterprise-service-catalog-git-1442.44299e9/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra/command.go:599 +0x3e8
github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc42025c000, 0xc42025cfc0, 0xc42025c240, 0xc420256140)
        /builddir/build/BUILD/atomic-enterprise-service-catalog-git-1442.44299e9/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra/command.go:689 +0x2fe
github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra.(*Command).Execute(0xc42025c000, 0xc42025c000, 0xc4202407e0)
        /builddir/build/BUILD/atomic-enterprise-service-catalog-git-1442.44299e9/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra/command.go:648 +0x2b
main.main()
        /builddir/build/BUILD/atomic-enterprise-service-catalog-git-1442.44299e9/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/cmd/svcat/main.go:59 +0x33c


[root@ip-172-18-12-11 ~]# svcat describe instances ups-instance3
  Name:        ups-instance3                                                                      
  Namespace:   szh-project                                                                        
  Status:      Ready - The instance was provisioned successfully @ 2018-06-26 02:43:03 +0000 UTC  
  Class:       user-provided-service                                                              
  Plan:        default                                                                            

Parameters:
  {}

Bindings:
         NAME           STATUS  
+---------------------+--------+
  ups-instance3         Ready     


Expected results:
Out of cluster the command work normally.

Additional info:
svcat deprovision with "--wait" option has same problem.
Comment 1 Zhang Cheng 2018-06-25 23:34:35 EDT
We are setting target release to 3.11, please correct us if you have any other thinking. Thanks.
Comment 2 Jay Boyd 2018-08-02 11:15:34 EDT
Fixed upstream by https://github.com/kubernetes-incubator/service-catalog/pull/2049.  

This fix is included in OpenShift Service Catalog with v0.1.22:  https://github.com/openshift/service-catalog/pull/16

Current openshift builds are using 0.1.27.
Comment 3 Dongbo Yan 2018-08-20 04:30:21 EDT
Test with
# svcat version
Client Version: v3.11.0-0.17.0;Upstream:v0.1.27
Server Version: v1.11.0+d4cacc0

# svcat unbind --name dyan-bind6 --wait
waiting for the binding(s) to be deleted...
deleted dyan-bind6

could move to verified
Comment 5 Fan Jia 2018-09-07 04:35:49 EDT
Description of problem:
If deprovision instance with flags '--wait' out of cluster,will show the panic message ,and the instance will be provisioned successfully.


Version-Release number of selected component (if applicable):
#svcat version
Client Version: v3.11.0-0.28.0;Upstream:v0.1.30
Server Version: v1.11.0+d4cacc0


How reproducible:
Always

Steps to Reproduce:
1. # svcat describe instances ups-instance
2. # svcat deprovision ups-instance2 -n szh-project --wait --interval 5s
3.

Actual results:
# svcat describe instances ups-instance
  Name:        ups-instance                                                                       
  Namespace:   szh-project                                                                        
  Status:      Ready - The instance was provisioned successfully @ 2018-09-07 05:29:59 +0000 UTC  
  Class:       user-provided-service                                                              
  Plan:        default                                                                            

Parameters:
  No parameters defined

Bindings:
No bindings defined


# svcat deprovision ups-instance2 -n szh-project --wait --interval 5s
Waiting for the instance to be deleted...
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x228 pc=0xf58b97]

goroutine 1 [running]:
github.com/kubernetes-incubator/service-catalog/pkg/svcat/service-catalog.(*SDK).InstanceHasStatus(0xc420372b60, 0x0, 0x129e498, 0x6, 0xc4203b07d0)
	/builddir/build/BUILD/atomic-enterprise-service-catalog-git-1616.2b6b3b7/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/pkg/svcat/service-catalog/instance.go:269 +0x37
github.com/kubernetes-incubator/service-catalog/pkg/svcat/service-catalog.(*SDK).IsInstanceFailed(0xc420372b60, 0x0, 0xb)
	/builddir/build/BUILD/atomic-enterprise-service-catalog-git-1616.2b6b3b7/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/pkg/svcat/service-catalog/instance.go:264 +0x4a
github.com/kubernetes-incubator/service-catalog/cmd/svcat/instance.(*deprovisonCmd).deprovision(0xc420265340, 0x1b69ae0, 0xc4202c54a0)
	/builddir/build/BUILD/atomic-enterprise-service-catalog-git-1616.2b6b3b7/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/cmd/svcat/instance/deprovision_cmd.go:83 +0x1fd
github.com/kubernetes-incubator/service-catalog/cmd/svcat/instance.(*deprovisonCmd).Run(0xc420265340, 0x0, 0x0)
	/builddir/build/BUILD/atomic-enterprise-service-catalog-git-1616.2b6b3b7/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/cmd/svcat/instance/deprovision_cmd.go:67 +0x2b
github.com/kubernetes-incubator/service-catalog/cmd/svcat/command.RunE.func1(0xc4202f2c80, 0xc4202fe3c0, 0x1, 0x6, 0x0, 0x0)
	/builddir/build/BUILD/atomic-enterprise-service-catalog-git-1616.2b6b3b7/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/cmd/svcat/command/command.go:83 +0x2f
github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra.(*Command).execute(0xc4202f2c80, 0xc4202fe300, 0x6, 0x6, 0xc4202f2c80, 0xc4202fe300)
	/builddir/build/BUILD/atomic-enterprise-service-catalog-git-1616.2b6b3b7/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra/command.go:756 +0x475
github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra.(*Command).ExecuteC(0xc4202e0000, 0xc4202e0780, 0xc4202e0280, 0xc420264a20)
	/builddir/build/BUILD/atomic-enterprise-service-catalog-git-1616.2b6b3b7/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra/command.go:846 +0x334
github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra.(*Command).Execute(0xc4202e0000, 0xc4202e0000, 0xc42029dce0)
	/builddir/build/BUILD/atomic-enterprise-service-catalog-git-1616.2b6b3b7/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/vendor/github.com/spf13/cobra/command.go:794 +0x2b
main.main()
	/builddir/build/BUILD/atomic-enterprise-service-catalog-git-1616.2b6b3b7/_output/local/go/src/github.com/kubernetes-incubator/service-catalog/cmd/svcat/main.go:59 +0x33c


Expected results:
Inside of cluster the command work normally.

Additional info:
svcat unbind with "--wait" option doesn't have same problem now.
Comment 6 Jay Boyd 2018-09-07 09:28:39 EDT
The fix for this is in Upstream v0.1.31.  Unfortunately the version tested in doesn't contain this fix (0.1.30).  Please retest with the latest version of svcat. 
 
svcat --version needs to report "v3.11.0-0.32.0;Upstream:v0.1.31" or higher.
Comment 7 Fan Jia 2018-09-09 23:14:29 EDT
chang status to ON_QA
Comment 8 Fan Jia 2018-09-09 23:16:44 EDT
retest with version "Upstream:v0.1.31"

Version-Release number of selected component (if applicable):
Client Version: v3.11.0-0.32.0;Upstream:v0.1.31
Server Version: v1.11.0+d4cacc0

Deprovison instance outside of  cluster by `svcat command` and no panic message show again.
Comment 10 errata-xmlrpc 2018-10-11 03:20:54 EDT
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:2652

Note You need to log in before you can comment on or make changes to this bug.