Plugin crash

I've been seeing this issue for some time with previous commits.
I tried again today with latest 0d6e7d75f4086f54575473d705cbc01853ee21a7 but it still happens:
(base) takeshi:lab225131$ go version
go version go1.16.4 linux/amd64

(base) takeshi:lab225131$ terraform version
Terraform v0.15.3
on linux_amd64
+ provider registry.terraform.io/telmate/proxmox v2.0.0

Your version of Terraform is out of date! The latest version
is 0.15.4. You can update by downloading from https://www.terraform.io/downloads.html

(base) takeshi:lab225131$ terraform apply

Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:
  + create

Terraform will perform the following actions:

  # proxmox_vm_qemu.basix-ban will be created
  + resource "proxmox_vm_qemu" "basix-ban" {
      + agent                  = 1
      + balloon                = 0
      + bios                   = "seabios"
      + boot                   = "cdn"
      + bootdisk               = (known after apply)
      + clone                  = "debian10-raw-template"
      + clone_wait             = 15
      + cores                  = 1
      + cpu                    = "host"
      + define_connection_info = true
      + desc                   = "basix-ban"
      + force_create           = false
      + full_clone             = true
      + hotplug                = "network,disk,usb"
      + id                     = (known after apply)
      + ipconfig0              = "ip=<IP_ADDRESS>/24,gw=<IP_ADDRESS>"
      + kvm                    = true
      + memory                 = 512
      + name                   = "lab225131"
      + nameserver             = (known after apply)
      + numa                   = false
      + onboot                 = true
      + os_type                = "cloud-init"
      + preprovision           = true
      + scsihw                 = "virtio-scsi-pci"
      + searchdomain           = (known after apply)
      + sockets                = 1
      + ssh_host               = (known after apply)
      + ssh_port               = (known after apply)
      + target_node            = "labprox04221"
      + unused_disk            = (known after apply)
      + vcpus                  = 0
      + vlan                   = -1
      + vmid                   = (known after apply)

      + disk {
          + backup       = false
          + cache        = "none"
          + file         = (known after apply)
          + format       = (known after apply)
          + iothread     = false
          + mbps         = 0
          + mbps_rd      = 0
          + mbps_rd_max  = 0
          + mbps_wr      = 0
          + mbps_wr_max  = 0
          + media        = (known after apply)
          + replicate    = false
          + size         = "32G"
          + slot         = (known after apply)
          + storage      = "lvpve001"
          + storage_type = (known after apply)
          + type         = "scsi"
          + volume       = (known after apply)
        }

      + network {
          + bridge    = "vmbr3"
          + firewall  = false
          + link_down = false
          + macaddr   = (known after apply)
          + model     = "virtio"
          + queues    = (known after apply)
          + rate      = (known after apply)
          + tag       = -1
        }
    }

  # proxmox_vm_qemu.basix-fe will be created
  + resource "proxmox_vm_qemu" "basix-fe" {
      + agent                  = 1
      + balloon                = 0
      + bios                   = "seabios"
      + boot                   = "cdn"
      + bootdisk               = (known after apply)
      + clone                  = "debian10-raw-template"
      + clone_wait             = 15
      + cores                  = 1
      + cpu                    = "host"
      + define_connection_info = true
      + desc                   = "basix-fe"
      + force_create           = false
      + full_clone             = true
      + hotplug                = "network,disk,usb"
      + id                     = (known after apply)
      + ipconfig0              = "ip=<IP_ADDRESS>/24,gw=<IP_ADDRESS>"
      + kvm                    = true
      + memory                 = 512
      + name                   = "lab225133-basix-fe"
      + nameserver             = (known after apply)
      + numa                   = false
      + onboot                 = true
      + os_type                = "cloud-init"
      + preprovision           = true
      + scsihw                 = "virtio-scsi-pci"
      + searchdomain           = (known after apply)
      + sockets                = 1
      + ssh_host               = (known after apply)
      + ssh_port               = (known after apply)
      + target_node            = "labprox04221"
      + unused_disk            = (known after apply)
      + vcpus                  = 0
      + vlan                   = -1
      + vmid                   = (known after apply)

      + disk {
          + backup       = false
          + cache        = "none"
          + file         = (known after apply)
          + format       = (known after apply)
          + iothread     = false
          + mbps         = 0
          + mbps_rd      = 0
          + mbps_rd_max  = 0
          + mbps_wr      = 0
          + mbps_wr_max  = 0
          + media        = (known after apply)
          + replicate    = false
          + size         = "32G"
          + slot         = (known after apply)
          + storage      = "lvpve001"
          + storage_type = (known after apply)
          + type         = "scsi"
          + volume       = (known after apply)
        }

      + network {
          + bridge    = "vmbr3"
          + firewall  = false
          + link_down = false
          + macaddr   = (known after apply)
          + model     = "virtio"
          + queues    = (known after apply)
          + rate      = (known after apply)
          + tag       = -1
        }
    }

  # proxmox_vm_qemu.basix-tester will be created
  + resource "proxmox_vm_qemu" "basix-tester" {
      + agent                  = 1
      + balloon                = 0
      + bios                   = "seabios"
      + boot                   = "cdn"
      + bootdisk               = (known after apply)
      + clone                  = "debian10-raw-template"
      + clone_wait             = 15
      + cores                  = 1
      + cpu                    = "host"
      + define_connection_info = true
      + desc                   = "basix-tester"
      + force_create           = false
      + full_clone             = true
      + hotplug                = "network,disk,usb"
      + id                     = (known after apply)
      + ipconfig0              = "ip=<IP_ADDRESS>/24,gw=<IP_ADDRESS>"
      + ipconfig1              = "ip=<IP_ADDRESS>/24,gw=<IP_ADDRESS>"
      + kvm                    = true
      + memory                 = 512
      + name                   = "lab225132-basix-tester"
      + nameserver             = (known after apply)
      + numa                   = false
      + onboot                 = true
      + os_type                = "cloud-init"
      + preprovision           = true
      + scsihw                 = "virtio-scsi-pci"
      + searchdomain           = (known after apply)
      + sockets                = 1
      + ssh_host               = (known after apply)
      + ssh_port               = (known after apply)
      + target_node            = "labprox04221"
      + unused_disk            = (known after apply)
      + vcpus                  = 0
      + vlan                   = -1
      + vmid                   = (known after apply)

      + disk {
          + backup       = false
          + cache        = "none"
          + file         = (known after apply)
          + format       = (known after apply)
          + iothread     = false
          + mbps         = 0
          + mbps_rd      = 0
          + mbps_rd_max  = 0
          + mbps_wr      = 0
          + mbps_wr_max  = 0
          + media        = (known after apply)
          + replicate    = false
          + size         = "32G"
          + slot         = (known after apply)
          + storage      = "lvpve001"
          + storage_type = (known after apply)
          + type         = "scsi"
          + volume       = (known after apply)
        }

      + network {
          + bridge    = "vmbr3"
          + firewall  = false
          + link_down = false
          + macaddr   = (known after apply)
          + model     = "virtio"
          + queues    = (known after apply)
          + rate      = (known after apply)
          + tag       = -1
        }
      + network {
          + bridge    = "vmbr4"
          + firewall  = false
          + link_down = false
          + macaddr   = (known after apply)
          + model     = "virtio"
          + queues    = (known after apply)
          + rate      = (known after apply)
          + tag       = -1
        }
    }

Plan: 3 to add, 0 to change, 0 to destroy.

Do you want to perform these actions?
  Terraform will perform the actions described above.
  Only 'yes' will be accepted to approve.

   The plugin logs may contain more details.
╵
╷
│ Error: Plugin did not respond
│
│   with proxmox_vm_qemu.basix-tester,
│   on lab225131.tf line 58, in resource "proxmox_vm_qemu" "basix-tester":
│   58: resource "proxmox_vm_qemu" "basix-tester" {
│
│ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ApplyResourceChange call. The plugin logs may contain more details.
╵
╷
│ Error: Plugin did not respond
│
│   with proxmox_vm_qemu.basix-fe,
│   on lab225131.tf line 98, in resource "proxmox_vm_qemu" "basix-fe":
│   98: resource "proxmox_vm_qemu" "basix-fe" {
│
│ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ApplyResourceChange call. The plugin logs may contain more details.
╵

Stack trace from the terraform-provider-proxmox plugin:

panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x100 pc=0x8f1610]

goroutine 27 [running]:
github.com/Telmate/terraform-provider-proxmox/proxmox.resourceVmQemuCreate(0xc000664f00, 0xb794c0, 0xc00042a000, 0x0, 0x0)
	/home/takeshi/extra/src/git/terraform-provider-proxmox/proxmox/resource_vm_qemu.go:802 +0x22f0
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).create(0xc0003168f0, 0xd9e800, 0xc0001ae500, 0xc000664f00, 0xb794c0, 0xc00042a000, 0x0, 0x0, 0x0)
	/home/takeshi/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/helper/schema/resource.go:268 +0x88
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).Apply(0xc0003168f0, 0xd9e800, 0xc0001ae500, 0xc0000da460, 0xc0004a3240, 0xb794c0, 0xc00042a000, 0x0, 0x0, 0x0, ...)
	/home/takeshi/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/helper/schema/resource.go:386 +0x65b
github.com/hashicorp/terraform-plugin-sdk/v2/internal/helper/plugin.(*GRPCProviderServer).ApplyResourceChange(0xc0003041c0, 0xd9e800, 0xc0001ae500, 0xc0000da230, 0xc0003041c0, 0xc0003041d0, 0xce0a90)
	/home/takeshi/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/internal/helper/plugin/grpc_provider.go:952 +0x8cf
github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfplugin5._Provider_ApplyResourceChange_Handler.func1(0xd9e800, 0xc0001ae500, 0xc73fe0, 0xc0000da230, 0xc0001ae500, 0xbfb560, 0x1, 0xc0004a2040)
	/home/takeshi/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/internal/tfplugin5/tfplugin5.pb.go:3312 +0x89
github.com/hashicorp/terraform-plugin-sdk/v2/plugin.Serve.func3.1(0xd9e8c0, 0xc0005ec000, 0xc73fe0, 0xc0000da230, 0xc0004a2020, 0xc0004a2040, 0xc000523ba0, 0x59da66, 0xc4c9a0, 0xc0005ec000)
	/home/takeshi/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/plugin/serve.go:76 +0x87
github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfplugin5._Provider_ApplyResourceChange_Handler(0xc81fc0, 0xc0003041c0, 0xd9e8c0, 0xc0005ec000, 0xc000412060, 0xc000201660, 0xd9e8c0, 0xc0005ec000, 0xc0007cea80, 0x91d)
	/home/takeshi/go/pkg/mod/github.com/hashicorp/terraform-plugin-sdk/v2@v2.1.0/internal/tfplugin5/tfplugin5.pb.go:3314 +0x150
google.golang.org/grpc.(*Server).processUnaryRPC(0xc00033a700, 0xda64e0, 0xc000503680, 0xc000702000, 0xc0002b0750, 0x11d0b20, 0x0, 0x0, 0x0)
	/home/takeshi/go/pkg/mod/google.golang.org/grpc@v1.30.0/server.go:1171 +0x522
google.golang.org/grpc.(*Server).handleStream(0xc00033a700, 0xda64e0, 0xc000503680, 0xc000702000, 0x0)
	/home/takeshi/go/pkg/mod/google.golang.org/grpc@v1.30.0/server.go:1494 +0xcc5
google.golang.org/grpc.(*Server).serveStreams.func1.2(0xc00030a1d0, 0xc00033a700, 0xda64e0, 0xc000503680, 0xc000702000)
	/home/takeshi/go/pkg/mod/google.golang.org/grpc@v1.30.0/server.go:834 +0xa5
created by google.golang.org/grpc.(*Server).serveStreams.func1
	/home/takeshi/go/pkg/mod/google.golang.org/grpc@v1.30.0/server.go:832 +0x1fd

Error: The terraform-provider-proxmox plugin crashed!

This is always indicative of a bug within the plugin. It would be immensely
helpful if you could report the crash with the plugin's maintainers so that it
can be fixed. The output above should help diagnose the issue.

You will want to enable the provider debug log. Checking the proxmox web hi
console might also give you the failure reason. I agree the provider
shouldn't explode all over the place like this and that the error returns
are subpar at best.
On Wed, May 19, 2021, 11:23 PM MayamaTakeshi @.***>
wrote:

I've been seeing this issue for some time with previous commits.
I tried again today with latest 0d6e7d7
https://github.com/Telmate/terraform-provider-proxmox/commit/0d6e7d75f4086f54575473d705cbc01853ee21a7
but it still happens:
(base) takeshi:lab225131$ go version
go version go1.16.4 linux/amd64
(base) takeshi:lab225131$ terraform version
Terraform v0.15.3
on linux_amd64

provider registry.terraform.io/telmate/proxmox v2.0.0

Your version of Terraform is out of date! The latest version
is 0.15.4. You can update by downloading from https://www.terraform.io/downloads.html
(base) takeshi:lab225131$ terraform apply
Terraform used the selected providers to generate the following execution plan. Resource actions are indicated with the following symbols:

create

Terraform will perform the following actions:
proxmox_vm_qemu.basix-ban will be created

resource "proxmox_vm_qemu" "basix-ban" {

agent                  = 1

balloon                = 0

bios                   = "seabios"

boot                   = "cdn"

bootdisk               = (known after apply)

clone                  = "debian10-raw-template"

clone_wait             = 15

cores                  = 1

cpu                    = "host"

define_connection_info = true

desc                   = "basix-ban"

force_create           = false

full_clone             = true

hotplug                = "network,disk,usb"

id                     = (known after apply)

ipconfig0              = "ip=<IP_ADDRESS>/24,gw=<IP_ADDRESS>"

kvm                    = true

memory                 = 512

name                   = "lab225131"

nameserver             = (known after apply)

numa                   = false

onboot                 = true

os_type                = "cloud-init"

preprovision           = true

scsihw                 = "virtio-scsi-pci"

searchdomain           = (known after apply)

sockets                = 1

ssh_host               = (known after apply)

ssh_port               = (known after apply)

target_node            = "labprox04221"

unused_disk            = (known after apply)

vcpus                  = 0

vlan                   = -1

vmid                   = (known after apply)

disk {

backup       = false

cache        = "none"

file         = (known after apply)

format       = (known after apply)

iothread     = false

mbps         = 0

mbps_rd      = 0

mbps_rd_max  = 0

mbps_wr      = 0

mbps_wr_max  = 0

media        = (known after apply)

replicate    = false

size         = "32G"

slot         = (known after apply)

storage      = "lvpve001"

storage_type = (known after apply)

type         = "scsi"

volume       = (known after apply)

}

network {

bridge    = "vmbr3"

firewall  = false

link_down = false

macaddr   = (known after apply)

model     = "virtio"

queues    = (known after apply)

rate      = (known after apply)

tag       = -1

}

}

proxmox_vm_qemu.basix-fe will be created

resource "proxmox_vm_qemu" "basix-fe" {

agent                  = 1

balloon                = 0

bios                   = "seabios"

boot                   = "cdn"

bootdisk               = (known after apply)

clone                  = "debian10-raw-template"

clone_wait             = 15

cores                  = 1

cpu                    = "host"

define_connection_info = true

desc                   = "basix-fe"

force_create           = false

full_clone             = true

hotplug                = "network,disk,usb"

id                     = (known after apply)

ipconfig0              = "ip=<IP_ADDRESS>/24,gw=<IP_ADDRESS>"

kvm                    = true

memory                 = 512

name                   = "lab225133-basix-fe"

nameserver             = (known after apply)

numa                   = false

onboot                 = true

os_type                = "cloud-init"

preprovision           = true

scsihw                 = "virtio-scsi-pci"

searchdomain           = (known after apply)

sockets                = 1

ssh_host               = (known after apply)

ssh_port               = (known after apply)

target_node            = "labprox04221"

unused_disk            = (known after apply)

vcpus                  = 0

vlan                   = -1

vmid                   = (known after apply)

disk {

backup       = false

cache        = "none"

file         = (known after apply)

format       = (known after apply)

iothread     = false

mbps         = 0

mbps_rd      = 0

mbps_rd_max  = 0

mbps_wr      = 0

mbps_wr_max  = 0

media        = (known after apply)

replicate    = false

size         = "32G"

slot         = (known after apply)

storage      = "lvpve001"

storage_type = (known after apply)

type         = "scsi"

volume       = (known after apply)

}

network {

bridge    = "vmbr3"

firewall  = false

link_down = false

macaddr   = (known after apply)

model     = "virtio"

queues    = (known after apply)

rate      = (known after apply)

tag       = -1

}

}

proxmox_vm_qemu.basix-tester will be created

resource "proxmox_vm_qemu" "basix-tester" {

agent                  = 1

balloon                = 0

bios                   = "seabios"

boot                   = "cdn"

bootdisk               = (known after apply)

clone                  = "debian10-raw-template"

clone_wait             = 15

cores                  = 1

cpu                    = "host"

define_connection_info = true

desc                   = "basix-tester"

force_create           = false

full_clone             = true

hotplug                = "network,disk,usb"

id                     = (known after apply)

ipconfig0              = "ip=<IP_ADDRESS>/24,gw=<IP_ADDRESS>"

ipconfig1              = "ip=<IP_ADDRESS>/24,gw=<IP_ADDRESS>"

kvm                    = true

memory                 = 512

name                   = "lab225132-basix-tester"

nameserver             = (known after apply)

numa                   = false

onboot                 = true

os_type                = "cloud-init"

preprovision           = true

scsihw                 = "virtio-scsi-pci"

searchdomain           = (known after apply)

sockets                = 1

ssh_host               = (known after apply)

ssh_port               = (known after apply)

target_node            = "labprox04221"

unused_disk            = (known after apply)

vcpus                  = 0

vlan                   = -1

vmid                   = (known after apply)

disk {

backup       = false

cache        = "none"

file         = (known after apply)

format       = (known after apply)

iothread     = false

mbps         = 0

mbps_rd      = 0

mbps_rd_max  = 0

mbps_wr      = 0

mbps_wr_max  = 0

media        = (known after apply)

replicate    = false

size         = "32G"

slot         = (known after apply)

storage      = "lvpve001"

storage_type = (known after apply)

type         = "scsi"

volume       = (known after apply)

}

network {

bridge    = "vmbr3"

firewall  = false

link_down = false

macaddr   = (known after apply)

model     = "virtio"

queues    = (known after apply)

rate      = (known after apply)

tag       = -1

}

network {

bridge    = "vmbr4"

firewall  = false

link_down = false

macaddr   = (known after apply)

model     = "virtio"

queues    = (known after apply)

rate      = (known after apply)

tag       = -1

}

}

Plan: 3 to add, 0 to change, 0 to destroy.
Do you want to perform these actions?
Terraform will perform the actions described above.
Only 'yes' will be accepted to approve.
 The plugin logs may contain more details.
╵
╷
│ Error: Plugin did not respond
│
│   with proxmox_vm_qemu.basix-tester,
│   on lab225131.tf line 58, in resource "proxmox_vm_qemu" "basix-tester":
│   58: resource "proxmox_vm_qemu" "basix-tester" {
│
│ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ApplyResourceChange call. The plugin logs may contain more details.
╵
╷
│ Error: Plugin did not respond
│
│   with proxmox_vm_qemu.basix-fe,
│   on lab225131.tf line 98, in resource "proxmox_vm_qemu" "basix-fe":
│   98: resource "proxmox_vm_qemu" "basix-fe" {
│
│ The plugin encountered an error, and failed to respond to the plugin.(*GRPCProvider).ApplyResourceChange call. The plugin logs may contain more details.
╵
Stack trace from the terraform-provider-proxmox plugin:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x100 pc=0x8f1610]
goroutine 27 [running]:
github.com/Telmate/terraform-provider-proxmox/proxmox.resourceVmQemuCreate(0xc000664f00, 0xb794c0, 0xc00042a000, 0x0, 0x0)
/home/takeshi/extra/src/git/terraform-provider-proxmox/proxmox/resource_vm_qemu.go:802 +0x22f0
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).create(0xc0003168f0, 0xd9e800, 0xc0001ae500, 0xc000664f00, 0xb794c0, 0xc00042a000, 0x0, 0x0, 0x0)
@.***/helper/schema/resource.go:268 +0x88
github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema.(*Resource).Apply(0xc0003168f0, 0xd9e800, 0xc0001ae500, 0xc0000da460, 0xc0004a3240, 0xb794c0, 0xc00042a000, 0x0, 0x0, 0x0, ...)
@.***/helper/schema/resource.go:386 +0x65b
github.com/hashicorp/terraform-plugin-sdk/v2/internal/helper/plugin.(*GRPCProviderServer).ApplyResourceChange(0xc0003041c0, 0xd9e800, 0xc0001ae500, 0xc0000da230, 0xc0003041c0, 0xc0003041d0, 0xce0a90)
@.***/internal/helper/plugin/grpc_provider.go:952 +0x8cf
github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfplugin5._Provider_ApplyResourceChange_Handler.func1(0xd9e800, 0xc0001ae500, 0xc73fe0, 0xc0000da230, 0xc0001ae500, 0xbfb560, 0x1, 0xc0004a2040)
@.***/internal/tfplugin5/tfplugin5.pb.go:3312 +0x89
github.com/hashicorp/terraform-plugin-sdk/v2/plugin.Serve.func3.1(0xd9e8c0, 0xc0005ec000, 0xc73fe0, 0xc0000da230, 0xc0004a2020, 0xc0004a2040, 0xc000523ba0, 0x59da66, 0xc4c9a0, 0xc0005ec000)
@.***/plugin/serve.go:76 +0x87
github.com/hashicorp/terraform-plugin-sdk/v2/internal/tfplugin5._Provider_ApplyResourceChange_Handler(0xc81fc0, 0xc0003041c0, 0xd9e8c0, 0xc0005ec000, 0xc000412060, 0xc000201660, 0xd9e8c0, 0xc0005ec000, 0xc0007cea80, 0x91d)
@.***/internal/tfplugin5/tfplugin5.pb.go:3314 +0x150
google.golang.org/grpc.(*Server).processUnaryRPC(0xc00033a700, 0xda64e0, 0xc000503680, 0xc000702000, 0xc0002b0750, 0x11d0b20, 0x0, 0x0, 0x0)
@.***/server.go:1171 +0x522
google.golang.org/grpc.(*Server).handleStream(0xc00033a700, 0xda64e0, 0xc000503680, 0xc000702000, 0x0)
@.***/server.go:1494 +0xcc5
google.golang.org/grpc.(*Server).serveStreams.func1.2(0xc00030a1d0, 0xc00033a700, 0xda64e0, 0xc000503680, 0xc000702000)
@.***/server.go:834 +0xa5
created by google.golang.org/grpc.(*Server).serveStreams.func1
@.***/server.go:832 +0x1fd
Error: The terraform-provider-proxmox plugin crashed!
This is always indicative of a bug within the plugin. It would be immensely
helpful if you could report the crash with the plugin's maintainers so that it
can be fixed. The output above should help diagnose the issue.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Telmate/terraform-provider-proxmox/issues/355, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AASFVZJULSBGS7LPIXSCJD3TOR6EJANCNFSM45F6GOFQ
.

I enabled debug log: Uploading terraform-plugin-proxmox.log…
But there is no error. I confirmed in the proxy WebGUI: the terraform file asks for creation of 3 VMs cloned from the same vm-template and all 3 cloning operations succeed.
I tried separating each VM in their own terraform files and executing 'terraform apply' for each of them separately was successful.
So I suppose the plugin has issues handling multiple VMs (or maybe some timeout is triggering a bug since it needs to wait for longer for the operations to complete (each VM  separately is taking about 4 minutes to be created).
I think this is not highly critical: I will change my automation procedure to create each VM one by one by adding them to the terraform file after the previous one is created.

In my environment able to spin up multiple VMs in parallel. Can you post
your .tf file so I can test it?
On Fri, May 21, 2021, 3:25 AM MayamaTakeshi @.***>
wrote:

I enabled debug log: Uploading terraform-plugin-proxmox.log…
But there is no error. I confirmed in the proxy WebGUI: the terraform file
asks for creation of 3 VMs cloned from the same vm-template and all 3
cloning operations succeed.
I tried separating each VM in their own terraform files and executing
'terraform apply' for each of them separately was successful.
So I suppose the plugin has issues handling multiple VMs (or maybe some
timeout is triggering a bug since it needs to wait for longer for the
operations to complete (each VM separately is taking about 4 minutes to be
created).
I think this is not highly critical: I will change my automation procedure
to create each VM one by one by adding them to the terraform file after the
previous one is created.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Telmate/terraform-provider-proxmox/issues/355#issuecomment-845724686,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AASFVZLJUAPM53EJV3MIXGTTOYDGRANCNFSM45F6GOFQ
.

according to this line it crashes silently there 	/home/takeshi/extra/src/git/terraform-provider-proxmox/proxmox/resource_vm_qemu.go:802 +0x22f0
https://github.com/Telmate/terraform-provider-proxmox/blob/master/proxmox/resource_vm_qemu.go#L802
but from logs it goes ahead in creating the vm(getting a free vm id)
dont know whats happening there... is the server powerful enough? what kind of template are you using?

@pgporada
Here is the .tf file (renamed with .txt suffix):
main.txt
It tries to create 3 VMs from a template with a disk of 30GB.
However, I tried creating a new template with a disk of 120GB.
Then I tried to create a single VM with it and the same crash happened.
I compared the timing of the crashes:
Three VMs of 30GB: 5m44.014s
One VM of 120GB: 5m47.903s
So, this is not related to multiple VMs.
Instead it seems the plugin cannot wait for very long for the cloning operation to complete.

@mleone87
I suppose the server is OK. It is a 16-core machine:
# grep "model name" /proc/cpuinfo
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz
model name	: Intel(R) Xeon(R) CPU           X5550  @ 2.67GHz

But as mentioned in my previous post I think the problem is that the plugin doesn't handle template cloning timeout properly.

I think this is not highly critical: I will change my automation procedure to create each VM one by one by adding them to the terraform file after the previous one is created.

Checking the docs, I realized I just need to instruct terraform to create one VM at a time by doing:
terraform apply -parallelism=1

and I can use pm_timeout in the tf file to increase the proxmox API reply timeout (but with the caveat mentioned in #358).
(well all this would eventually fail if more than one person runs 'terraform apply -parallelism=1' at the same time causing more than on template cloning to happen simultaneously but it is not my case).


Frontend test

Description
Added frontend tests and updated CI
Related issues
Closes: https://github.com/intelowlproject/GreedyBear/issues/65
Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue).
[ ] New feature (non-breaking change which adds functionality).
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected).

Checklist

[ ] I have read and understood the rules about how to Contribute to this project
[ ] The pull request is for the branch develop
[ ] I have added documentation of the new features.
[ ] The tests gave 0 errors.
[ ] Linters (Black, Flake, Isort) gave 0 errors. If you have correctly installed pre-commit, it does these checks and adjustments on your behalf.
[ ] The commits were squashed into a single one (optional, they will be squashed anyway by the maintainer)
[ ] If changes were made to an existing model/serializer/view, the docs were updated and regenerated (check CONTRIBUTE.md).

Important Rules

If your changes decrease the overall tests coverage (you will know after the Codecov CI job is done), you should add the required tests to fix the problem
Everytime you make changes to the PR and you think the work is done, you should explicitly ask for a review

@mlodic Please remove from this repository config the old actions (linters and tests).

done, anyway you are admin so you should be able to do it :P


Any known issues with running purely untrusted code?

Just curious if there is any issues, as I'm looking for something that is capable.

I highly recommend against using this as a sandbox for untrusted code


Permutation matrices

A permutation matrix is a very special kind of matrix with many applications in mathematics. Within rulinalg, its use is most notable in the LU decomposition: an n x n matrix A is decomposed such that PA = LU where P is an n x n permutation matrix.
Currently, the permutation matrix returned by our LU decomposition is an ordinary Matrix instance, which means it takes O(n2) storage and performing the multiplication P B for an n x n matrix B takes O(n3) operations.
However, because of its very special structure, a permutation matrix can be stored in O(n) storage, and the multiplication P B can be performed in only O(n2) operations. In my opinion, these cost savings more than justify having a specialized implementation for permutation matrices.
Most of the implementation of such a permutation matrix is already in place as part of #94. However, I intend to split up #94 so that the permutation matrix implementation can be a separate PR, which can be merged without breaking changes, whereas the full LU re-implementation may have to wait until we want to make a version bump with breaking changes.
I believe the following operations involving permutation matrices need to be supported:

[x] Construction from an array-representation of a permutation
[x] Computing the inverse permutation
[ ] Left-multiplying any BaseMatrix derivatives (permuting the rows)
[ ] Right-multiplying any BaseMatrix derivatives (permuting the cols)
[ ] Multiplication with other permutation matrices
[ ] Functionality to convert into a full Matrix (From implementation for Matrix presumably, or perhaps also a shortcut member function in addition)
[ ] Computing the parity/determinant of the permutation matrix
[ ] rows()/cols()
[x] Swapping rows in the permutation matrix
[x] NO support for Add/Sub binary/unary operators (does not make sense for a permutation matrix)

I'm a little apprehensive about adding more matrix types for which multiplication implementations need to be provided, but after having thought about it a lot, I truly believe it is worth the effort for permutation matrices.
Also, the above suggests that perhaps we should have a more general matrix trait on which BaseMatrix depends. I.e. something like MatrixLike which covers only indexing and rows/cols.

This is very well written, thank you!
I agree with pretty much everything you said. Just a couple comments:

However, I intend to split up #94 so that the permutation matrix implementation can be a separate PR,

I think this is a good idea.

I'm a little apprehensive about adding more matrix types for which multiplication implementations need to be provided

Me too. I agree that if we can get a big performance boost we should do this - but given how well optimized the current implementation is for standard matrices we'll want to benchmark this carefully. We may find that a bad O(n^2) implementation loses out to the smart O(n^3) one in some moderate cases.

Also, the above suggests that perhaps we should have a more general matrix trait on which BaseMatrix depends. I.e. something like MatrixLike which covers only indexing and rows/cols.

I think this is also a good idea. In some cases we can simplify algorithms to work on this trait and it lets users easily take advantage of them with their own structures (by implementing the easier and less presumptive MatrixLike trait).
A less intrusive approach would be to have BaseMatrix depend on some more things as we've discussed before. For example Index<[usize; 2], Output=T>. This gives us a little less though.

Completely agree that this needs to be benchmarked. However, I'd be very surprised to see matrix multiplication being faster in any except for perhaps the very smallest matrices, so I'm quite confident it will be a worthwhile addition. Still - bench first :)

A less intrusive approach would be to have BaseMatrix depend on some more things as we've discussed before. For example Index<[usize; 2], Output=T>. This gives us a little less though.

This probably belongs to a future discussion, but eventually I think we need a hierarchy of traits for this. In particular, for iterative sparse matrix solvers one often works with matrix-free "linear operators" - that is, an operator which acts on a vector and returns a vector of the same size, but it does not have an explicit matrix representation. I can imagine that we might want to construct a trait hierarchy similar to the following in the future:
LinearOperator
    MatrixLike
         DenseMatrix (what is currently BaseMatrix)
         SparseMatrix

This is also similar to something @c410-f3r suggested somewhere (can't remember where atm).

@AtheMathmo: how much work did you do on the splitting of the binary operators into smaller files? I found myself spending a little bit of time pulling out the permutation work from #94, and I am mostly lacking the Mul implementations for an almost complete PR. Just wondering if I should await the PR with the split. Alternatively I could undertake the splitting (or continue it if you've started, I don't remember) myself.
As usual, there's no rush. I have no idea if I'll even have time to work on it at the moment anyway!

Sorry for the delay, moved country and haven't had much spare time!
I didn't tackle the impl_ops module yet, sadly. Will try to do so over the weekend if I can find the time.

I expected you would be busy moving, so no worries :) Hope everything is going well!
I hope to have a PR draft ready for this issue later today. So far I just added things to impl_ops, but the permutation stuff is mostly located together, so should be easy to rebase or modify inline with however you want to organize the impl_ops module!


UnexpectedModelBehavior with ollama0.5.4 and llama3.2

I'm encountering this error while running the roulette_wheel.py example code from the PydanticAI documentation. The only difference is that I replaced the model with "ollama:llama3.2". The error message is:
pydantic_ai.exceptions.UnexpectedModelBehavior: Exceeded maximum retries (1) for result validation.
ollama: 0.5.4
PydanticAI: 0.0.16

I suspect ollama:llama3.2 is unable to call the tool which is resulting in error.
Can you   run this code:
print('cause:',repr(e.cause))
and tell me what output you got

I suspect ollama:llama3.2 is unable to call the tool which is resulting in error. Can you run this code:
print('cause:',repr(e.__cause__))

Tell me what output you are getting.

This is what I got "cause: None"

ollama:llama3.2 .This model might be calling the tool more than once either automatically or may be due to your prompts. Default limit of retries is 1 and if your model calls it more than the limits of retries , an error is thrown.
Read this: https://ai.pydantic.dev/agents/?h=refl#reflection-and-self-correction


WebpackLoaderBadStatsError during bundling

I'm trying to bundling my asset files in production server. Everything works fine except that during building the bundle which takes about 20 seconds, anyone trying to visit the site will get 500 error. The error is as  follows as far as it is concerned with webpack_loader:
File ".../lib/python3.5/site-packages/webpack_loader/contrib/jinja2ext.py" in
9.         environment.globals["render_bundle"] = lambda *a, **k: jinja2.Markup(render_bundle(*a, **k))
File ".../lib/python3.5/site-packages/webpack_loader/templatetags/webpack_loader.py" in render_bundle
40.     return render_as_tags(_get_bundle(bundle_name, extension, config), attrs)
File ".../lib/python3.5/site-packages/webpack_loader/templatetags/webpack_loader.py" in _get_bundle
32.     bundle = get_loader(config).get_bundle(bundle_name)
File ".../lib/python3.5/site-packages/webpack_loader/loader.py" in get_bundle
97.             "The stats file does not contain valid data. Make sure "
I should mention that in production settings, I already have set webpack loader cache to True:
WEBPACK_LOADER['DEFAULT']['CACHE'] = True

Any news? If you have no time I can contribute to your project.

You should not be compiling your static assets on a live site. Ideally, the compilation/bundling should happen on a CI server (or from wherever you deploy) and the stats file should be delivered to the the servers along with he updated python code.
If you still want to do this on the server, I suggest to make webpack output to a different file and make django read from a different one. You deploy script can look something like this:
- update code
- run webpack # generates webpack-stats.json
- if webpakc build succeeds:
    - copy `webpack-stats.json` to `webpack-stats-live.json`
    - restart django server
- else:
    - rollback the update

In this case, django will only ready from webpack-stats-live.json but webpack would generate webpack-stats.json. Then your build/deploy script can have a simple cp webpack-stats.json webpack-stats-live.json command to replace the old stats file with the new one.

The problem with client side compiling is that it will make repository full of heavy and useless codes. I think  production server should always works the same until restarting (or reloading) workers.  And in case of webpack loader, it should read webpack-stats.json once and return the same link until next restart. Raising error on production server because of changing a json file is not very good.

From documentation:

When CACHE is set to True, webpack-loader will read the stats file only once and cache the result. This means web workers need to be restarted in order to pick up any changes made to the stats files.

All that I want to say is that this feature doesn't work properly.

OK. Can you please share more details about your production setup? It would be great if you could create a simple, bare minimum example project and share on github.

I can't reproduce the issue anymore. I don't know what to say. I will inform you whenever errors reappear again.

No worries. Feel free to re-open this if needed.

+1
Production settings:
WEBPACK_LOADER = {     'DEFAULT': {         'CACHE': not DEBUG,         'BUNDLE_DIR_NAME': 'dist/',  # must end with slash         'STATS_FILE': os.path.join(SITE_ROOT, 'webpack-stats.json'),         'POLL_INTERVAL': 0.1,         'TIMEOUT': None,         'IGNORE': ['.+\.hot-update.js', '.+\.map']     } }
But during compilation below error occurs:
WebpackLoaderBadStatsError: The stats file does not contain valid data.
variables values:
assets	 { u'publicPath': u'/static/multime3/dist/',  u'status': u'compiling' } bundle_name	 u'manifest'
As I see in documentation assets should be cached and reloaded only when supervisord restarts. But it doesn't work.

Hack with

copy webpack-stats.json to webpack-stats-live.json
solves problem, but according documentation it shouldn't be neccessary

+1 This issue resulted in confusing and embarrassing downtime of 500s during my deploy.
I agree with @mehdipourfar and @orioncx that the CACHE feature doesn't work. It's trivial to reproduce, just reload your server while running Webpack. When Webpack is running, webpack-stats.json becomes:
{"status":"compiling","publicPath":"https://staging-cdn.mineralsoft.com/static/webpack_bundles/"}

When django-webpack-loader encounters that, you get WebpackLoaderBadStatsError, resulting in a 500 during deploys.

Also, the workaround makes me unnecessarily have to have different settings in WEBPACK_LOADER for development vs. production (i.e. in development I want to keep it "normal" with webpack-stats.json, not webpack-stats-live.json + the file copy).

This issue should at least be re-opened...

Current docs say:

When CACHE is set to True, webpack-loader will read the stats file only once and cache the result. This means web workers need to be restarted in order to pick up any changes made to the stats files.

Changelog in 0.3.0 says:

breaking 💥: new CACHE setting which when set to true makes the loader cache the contents of the stats files in memory. If set to True, server will restart every time the stats file contents change or it'll keep serving old, cached URLs. CACHE defaults to not DEBUG by default.

Code says:
    def get_assets(self):
        if self.config['CACHE']:
            if self.name not in self._assets:
                self._assets[self.name] = self._load_assets()
            return self._assets[self.name]
        return self._load_assets()

The way this function is written, with return self._load_assets(), won't the assets be loaded every time get_assets() is called? Should it be this instead?
    def get_assets(self):
        if self.config['CACHE']:
            if self.name not in self._assets:
                # It's the first time, load from file
                self._assets[self.name] = self._load_assets()
            return self._assets[self.name]
        else:
            # Always load from file
            return self._load_assets()

^^^ I submitted a PR that fixes this. It was a very simple code scoping issue.

Nevermind, my bug fix doesn't fix the issue. :( Still looking at it.

I just messed with this for a few hours.

CACHE is working, but it's very nuanced. The docs state "webpack-loader will read the stats file only once". I took this to mean "when the server starts, webpack-stats.json will be ready and not updated until the server restarts. From what I can tell by testing the code, webpack-stats.json is read on the first page load.

Most of my problems were due to pasting the default config into settings.py, and not overriding things properly in settings_staging.py and settings_production.py. When I read the README, I saw the config block and pasted it into settings.py. CACHE has the value not DEBUG. When Django loads, settings.py loads first. My settings.py has DEBUG = True, so CACHE was getting set to False, even in staging and production where DEBUG = True. This is because not DEBUG was executed within the context of settings.py. What I did to fix this was in settings_staging.py and settings_production.py putting:

WEBPACK_LOADER['DEFAULT']['CACHE'] = True

However, because webpack-stats.json is loaded on first read, not startup, I ended up also putting this in settings_staging.py and settings_production.py:
WEBPACK_LOADER['DEFAULT']['STATS_FILE'] = 'webpack_bundles/webpack-stats-live.json'

And in my staging/production Upstart script (gunicorn.sh) adding this step before starting gunicorn:
cp /home/myuser/mysite/webpack_bundles/webpack-stats.json /home/myuser/mysite/webpack_bundles/webpack-stats-live.json

exec ./bin/gunicorn \
    -b <IP_ADDRESS>:8001 \
    -w 10 \
    --timeout 120 \
    --max-requests 100 \
    --max-requests-jitter 10 \
    minerals.wsgi:application

I still thing the behavior/documentation of CACHE is confusing. It didn't work like I expected, partially due to the README leading me to paste the default config into settings.py, and partially because I still don't fully understand when webpack-stats.json gets loaded.
Maybe down the road this could be cleaned up by very explicitly reading webpack-stats.py on server startup/WebpackLoader initialization.

I had the same problem and found a different solution: For DEBUG=False I store the webpack-stats.json with the assets and make django use the stats from the static folder. When I run collectstatic after the webpack build, it will replace the finished stats file with another finished stats file. On DEBUG=False I simple use the stats file from the location where it will be collected.
Webpack config:
        new BundleTracker({
            path: path.resolve(__dirname, '../mainapp/assets/bundles'),
            filename: './webpack-stats.json'
        }),

Django config:
if DEBUG:
    webpack_stats = "mainapp/assets/bundles/webpack-stats.json"
else:
    webpack_stats = os.path.join(STATIC_ROOT, "bundles", "webpack-stats.json")

WEBPACK_LOADER = {
    "DEFAULT": {
        "BUNDLE_DIR_NAME": "bundles/",
        "STATS_FILE": webpack_stats,
    }
}

@konstin your method works like a charm on my project, thanks :)

@konstin on a second look, this method involves that the file is accessible publicly, not that great. But the principle is great though.


What with CSRF?

Logs:
[0cd3486a-ff6b-433e-b743-43e5e7e40ea0] (google_oauth2) Authentication failure! csrf_detected: OmniAuth::Strategies::OAuth2::CallbackError, csrf_detected | CSRF detected
My configs:
provider :google_oauth2, ENV['GOOGLE_CLIENT_ID'], ENV['GOOGLE_CLIENT_SECRET'], verify_iss: false
Should I use provider_ignores_state: true ?

Closing this since it's stale, it also may be better suited for the omniauth OAuth2 repo


[Bayonetta 2] Request: High-contrast areas produce 'judder' despite game being at 60fps

This has been an issue for as long as I can remember with Bayo2 on Cemu, wondering if perhaps a graphics pack can rectify it.
Basically, on geometry that's against high-contrast areas (such as the edges of buildings against a bright sky, or geometry with bloom), they seem to 'trail' the rest of the scene when panning the camera, producing judder even through the framerate is a locked 60 - like parts of the scenes which have bloom/high contrast are only updating at 30fps.
See attached video. If you'll focus on the building edges near the sky, the white buildings on the hills in the distance, and the concrete arches of the structure she's facing that have sunlight cast on them, you can see a noticeable trailing where it's not keeping up with the rest of the scene.
Edit: Ah dammit, after all this time I just got a reply notification for this thread and upon re-visiting my issue I discovered I linked the wrong video from the outset, that one was no doubt not helpful at all in illustrating the problem.
Here is the correct link.
Here is also a comparison with the same scenes in Bayo2 under Yuzu.

nice

Does this issue happen with the latest version of Cemu? And does it also happen on the Wii U?

Does this issue happen with the latest version of Cemu? And does it also happen on the Wii U?

Apologies for getting back so late with this, missed the notification and just came across it now.
Just tried it 2.0.4 - same issue. No it does not happen on the original Wiiu. Here's a video from the WiiU timestamped to a section that shows constant juddering on the bright arches of the structure on Cemu, yet does not exhibit it here.


Turn loading system root certificate as default

This is followup of https://github.com/grpc/grpc/pull/16083. If there is large performance regression, we can revert this back.

****************************************************************

libgrpc.so

     VM SIZE                                                                      FILE SIZE
 ++++++++++++++ GROWING                                                        ++++++++++++++

 -------------- SHRINKING                                                      --------------
  -0.0%     -56 [None]                                                            -216  -0.0%
  -0.8%     -80 src/core/lib/security/security_connector/security_connector.cc     -80  -0.8%
     -13.2%     -80 grpc_core::DefaultSslRootStore::ComputePemRootCerts                -80 -13.2%

  -0.0%    -136 TOTAL                                                             -296  -0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,954,820      Total (<)      1,955,002

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,843,750      Total (<)     10,843,759

 No significant differences in binary sizes

[microbenchmarks] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                                      FILE SIZE
 ++++++++++++++ GROWING                                                        ++++++++++++++

 -------------- SHRINKING                                                      --------------
  -0.0%     -56 [None]                                                            -216  -0.0%
  -0.8%     -80 src/core/lib/security/security_connector/security_connector.cc     -80  -0.8%
     -13.2%     -80 grpc_core::DefaultSslRootStore::ComputePemRootCerts                -80 -13.2%

  -0.0%    -136 TOTAL                                                             -296  -0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,954,820      Total (<)      1,955,002

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,843,755      Total (<)     10,843,759

 No significant differences in binary sizes

[microbenchmarks] No significant performance differences

@ZhouyihaiDing PTAL

****************************************************************

libgrpc.so

     VM SIZE                                                                      FILE SIZE
 ++++++++++++++ GROWING                                                        ++++++++++++++
  [ = ]       0 [None]                                                             +48  +0.0%

 -------------- SHRINKING                                                      --------------
  -0.3%     -32 src/core/lib/security/security_connector/security_connector.cc     -32  -0.3%
      -6.6%     -40 grpc_core::DefaultSslRootStore::ComputePemRootCerts                -40  -6.6%

  -0.0%     -32 TOTAL                                                              +16  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,955,006      Total (>)      1,955,002

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,843,753      Total (<)     10,843,756

 No significant differences in binary sizes

[microbenchmarks] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                                      FILE SIZE
 ++++++++++++++ GROWING                                                        ++++++++++++++
  [ = ]       0 [None]                                                             +48  +0.0%

 -------------- SHRINKING                                                      --------------
  -0.3%     -32 src/core/lib/security/security_connector/security_connector.cc     -32  -0.3%
      -6.6%     -40 grpc_core::DefaultSslRootStore::ComputePemRootCerts                -40  -6.6%

  -0.0%     -32 TOTAL                                                              +16  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,955,006      Total (>)      1,955,002

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,843,751      Total (<)     10,843,756

 No significant differences in binary sizes

[microbenchmarks] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                                      FILE SIZE
 ++++++++++++++ GROWING                                                        ++++++++++++++
  [ = ]       0 [None]                                                             +40  +0.0%

 -------------- SHRINKING                                                      --------------
  -0.3%     -32 src/core/lib/security/security_connector/security_connector.cc     -32  -0.3%
      -6.6%     -40 grpc_core::DefaultSslRootStore::ComputePemRootCerts                -40  -6.6%

  -0.0%     -32 TOTAL                                                               +8  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,955,960      Total (>)      1,955,956

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,843,884      Total (<)     10,843,887

 No significant differences in binary sizes

[microbenchmarks] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                                      FILE SIZE
 ++++++++++++++ GROWING                                                        ++++++++++++++
  [ = ]       0 [None]                                                             +40  +0.0%

 -------------- SHRINKING                                                      --------------
  -0.3%     -32 src/core/lib/security/security_connector/security_connector.cc     -32  -0.3%
      -6.6%     -40 grpc_core::DefaultSslRootStore::ComputePemRootCerts                -40  -6.6%

  -0.0%     -32 TOTAL                                                               +8  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,955,960      Total (>)      1,955,956

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,843,887      Total (<)     10,843,892

 No significant differences in binary sizes

[microbenchmarks] No significant performance differences

****************************************************************

libgrpc.so

     VM SIZE                                                                      FILE SIZE
 ++++++++++++++ GROWING                                                        ++++++++++++++
  [ = ]       0 [None]                                                             +40  +0.0%

 -------------- SHRINKING                                                      --------------
  -0.3%     -32 src/core/lib/security/security_connector/security_connector.cc     -32  -0.3%
      -6.6%     -40 grpc_core::DefaultSslRootStore::ComputePemRootCerts                -40  -6.6%

  -0.0%     -32 TOTAL                                                               +8  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,955,960      Total (>)      1,955,956

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,843,884      Total (<)     10,843,889

 No significant differences in binary sizes

https://github.com/grpc/grpc/issues/16471

****************************************************************

libgrpc.so

     VM SIZE                                                                      FILE SIZE
 ++++++++++++++ GROWING                                                        ++++++++++++++
  [ = ]       0 [None]                                                             +40  +0.0%

 -------------- SHRINKING                                                      --------------
  -0.3%     -32 src/core/lib/security/security_connector/security_connector.cc     -32  -0.3%
      -6.6%     -40 grpc_core::DefaultSslRootStore::ComputePemRootCerts                -40  -6.6%

  -0.0%     -32 TOTAL                                                               +8  +0.0%

****************************************************************

libgrpc++.so

     VM SIZE        FILE SIZE
 ++++++++++++++  ++++++++++++++

  [ = ]       0        0  [ = ]

[trickle] No significant performance differences

Objective-C binary sizes
*****************STATIC******************
  New size                      Old size
 1,955,960      Total (>)      1,955,956

 No significant differences in binary sizes

***************FRAMEWORKS****************
  New size                      Old size
10,843,885      Total (<)     10,843,887

 No significant differences in binary sizes

Two failing tests seem unrelated to this PR. Let me merge.


Fails with rollup and uglify

Hi by simply installing the npm and including
import Router from 'svelte-app-router';

In my component, it then fails to build with the following error:
[!] (uglify plugin) Error: Error transforming bundle with 'uglify' plugin: Unexpected token: punc (,)
Error: Error transforming bundle with 'uglify' plugin: Unexpected token: punc (,)
  at error (/Users/jp/Documents/Arduino/libraries/KGB/node_modules/rollup/dist/rollup.js:185:14)
  at Promise.resolve.then.then.catch.err
(/Users/jp/Documents/Arduino/libraries/KGB/node_modules/rollup/dist/rollup.js:9482:5)

Here's the NPM info:
"babel-core": "^6.26.0",
"babel-plugin-external-helpers": "^6.22.0",
"babel-preset-env": "^1.6.1",
"lodash": "^4.17.4",
"rollup": "^0.50.0",
"rollup-plugin-babel": "^3.0.2",
"rollup-plugin-commonjs": "^8.2.1",
"rollup-plugin-node-resolve": "^3.0.0",
"rollup-plugin-svelte": "^3.1.0",
"rollup-plugin-uglify": "^2.0.1",
"rollup-watch": "^4.3.1",
"svelte": "^1.40.2",
"svelte-cli": "^1.4.0",
"uglify-js": "^3.1.3",
"zepto": "^1.2.0"

Looks like uglify suggests there is a syntax error in the code somewhere, but as it passes the StandardJS linter I'm quite sure the code is ok. Do you parse with babel before uglifying, because it is written with some ES6 syntax?
Can you try to locate on which part of the source it fails? Or even better, point me to a repository where I can try building myself?

SO, here’s the weird thing: if I use Router.html directly, it works fine.  I presume it is a ES6/babel thing, as I explicitly don’t pass noe modules thru babel.  In any case, it seems the easiest thing to do, since this is small and simple, is use Router.html directly and call it a day.  (feel free to close issue, or I will if you want)
Thanks!

JP

On Nov 2, 2017, 11:59 AM -0400, Jeroen Coussement<EMAIL_ADDRESS>wrote:

Looks like uglify suggests there is a syntax error in the code somewhere, but as it passes the StandardJS linter I'm quite sure the code is ok. Do you parse with babel before uglifying, because it is written with some ES6 syntax?
Can you try to locate on which part of the source it fails? Or even better, point me to a repository where I can try building myself?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

Ok, thanks for the feedback!


Use current time as regsitration time for LDAP and UAA users

Previous user registration time always displays "1/1/1". change to first login time.

Pull Request Test Coverage Report for Build 7752

5 of 5 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.01%) to 63.693%

Totals

Change from base Build 7747:
0.01%

Covered Lines:
11917

Relevant Lines:
18710

💛  - Coveralls

This should be resolved at DB level I believe?
Such as
https://github.com/vmware/harbor/blob/master/make/migrations/postgresql/0001_initial_schema.up.sql#L80

Per discussion, closing this pr.


Warning about links that use https://www.prisma.io/docs

Generally we want links to not use the domain and path, so they also all work on preview deployments.
We could even consider making these links invalid.

Related to #3330

Related to #2512


link broken for Navier: solver for the incompressible time-dependent Navier-Stokes equations

Looks like the link (http://mfem.github.io/doxygen/html/navier_solver_8cpp_source.html) to [Navier: solver for the incompressible time-dependent Navier-Stokes equations] is broken.
From page https://mfem.org/features/

Thank you for pointing this out. The doxygen documentation is only updated after a release. So it will be available with mfem 4.2.

The Navier link should be OK now.


text2wfreq

pi@raspberrypi:~ $ /home/pi/jasper/jasper.py

        JASPER - THE TALKING COMPUTER           *

(c) 2015 Shubhro Saha, Charlie Marsh & Jan Holthuis *

ERROR:client.vocabcompiler:Fatal compilation Error occured, cleaning up...
Traceback (most recent call last):
File "/home/pi/jasper/client/vocabcompiler.py", line 163, in compile
self._compile_vocabulary(phrases)
File "/home/pi/jasper/client/vocabcompiler.py", line 269, in _compile_vocabulary
vocabulary = self._compile_languagemodel(text, self.languagemodel_file)
File "/home/pi/jasper/client/vocabcompiler.py", line 290, in _compile_languagemodel
cmuclmtk.text2vocab(text, vocab_file)
File "/usr/local/lib/python2.7/dist-packages/cmuclmtk/init.py", line 485, in text2vocab
text2wfreq(text, wfreq_file, **text2wfreq_kwargs)
File "/usr/local/lib/python2.7/dist-packages/cmuclmtk/init.py", line 114, in text2wfreq
raise ConversionError("'%s' returned with non-zero exit status '%s'" % (cmd[0], exitcode))
ConversionError: 'text2wfreq' returned with non-zero exit status '127'
ERROR:root:Error occured!
Traceback (most recent call last):
File "/home/pi/jasper/jasper.py", line 146, in
app = Jasper()
File "/home/pi/jasper/jasper.py", line 109, in init
stt_passive_engine_class.get_passive_instance(),
File "/home/pi/jasper/client/stt.py", line 48, in get_passive_instance
return cls.get_instance('keyword', phrases)
File "/home/pi/jasper/client/stt.py", line 40, in get_instance
vocabulary.compile(phrases)
File "/home/pi/jasper/client/vocabcompiler.py", line 171, in compile
raise e
ConversionError: 'text2wfreq' returned with non-zero exit status '127'
Please help me

Install cmuclmtk pkg.


Support DNS mode for public client with TChannel

Right now our code always take one IP address: https://github.com/uber/cadence/blob/master/client/clientBean.go#L177
This won't work for distributed systems.

https://github.com/uber/cadence/pull/2118


Add a simple dockerfile (and other stuff for early bot support)

Tested well enough on Windows, but minimal confidence in it continuing to work.
Fixes https://github.com/matrix-org/pantalaimon/issues/13
The patch mentioned in the issue doesn't seem to be needed anymore.

Codecov Report

Merging #22 into master will increase coverage by 0.08%.
The diff coverage is 30%.

@@            Coverage Diff             @@
##           master      #22      +/-   ##
==========================================
+ Coverage   23.97%   24.06%   +0.08%
==========================================
  Files          10       10
  Lines        2181     2190       +9
==========================================
+ Hits          523      527       +4
- Misses       1658     1663       +5

Impacted Files
Coverage Δ

pantalaimon/main.py
0% <0%> (ø)
:arrow_up:

pantalaimon/daemon.py
27.62% <37.5%> (+0.43%)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8021c49...4e993ea. Read the comment docs.


GLFW3.dll missing in Net461 projects

Summary
Hi,
I stumbled upon an issue where the native glfw3.dll would not be copied to a console app's output directory if targeting the .Net 4.6.1 framework. I stripped the issue down to the basics and published a repository that demonstrates the issue.
I also looked at the Silk.NET.GLFW.Native project and compared the approach to other .net libraries with native dependencies [1], [2]. These projects are using a .targets rather than a .props file for copying their native dependencies on .Net 4.
I have locally tested with an adapted nuget package that's using a .targets file instead and it fixes this issue. I am providing a hotfix branch that could be converted into a pull request.
Steps to reproduce

Clone the repository from https://github.com/paralaxsd/ultz.native.glw-framework-test
Open the Visual Studio solution and compile both projects
Observe (as mentioned in the readme) that the net461 project is missing glfw3.dll while the file should be copied into its output directory as per Ultz.Native.GLFW.props. The .net7 project is using a different mechanism for pulling in the libraries and will not be affected.

It stands to reason that the same issue should also befall Ultz.Native.SDL but I have not tested this.

Sounds like a good fix we’d be happy to take as a PR, but just update to a modern .NET version haha

Sounds like a good fix we’d be happy to take as a PR, but just update to a modern .NET version haha

It's a strategic thing really. My original project supports .net 4 - 7 but .net7 is def more fun :)
But in any case, thanks - let me prepare the PR then...

Thanks for the fix! :)

I'm glad I could help :)


add failing test case.

Failing test case for https://github.com/timoxley/to-factory/issues/1
It looks like you weren't testing inheritance from the factory, previously. I'm not sure if you meant to support that use case or not, but I think it'd be nice.
Fwiw, I'm trying to use to-factory as a decorator before export, as below, so I can use the class as a factory throughout my codebase. I'm sure there are valid arguments against doing this, but I like it well enough for the codebase I'm working on.
@toFactory
export default class MyClass {
  // ...
}

I believe I left out the inheritance stuff because it doesn't/didn't work properly with native types e.g. Array/Promise.


How to rotate the camera.

This would be useful for the find user (chat functionality), and possibly other stuff.
The chat is doing this to move the camera to be in front of another user:
https://github.com/conix-center/ARENA-core/blob/d6e8536216b307a15dbc90de77a93fdc055591f5/mqtt-chat/mqtt-chat.js#L433

Resolved in https://github.com/conix-center/ARENA-core/commit/5c3c4cc7cd9abc7f9db2409fcf766d6ba0eec355.


DoQ or http/3

support them?

We've already activated HTTP/3 in some of our locations, but we need more time for testing before deploying it everywhere.
For testing, you can use https://<IP_ADDRESS>/dns-query.


Mark workflow run as neutral or success when skipping

I want to run a workflow on pull_request trigger when a certain label is assigned to the PR. I use this action to check and the workflow is cancelled when the label is not present, so this action right here works as intended.
However, the workflow run is marked as failed in my GitHub UI, when in reality it should not have run at all. Is there a way to achive this behaviour? Judging from the discussion at https://github.com/actions/toolkit/issues/399 this is something that only the GitHub team could solve.
I've read in a blog post from the official GitHub Actions Blog that GitHub will skip any push or pull_request events that have [skip ci] in their commit messages. But what I really want is the other way around.

To answer my own question:
on:
  pull_request:

jobs:
  prepare:
    runs-on: ubuntu-20.04
    continue-on-error: true
    outputs:
      sha7: ${{ steps.prepare.outputs.sha7 }}
    steps:
    - id: check-label
      uses<EMAIL_ADDRESS>      continue-on-error: true
      with:
        one_of: cicd
        repo_token: ${{ secrets.GITHUB_TOKEN }}

    - if: steps.check-label.outcome == 'success'
      run: |
        echo "::set-output name=sha7::${GITHUB_SHA:0:7}"

  build:
    if: needs.prepare.outputs.sha7
    runs-on: ubuntu-20.04
    needs: prepare

    steps:
      - uses: actions/checkout@v2

    # ...

this marks the PR check as success, though. But this is better than failure in my opinion. Gotta love them little green checkmarks. 😃

Well, I should have tested it more extensively first. This does not work when the PR is assigned the cicd label. All tests are being run, this is the resulting log:
[...]
2021-07-06T06:29:08.0452411Z with:
2021-07-06T06:29:08.0452792Z   any_of: cicd
2021-07-06T06:29:08.0454423Z   repo_token: ***
2021-07-06T06:29:08.0454865Z ##[endgroup]
2021-07-06T06:29:08.0502532Z ##[command]/usr/bin/docker run --name ***REDACTED*** --label 8a33c1 --workdir /github/workspace --rm -e INPUT_ANY_OF -e INPUT_REPO_TOKEN -e INPUT_ONE_OF -e INPUT_NONE_OF -e INPUT_ALL_OF -e HOME -e GITHUB_JOB -e GITHUB_REF -e GITHUB_SHA -e GITHUB_REPOSITORY -e GITHUB_REPOSITORY_OWNER -e GITHUB_RUN_ID -e GITHUB_RUN_NUMBER -e GITHUB_RETENTION_DAYS -e GITHUB_ACTOR -e GITHUB_WORKFLOW -e GITHUB_HEAD_REF -e GITHUB_BASE_REF -e GITHUB_EVENT_NAME -e GITHUB_SERVER_URL -e GITHUB_API_URL -e GITHUB_GRAPHQL_URL -e GITHUB_WORKSPACE -e GITHUB_ACTION -e GITHUB_EVENT_PATH -e GITHUB_ACTION_REPOSITORY -e GITHUB_ACTION_REF -e GITHUB_PATH -e GITHUB_ENV -e RUNNER_OS -e RUNNER_TOOL_CACHE -e RUNNER_TEMP -e RUNNER_WORKSPACE -e ACTIONS_RUNTIME_URL -e ACTIONS_RUNTIME_TOKEN -e ACTIONS_CACHE_URL -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/***REDACTED***":"/github/workspace" ***REDACTED***
2021-07-06T06:29:08.4962745Z Checking GitHub labels ...
2021-07-06T06:29:08.6978831Z Label check successful: required none of , and found 0.
2021-07-06T06:29:08.6979653Z Label check successful: required any of cicd, and found 1: cicd
2021-07-06T06:29:08.6985999Z Error: Label check failed: required 1 of , but found 0.
2021-07-06T06:29:08.6986667Z Label check failed: required all of , but found 0.

From the looks of it I would say that even though I only passed one option (one_of) the other three tests are also evaluated with empty values. This looks like a bug to me and I would gladly help, but I don't know any Go.

Hi @riker09, sorry for delay in replying, I need to tweak my GitHub notifications 😧
I'll take a look at this and get back to you shortly.

Hey @riker09, was this issue also fixed by #230 (which was the fix for #228)?  Thanks v much

Hey @riker09, was this issue also fixed by #230 (which was the fix for #228)? Thanks v much

Well, yes, in a certain way. The error I originally encountered in this issue here was fixed. However, what I actually would like to achieve, is automatically skip all remaining jobs/steps without marking the workflow as failed. From my understanding of GitHub Actions this cannot be done easily. The only solution is to check the outcome of this action later in the workflow file.
When GitHub decides to have other step/action results besided failure and success I might have a way to make things go my way. In the meantime, I'm going to close this issue as the original question has been answered with a workaround.

I was also looking for this feature.
The proposed workaround is a workaround, but it would be really nice to have something like an enum param for action:
  exit_type: [failure, cancel]

In this way, the user of the action can control the way the workflow will end: failure (reg) or canceled(gray).
Would be really nice to have 🙏🏼

@johnboyes is there any chance this feature can be added?

Hi @pro100svitlo, thanks for suggesting this - I'll take a look into it when I have time over the next week or two and get back to you.  One thing I'm keen to establish if this is something which GitHub themselves intend to provide at some stage (and if so, when).


Ctd 406 update message when certificate error encountered

I reverted the commit on the CTD-418 changelog as I am just going to do the version string and changelog update at the end of all these commits rather than each time as doing it each time causes merge conflicts each time without any upside.


feat(button): add light type support

PR Checklist

[x] Fix linting errors
[x] Label has been added

Change information

After adding the light type, the Button component becomes heavier 😢

I created new branch named rc on origin, all pre-release versions are easier to release  from rc.


flutter-dashboard bot scheduled incorrectly scheduled builds on non-mergeable PR

https://github.com/flutter/cocoon/pull/1436#issuecomment-959746806
The PR had a merge conflicts that need to be addressed. The bot posted Pre-submit CI jobs were not triggered. however, they were scheduled.
Two possible paths:

Allow presubmit jobs on non-mergeable PRs (so update the content)
Skip scheduling presubmit jobs in this case (fix the scheduler)

@CaseyHillers is this already fixed?

This is still open. We need to update the scheduler to check the merge state of the PR prior to scheduled the LUCI builds.

Closing because the bug has not been updated for more than one year.
Feel free to reopen any bugs that you believe are important but please provide updates on how to resource the fix of the bug and what can be done to prevent the issue from not getting updates for another year.


use pytest-mpl for image comparison tests

Wow @jswhit , that's awesome that you are using pytest-mpl!  Are there any questions / troubles you had about using it?

nope it was pretty straightforward.  I don't have it enabled in the CI tests since the older version of eccodes in ubuntu-latest appears to cause some of the tests to fail.

@akrherz could you try running the image comparison tests on your machine? (cd test; pytest test*py --mpl --mpl-baseline-path=baseline_images)

could you try running the image comparison tests on your machine?

I had four failures with values slightly over 20 on linux 64 bit rhel8 python3.8
FAILED test_ndfd_conus.py::test_ndfd_conus
FAILED test_ndfd_pr.py::test_ndfd_pr
FAILED test_rotated_ll.py::test_rotated_ll
FAILED test_tigge.py::test_tigge
I am unsure what you are wishing to accomplish with these tests?  getting consistent results from cartopy+matplotlib over various versions is not much fun :)  These differences aren't a result of pygrib issues are they?

those are the same failures I see in the CI.  what version of eccodes are you running?  Could you email me the pngs for the failed tests?

There's a mechanism to have the github job upload the failed images as artifacts, I can PR that.  eccodes=2.19.1

Thanks.  Not the eccodes version then. Looks like the gridlines are messed up on a couple of those.  What's with the black background though?
To answer your question, what I'm trying to get at is whether the gelocation of the grid is correct.  I could do that by saving the correct lat and lons in a file I suppose.

The files I attached are the diff images, which shows how the baseline image differs from the test result.  black means no difference at that pixel.  Can't you just test the latlons() resulting values?  I can submit a concept, if you like.

sure, we could just test latlon values instead.  I though this would be cooler though :-)
and serve as a set of examples for users

and serve as a set of examples for users

That would be nice, but maintaining tests for cartopy/matplotlib is super painful, the political line work on the maps is very brittle between various versions.  You have to jump through lots of hoops and baseline image churn, see cartopy and metpy's test suite for example.  I will submit some concepts later this evening.

got the tests to all pass by disabling coastlines and gridlines for those failing tests.  You may be right that this is too fragile, we'll see


Cannot infer RNN symbol with mode=RNNMode::kRnn_tanh

Description
(Brief description of the problem in no more than 2 sentences.)
I'm using C++ interface. If I wanna create an RNN symbol with C++ factory function in cpp-package/include/mxnet-cpp/op.h, the generated function will always set all 4 inputs into the operator.
But when I infer the symbols, RNN symbol expect exactly 3 input needed with mode=RNNMode::kRnn_tanh, and always fail to create Executor.
I can create rnn symbol with Operator class, this can temporarily solve my problem.
I think the shape checking is here.
https://github.com/apache/incubator-mxnet/blob/5adb6fcfb3ea50c76d387e63ce367bbe8c3f18d3/src/operator/rnn-inl.h#L673-L677
And factory function in op.h is here.
inline Symbol RNN(const std::string& symbol_name,
                  Symbol data,
                  Symbol parameters,
                  Symbol state,
                  Symbol state_cell,
                  uint32_t state_size,
                  uint32_t num_layers,
                  RNNMode mode,
                  bool bidirectional = false,
                  mx_float p = 0,
                  bool state_outputs = false,
                  dmlc::optional<int> projection_size = dmlc::optional<int>(),
                  dmlc::optional<double> lstm_state_clip_min = dmlc::optional<double>(),
                  dmlc::optional<double> lstm_state_clip_max = dmlc::optional<double>(),
                  bool lstm_state_clip_nan = false) {
  static const char *RNNModeValues[] = {
    "gru",
    "lstm",
    "rnn_relu",
    "rnn_tanh"
  };
  return Operator("RNN")
           .SetParam("state_size", state_size)
           .SetParam("num_layers", num_layers)
           .SetParam("mode", RNNModeValues[int(mode)])
           .SetParam("bidirectional", bidirectional)
           .SetParam("p", p)
           .SetParam("state_outputs", state_outputs)
           .SetParam("projection_size", projection_size)
           .SetParam("lstm_state_clip_min", lstm_state_clip_min)
           .SetParam("lstm_state_clip_max", lstm_state_clip_max)
           .SetParam("lstm_state_clip_nan", lstm_state_clip_nan)
           .SetInput("data", data)
           .SetInput("parameters", parameters)
           .SetInput("state", state)
           .SetInput("state_cell", state_cell)
           .CreateSymbol(symbol_name);
}

Environment info (Required)
Oops, the output contains chinese.
----------Python Info----------
Version      : 3.6.7
Compiler     : GCC 8.2.0
Build        : ('default', 'Oct 22 2018 11:32:17')
Arch         : ('64bit', 'ELF')
------------Pip Info-----------
Version      : 9.0.1
Directory    : /usr/lib/python3/dist-packages/pip
----------MXNet Info-----------
No MXNet installed.
----------System Info----------
Platform     : Linux-4.15.0-45-generic-x86_64-with-Ubuntu-18.04-bionic
system       : Linux
node         : jeff-X555LJ
release      : 4.15.0-45-generic
version      : #48-Ubuntu SMP Tue Jan 29 16:28:13 UTC 2019
----------Hardware Info----------
machine      : x86_64
processor    : x86_64
架構：               x86_64
CPU 作業模式：       32-bit, 64-bit
Byte Order:          Little Endian
CPU(s):              4
On-line CPU(s) list: 0-3
每核心執行緒數：     2
每通訊端核心數：     2
Socket(s):           1
NUMA 節點：          1
供應商識別號：       GenuineIntel
CPU 家族：           6
型號：               61
Model name:          Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz
製程：               4
CPU MHz：            1690.799
CPU max MHz:         2700.0000
CPU min MHz:         500.0000
BogoMIPS:            4393.55
虛擬：               VT-x
L1d 快取：           32K
L1i 快取：           32K
L2 快取：            256K
L3 快取：            3072K
NUMA node0 CPU(s)：  0-3
Flags:               fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid rdseed adx smap intel_pt xsaveopt dtherm ida arat pln pts flush_l1d
----------Network Test----------
Setting timeout: 10
Timing for MXNet: https://github.com/apache/incubator-mxnet, DNS: 0.0582 sec, LOAD: 1.3309 sec.
Timing for Gluon Tutorial(en): http://gluon.mxnet.io, DNS: 0.2522 sec, LOAD: 1.0342 sec.
Timing for Gluon Tutorial(cn): https://zh.gluon.ai, DNS: 0.3641 sec, LOAD: 1.1093 sec.
Timing for FashionMNIST: https://apache-mxnet.s3-accelerate.dualstack.amazonaws.com/gluon/dataset/fashion-mnist/train-labels-idx1-ubyte.gz, DNS: 0.3570 sec, LOAD: 1.2316 sec.
Timing for PYPI: https://pypi.python.org/pypi/pip, DNS: 0.0492 sec, LOAD: 1.5305 sec.
Timing for Conda: https://repo.continuum.io/pkgs/free/, DNS: 0.0237 sec, LOAD: 0.4429 sec.

Package used (Python/R/Scala/Julia): Hey. I'm using C++.
Build info (Required if built from source)
Compiler (gcc/clang/mingw/visual studio): gcc 7.3.0
MXNet commit hash: eebdd5f644e953da76ac35a898992ef5c83d3f30
(Paste the output of git rev-parse HEAD here.)
Build config:
(Paste the content of config.mk, or the build command.)
# 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.

#-------------------------------------------------------------------------------
#  Template configuration for compiling mxnet
#
#  If you want to change the configuration, please use the following
#  steps. Assume you are on the root directory of mxnet. First copy the this
#  file so that any local changes will be ignored by git
#
#  $ cp make/config.mk .
#
#  Next modify the according entries, and then compile by
#
#  $ make
#
#  or build in parallel with 8 threads
#
#  $ make -j8
#-------------------------------------------------------------------------------

#---------------------
# choice of compiler
#--------------------

ifndef CC
export CC = gcc
endif
ifndef CXX
export CXX = g++
endif
ifndef NVCC
export NVCC = nvcc
endif

# whether compile with options for MXNet developer
DEV = 0

# whether compile with debug
DEBUG = 0

# whether to turn on segfault signal handler to log the stack trace
USE_SIGNAL_HANDLER =

# the additional link flags you want to add
ADD_LDFLAGS =

# the additional compile flags you want to add
ADD_CFLAGS =

#---------------------------------------------
# matrix computation libraries for CPU/GPU
#---------------------------------------------

# whether use CUDA during compile
USE_CUDA = 1

# add the path to CUDA library to link and compile flag
# if you have already add them to environment variable, leave it as NONE
USE_CUDA_PATH = /usr/local/cuda-9.2
# USE_CUDA_PATH = NONE

# whether to enable CUDA runtime compilation
ENABLE_CUDA_RTC = 1

# whether use CuDNN R3 library
USE_CUDNN = 1

#whether to use NCCL library
USE_NCCL = 0
#add the path to NCCL library
USE_NCCL_PATH = NONE

# whether use opencv during compilation
# you can disable it, however, you will not able to use
# imbin iterator
USE_OPENCV = 1

#whether use libjpeg-turbo for image decode without OpenCV wrapper
USE_LIBJPEG_TURBO = 0
#add the path to libjpeg-turbo library
USE_LIBJPEG_TURBO_PATH = NONE

# use openmp for parallelization
USE_OPENMP = 1

# whether use MKL-DNN library: 0 = disabled, 1 = enabled
# if USE_MKLDNN is not defined, MKL-DNN will be enabled by default on x86 Linux.
# you can disable it explicity with USE_MKLDNN = 0
USE_MKLDNN = 0

# whether use NNPACK library
USE_NNPACK = 0

# choose the version of blas you want to use
# can be: mkl, blas, atlas, openblas
# in default use atlas for linux while apple for osx
UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S), Darwin)
USE_BLAS = apple
else
USE_BLAS = openblas
endif

# whether use lapack during compilation
# only effective when compiled with blas versions openblas/apple/atlas/mkl
USE_LAPACK = 1

# path to lapack library in case of a non-standard installation
USE_LAPACK_PATH = /usr/lib/x86_64-linux-gnu/openblas

# add path to intel library, you may need it for MKL, if you did not add the path
# to environment variable
USE_INTEL_PATH = NONE

# If use MKL only for BLAS, choose static link automatically to allow python wrapper
ifeq ($(USE_BLAS), mkl)
USE_STATIC_MKL = 1
else
USE_STATIC_MKL = NONE
endif

#----------------------------
# Settings for power and arm arch
#----------------------------
ARCH := $(shell uname -a)
ifneq (,$(filter $(ARCH), armv6l armv7l powerpc64le ppc64le aarch64))
	USE_SSE=0
	USE_F16C=0
else
	USE_SSE=1
endif

#----------------------------
# F16C instruction support for faster arithmetic of fp16 on CPU
#----------------------------
# For distributed training with fp16, this helps even if training on GPUs
# If left empty, checks CPU support and turns it on.
# For cross compilation, please check support for F16C on target device and turn off if necessary.
USE_F16C =

#----------------------------
# distributed computing
#----------------------------

# whether or not to enable multi-machine supporting
USE_DIST_KVSTORE = 0

# whether or not allow to read and write HDFS directly. If yes, then hadoop is
# required
USE_HDFS = 0

# path to libjvm.so. required if USE_HDFS=1
LIBJVM=$(JAVA_HOME)/jre/lib/amd64/server

# whether or not allow to read and write AWS S3 directly. If yes, then
# libcurl4-openssl-dev is required, it can be installed on Ubuntu by
# sudo apt-get install -y libcurl4-openssl-dev
USE_S3 = 0

#----------------------------
# performance settings
#----------------------------
# Use operator tuning
USE_OPERATOR_TUNING = 1

# Use gperftools if found
USE_GPERFTOOLS = 1

# path to gperftools (tcmalloc) library in case of a non-standard installation
USE_GPERFTOOLS_PATH =

# Link gperftools statically
USE_GPERFTOOLS_STATIC =

# Use JEMalloc if found, and not using gperftools
USE_JEMALLOC = 1

# path to jemalloc library in case of a non-standard installation
USE_JEMALLOC_PATH =

# Link jemalloc statically
USE_JEMALLOC_STATIC =

#----------------------------
# additional operators
#----------------------------

# path to folders containing projects specific operators that you don't want to put in src/operators
EXTRA_OPERATORS =

#----------------------------
# other features
#----------------------------

# Create C++ interface package
USE_CPP_PACKAGE = 1

#----------------------------
# plugins
#----------------------------

# whether to use caffe integration. This requires installing caffe.
# You also need to add CAFFE_PATH/build/lib to your LD_LIBRARY_PATH
# CAFFE_PATH = $(HOME)/caffe
# MXNET_PLUGINS += plugin/caffe/caffe.mk

# WARPCTC_PATH = $(HOME)/warp-ctc
# MXNET_PLUGINS += plugin/warpctc/warpctc.mk

# whether to use sframe integration. This requires build sframe
# git@github.com:dato-code/SFrame.git
# SFRAME_PATH = $(HOME)/SFrame
# MXNET_PLUGINS += plugin/sframe/plugin.mk

Error Message:
(Paste the complete error message, including stack trace.)
terminate called after throwing an instance of 'dmlc::Error'
  what():  [10:55:44] /usr/local/include/mxnet-cpp/symbol.hpp:219: Check failed: MXSymbolInferShape(GetHandle(), keys.size(), keys.data(), arg_ind_ptr.data(), arg_shape_data.data(), &in_shape_
size, &in_shape_ndim, &in_shape_data, &out_shape_size, &out_shape_ndim, &out_shape_data, &aux_shape_size, &aux_shape_ndim, &aux_shape_data, &complete) == 0 (-1 vs. 0)

Stack trace returned 7 entries:
[bt] (0) ./install/bin/issue_report(dmlc::StackTrace[abi:cxx11]()+0x54) [0x557702064b6c]
[bt] (1) ./install/bin/issue_report(dmlc::LogMessageFatal::~LogMessageFatal()+0x40) [0x557702064e68]
[bt] (2) ./install/bin/issue_report(mxnet::cpp::Symbol::InferShape(std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::vector<unsigned int, std::allo
cator<unsigned int> >, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<c
har>, std::allocator<char> > const, std::vector<unsigned int, std::allocator<unsigned int> > > > > const&, std::vector<std::vector<unsigned int, std::allocator<unsigned int> >, std::allocator<
std::vector<unsigned int, std::allocator<unsigned int> > > >*, std::vector<std::vector<unsigned int, std::allocator<unsigned int> >, std::allocator<std::vector<unsigned int, std::allocator<uns
igned int> > > >*, std::vector<std::vector<unsigned int, std::allocator<unsigned int> >, std::allocator<std::vector<unsigned int, std::allocator<unsigned int> > > >*) const+0x377) [0x55770206$
2af]
[bt] (3) ./install/bin/issue_report(mxnet::cpp::Symbol::InferArgsMap(mxnet::cpp::Context const&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxne$
::cpp::NDArray, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, $
td::allocator<char> > const, mxnet::cpp::NDArray> > >*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, mxnet::cpp::NDArray, std::less<std::__cxx11::$
asic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, mxnet::cpp:$
NDArray> > > const&) const+0x1dc) [0x5577020680a0]
[bt] (4) ./install/bin/issue_report(main+0x459) [0x557702063614]
[bt] (5) /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7) [0x7fcfeb88db97]
[bt] (6) ./install/bin/issue_report(_start+0x2a) [0x557702062afa]

Minimum reproducible example
(If you are using your own code, please provide a short script that reproduces the error. Otherwise, please provide link to the existing example.)
#include <iostream>
#include "mxnet-cpp/MxNetCpp.h"

using namespace std;
using namespace mxnet::cpp;

int main(int argc, char** argv) {
    Symbol input = Symbol::Variable("input");

    Symbol rnnParam = Symbol::Variable("rnn_param");
    Symbol rnnState = Symbol::Variable("rnn_state");
    Symbol dummySym = Symbol::Variable();
    const int numRnnHidden = 3, numRnnLayer = 1;

#define FAIL_CODE
#ifdef FAIL_CODE
    Symbol rnn = RNN("rnn", input, rnnParam, rnnState, dummySym,  //
                     numRnnHidden, numRnnLayer, RNNMode::kRnn_tanh);
#else
    Symbol rnn = Operator("RNN")
                     .SetParam("state_size", numRnnHidden)
                     .SetParam("num_layers", numRnnLayer)
                     .SetParam("mode", "rnn_tanh")
                     .SetInput("data", input)
                     .SetInput("parameters", rnnParam)
                     .SetInput("state", rnnState)
                     .CreateSymbol("rnn");
#endif
    Symbol model = rnn[0];

    Context ctx = Context::cpu();

    map<string, NDArray> args;
    args["input"] = NDArray(Shape(1, 1, 4), ctx);
    model.InferArgsMap(ctx, &args, args);
    Executor* exe = model.SimpleBind(ctx, args);

    cout << "Parameters: " << endl;
    for (auto& arg : args) {
        cout << "    " << arg.first << ": (";
        for (auto& i : arg.second.GetShape()) {
            cout << i << " ";
        }
        cout << ")" << endl;
    }

    cout << "Output size: ";
    for (auto& out : exe->outputs) {
        cout << "(";
        for (auto& i : out.GetShape()) {
            cout << i << " ";
        }
        cout << ")";
    }
    cout << endl;

    vector<mx_float> nums({0.2, 0.3, 0.4, 0.5});
    args["input"].SyncCopyFromCPU(nums.data(), nums.size());
    cout << "Input" << args["input"] << endl;

    exe->Forward(false);

    NDArray::WaitAll();
    cout << "Output " << exe->outputs[0] << endl;

    MXNotifyShutdown();
    return 0;
}

Steps to reproduce
(Paste the commands you ran that produced the error.)

Compile and run the code above. This code will fail at run time.
check the code at #define FAIL_CODE

What have you tried to solve it?

Yes. I use Operator class to create symbol

Symbol rnn = Operator("RNN")
                     .SetParam("state_size", numRnnHidden)
                     .SetParam("num_layers", numRnnLayer)
                     .SetParam("mode", "rnn_tanh")
                     .SetInput("data", input)
                     .SetInput("parameters", rnnParam)
                     .SetInput("state", rnnState)
                     .CreateSymbol("rnn");

@pengzhao-intel @TaoLv

@lihaofd please help take a look for this issue. Thanks.

Hey, thanks to you guys.
Is it a bug ? Or my use is wrong ?

@e8035669 we're debugging but sorry we're a little busy last week so don't spend too much time in here.
If this is a blocker issue, feel free to let me know and we can raise the priority。

Hi @e8035669
The "op.h" file in cpp-package is automatically generated. It contains the function declaration (such as the "Symbol RNN ()" mentioned in this issue.) that are derived by parsing the libmxnet.so file.
Hence, it will not be
As per the documentation for the RNN operator, the "state_cell" parameter is only needed for LSTM network. However, due to the way how "op.h" is generated, it is not possible to separate between RNN variants and come up with matching function signatures.
Therefore, users would be required to provide dummy state_cell symbol or invoke the RNN operator directly as you had mentioned.
It is currently a limitation and would require re-design of how op.h is generated.
Please let me know if this answers your question.
@mxnet-label-bot add [Pending Requester Info]

Hi @leleamol
Thanks for your reply.
I have tried to pass a dummy state_cell symbol into it, But it will always fail to infer the shape.
So pass a dummy symbol cannot work.
The only way I can do is invoke RNN operator directly. I have tried this way, and it can work now.

Hi @e8035669 ,
I tried your example but instead of
Symbol dummySym = Symbol::Variable();
I initialized 'dummySym' as follows (default empty constructor of Symbol)
Symbol dummySym;
and it worked.
I obtained following output.
./rnn_example
Parameters:
input: (1 1 4 )
rnn_param: (27 )
rnn_state: (1 1 3 )
Output size: (1 1 3 )
Input[0.2, 0.3, 0.4, 0.5, ]
Output [-0.816632, -0.89489, -0.546263, ]
Can you also try that? If it works, can we close this issue?
@mxnet-label-bot add [Pending Requester Info]

Oh! It works!
I really don't know mxnet. I should work hard on it.
Thank you guys.


feat: Add TX count to BatchFees

Add TX count to the BatchFees struct.
Knowing how many transactions are waiting to be relayed allows us to estimate how much it's going to cost to relay the hypothetical batch. This allows orchestrators to better decide when to request a batch but more importantly, allows the UI to suggest how much the user should put in bridge fees.
Note for reviewers:
I've used the buf version that is in the Makefile but I got a bunch of files being regenerated, small changes tho. But let me know if I should reverse those changes and I'll be happy to do it :)

LGTM!

tests are good. Waiting for @ChristianBorst  to take a look this morning.

Looks good to me, thanks for adding this.