LVM Backend is broken on 0.26

Sorry everyone,
Didn't mean to double post but thought the issue need to be separated.
I just tested 0.26 and no such luck. LVM is still broken when creating images with lxd
lxc init centos7-amd64 webtest1-chi -p default
error: Error mounting snapshot LV: no such file or directory
lxc init --debug --verbose centos7-amd64 webtest2-chi -p default
Creating webtest2-chi DBUG[01-06|02:41:55] Raw response: {"type":"sync","status":"Success","status_code":200,"metadata":{"api_compat":1,"auth":"trusted","config":{"storage.lvm_thinpool_name":"LXDPool","storage.lvm_vg_name":"lxc"},"environment":{"addresses":[],"architectures":[2,1],"driver":"lxc","driver_version":"1.1.5","kernel":"Linux","kernel_architecture":"x86_64","kernel_version":"4.2.0-23-generic","server":"lxd","server_pid":1508,"server_version":"0.26","storage":"lvm","storage_version":"2.02.122(2) (2015-06-20) / 1.02.99 (2015-06-20) / 4.33.0"}},"operation":""}

DBUG[01-06|02:41:55] Raw response: {"type":"sync","status":"Success","status_code":200,"metadata":{"target":"1582f9bc9f9558f826cad94dc8968004c8c014c4bfcffcadfbd1e4e96145404e","description":"centos7-amd64"},"operation":""}

DBUG[01-06|02:41:55] Raw response: {"type":"sync","status":"Success","status_code":200,"metadata":{"aliases":[{"target":"centos7-amd64","description":"centos7-amd64"}],"architecture":2,"fingerprint":"1582f9bc9f9558f826cad94dc8968004c8c014c4bfcffcadfbd1e4e96145404e","filename":"centos-7-amd64-default-20160105_02:16.tar.xz","properties":{"description":"Centos 7 (amd64)"},"public":0,"size":61906508,"created_at":1451964217,"expires_at":0,"uploaded_at":1452047788},"operation":""}

DBUG[01-06|02:41:55] Posting {"name":"webtest2-chi","profiles":["default"],"source":{"fingerprint":"1582f9bc9f9558f826cad94dc8968004c8c014c4bfcffcadfbd1e4e96145404e","type":"image"}}
 to http://unix.socket/1.0/containers
DBUG[01-06|02:41:55] Raw response: {"type":"async","status":"OK","status_code":100,"metadata":{"id":"37cd6b43-67b4-4ef6-8a1f-49c61ec9b2db","class":"task","created_at":"2016-01-06T02:41:55.866914316Z","updated_at":"2016-01-06T02:41:55.866914316Z","status":"Running","status_code":103,"resources":{"containers":["/1.0/containers/webtest2-chi"]},"metadata":null,"may_cancel":false,"err":""},"operation":"/1.0/operations/37cd6b43-67b4-4ef6-8a1f-49c61ec9b2db"}

DBUG[01-06|02:41:55] 1.0/operations/37cd6b43-67b4-4ef6-8a1f-49c61ec9b2db/wait
DBUG[01-06|02:42:06] Raw response: {"type":"sync","status":"Success","status_code":200,"metadata":{"id":"37cd6b43-67b4-4ef6-8a1f-49c61ec9b2db","class":"task","created_at":"2016-01-06T02:41:55.866914316Z","updated_at":"2016-01-06T02:41:55.866914316Z","status":"Failure","status_code":400,"resources":{"containers":["/1.0/containers/webtest2-chi"]},"metadata":null,"may_cancel":false,"err":"Error mounting snapshot LV: no such file or directory"},"operation":""}

lxc config show
config:
  storage.lvm_thinpool_name: LXDPool
  storage.lvm_vg_name: lxc

lxc profile show default
name: default
config:
  raw.lxc: |
    lxc.start.auto = 1
    lxc.arch = amd64
    lxc.cgroup.cpu.shares = 1
  security.privileged: "true"
devices:
  eth0:
    nictype: bridged
    parent: br0
    type: nic

Posting lvm info
lvs
  LV                                                               VG   Attr       LSize   Pool    Origin Data%  Meta%  Move Log Cpy%Sync Convert
  1582f9bc9f9558f826cad94dc8968004c8c014c4bfcffcadfbd1e4e96145404e lxc  Vwi-a-tz--  10.00g LXDPool        6.94
  LXDPool                                                          lxc  twi-aotz-- 152.84g                0.45   0.10
  xbroker8-chi                                                     lxc  -wi-a-----  80.00g
  lxcbase                                                          vg00 -wi-ao---- 235.84g
  root                                                             vg00 -wi-ao----  27.94g

vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  lxc    1   3   0 wz--n- 235.84g 1.00g
  vg00   1   2   0 wz--n- 263.78g    0

Looks like this is also mentioned in #1467. I'll take a look right now, because I bet it was some of the new snapshot transfer code I added that is breaking/broke this.

Oh, whoops, looks like I was misunderstanding things. This seems to be a totally different issue :)

Can you post the LXD logs when this happens? Also, can you show the output of tree /dev/lxc?

/dev/lxc
|-- d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5 -> ../dm-7
`-- xbroker8-chi -> ../dm-2

less /var/log/lxd/lxd.log
t=2016-01-03T17:32:38+0000 lvl=info msg="LXD is starting" path=/var/lib/lxd
t=2016-01-03T17:32:38+0000 lvl=info msg="Default uid/gid map:"
t=2016-01-03T17:32:38+0000 lvl=info msg=" - u 0<PHONE_NUMBER>6"
t=2016-01-03T17:32:38+0000 lvl=info msg=" - g 0<PHONE_NUMBER>6"
t=2016-01-03T17:32:38+0000 lvl=info msg=Init driver=storage/dir
t=2016-01-03T17:32:38+0000 lvl=info msg="Looking for existing certificates" key=/var/lib/lxd/server.key cert=/var/lib/lxd/server.crt
t=2016-01-03T17:32:49+0000 lvl=info msg="LXD is socket activated"
t=2016-01-03T17:32:49+0000 lvl=info msg="REST API daemon:"
t=2016-01-03T17:32:49+0000 lvl=info msg=" - binding socket" socket=/var/lib/lxd/unix.socket
t=2016-01-03T18:17:01+0000 lvl=info msg=handling method=GET url="/1.0/images?recursion=1" ip=@
t=2016-01-03T19:17:01+0000 lvl=info msg=handling method=GET url="/1.0/images?recursion=1" ip=@
t=2016-01-03T20:17:01+0000 lvl=info msg=handling method=GET url="/1.0/images?recursion=1" ip=@
t=2016-01-03T21:17:01+0000 lvl=info msg=handling method=GET url="/1.0/images?recursion=1" ip=@
t=2016-01-03T22:17:02+0000 lvl=info msg=handling method=GET url="/1.0/images?recursion=1" ip=@
t=2016-01-03T23:17:01+0000 lvl=info msg=handling method=GET url="/1.0/images?recursion=1" ip=@
t=2016-01-04T00:17:01+0000 lvl=info msg=handling method=GET url="/1.0/images?recursion=1" ip=@
t=2016-01-04T01:17:01+0000 lvl=info msg=handling method=GET url="/1.0/images?recursion=1" ip=@
t=2016-01-04T01:58:51+0000 lvl=info msg="Received 'power failure signal', shutting down containers."
t=2016-01-04T01:58:51+0000 lvl=info msg="Stopping REST API handler:"
t=2016-01-04T01:58:51+0000 lvl=info msg=" - skipping socket-activated socket" socket=/var/lib/lxd/unix.socket
t=2016-01-04T01:58:56+0000 lvl=info msg="LXD is starting" path=/var/lib/lxd
t=2016-01-04T01:58:56+0000 lvl=warn msg="CGroup memory swap accounting is disabled, swap limits will be ignored."
t=2016-01-04T01:58:56+0000 lvl=info msg="Default uid/gid map:"
t=2016-01-04T01:58:56+0000 lvl=info msg=" - u 0<PHONE_NUMBER>6"
t=2016-01-04T01:58:56+0000 lvl=info msg=" - g 0<PHONE_NUMBER>6"
t=2016-01-04T01:58:56+0000 lvl=info msg=Init driver=storage/dir
t=2016-01-04T01:58:56+0000 lvl=info msg="Looking for existing certificates" cert=/var/lib/lxd/server.crt key=/var/lib/lxd/server.key
t=2016-01-04T01:58:56+0000 lvl=info msg="LXD is socket activated"
t=2016-01-04T01:58:56+0000 lvl=info msg="REST API daemon:"
t=2016-01-04T01:58:56+0000 lvl=info msg=" - binding socket" socket=/var/lib/lxd/unix.socket
t=2016-01-04T01:58:56+0000 lvl=info msg=handling method=GET url=/1.0 ip=@
t=2016-01-04T01:58:56+0000 lvl=info msg=handling method=GET url=/1.0 ip=@
t=2016-01-04T02:17:01+0000 lvl=info msg=handling method=GET url="/1.0/images?recursion=1" ip=@
t=2016-01-04T02:51:27+0000 lvl=info msg="Received 'power failure signal', shutting down containers."
t=2016-01-04T02:51:27+0000 lvl=info msg="Stopping REST API handler:"
t=2016-01-04T02:51:27+0000 lvl=info msg=" - skipping socket-activated socket" socket=/var/lib/lxd/unix.socket
t=2016-01-04T03:58:43+0000 lvl=info msg="LXD is starting" path=/var/lib/lxd
t=2016-01-04T03:58:43+0000 lvl=warn msg="CGroup memory swap accounting is disabled, swap limits will be ignored."
...skipping...
\t\"metadata\": {\n\t\t\t\"target\": \"d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5\",\n\t\t\t\"description\": \"centos7-amd64\"\n\t\t},\n\t\t\"operation\": \"\"\n\t}"
t=2016-01-06T21:08:57+0000 lvl=info msg=handling method=GET url=/1.0/images/d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5 ip=@
t=2016-01-06T21:08:57+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"sync\",\n\t\t\"status\": \"Success\",\n\t\t\"status_code\": 200,\n\t\t\"metadata\": {\n\t\t\t\"aliases\": [\n\t\t\t\t{\n\t\t\t\t\t\"target\": \"centos7-amd64\",\n\t\t\t\t\t\"description\": \"centos7-amd64\"\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"architecture\": 2,\n\t\t\t\"fingerprint\": \"d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5\",\n\t\t\t\"filename\": \"centos-7-amd64-default-20160106_02:16.tar.xz\",\n\t\t\t\"properties\": {\n\t\t\t\t\"description\": \"Centos 7 (amd64)\"\n\t\t\t},\n\t\t\t\"public\": 0,\n\t\t\t\"size\": 61926024,\n\t\t\t\"created_at\":<PHONE_NUMBER>,\n\t\t\t\"expires_at\": 0,\n\t\t\t\"uploaded_at\":<PHONE_NUMBER>\n\t\t},\n\t\t\"operation\": \"\"\n\t}"
t=2016-01-06T21:08:57+0000 lvl=info msg=handling method=POST url=/1.0/containers ip=@
t=2016-01-06T21:08:57+0000 lvl=dbug msg="\n\t{\n\t\t\"name\": \"webtest2-chi\",\n\t\t\"profiles\": [\n\t\t\t\"default\"\n\t\t],\n\t\t\"source\": {\n\t\t\t\"fingerprint\": \"d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5\",\n\t\t\t\"type\": \"image\"\n\t\t}\n\t}"
t=2016-01-06T21:08:57+0000 lvl=dbug msg="Responding to container create"
t=2016-01-06T21:08:57+0000 lvl=dbug msg="New task operation: 65c09dbe-941b-43f7-b392-39d91ce296b2"
t=2016-01-06T21:08:57+0000 lvl=dbug msg="Started task operation: 65c09dbe-941b-43f7-b392-39d91ce296b2"
t=2016-01-06T21:08:57+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"async\",\n\t\t\"status\": \"OK\",\n\t\t\"status_code\": 100,\n\t\t\"metadata\": {\n\t\t\t\"id\": \"65c09dbe-941b-43f7-b392-39d91ce296b2\",\n\t\t\t\"class\": \"task\",\n\t\t\t\"created_at\": \"2016-01-06T21:08:57.839683294Z\",\n\t\t\t\"updated_at\": \"2016-01-06T21:08:57.839683294Z\",\n\t\t\t\"status\": \"Running\",\n\t\t\t\"status_code\": 103,\n\t\t\t\"resources\": {\n\t\t\t\t\"containers\": [\n\t\t\t\t\t\"/1.0/containers/webtest2-chi\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"metadata\": null,\n\t\t\t\"may_cancel\": false,\n\t\t\t\"err\": \"\"\n\t\t},\n\t\t\"operation\": \"/1.0/operations/65c09dbe-941b-43f7-b392-39d91ce296b2\"\n\t}"
t=2016-01-06T21:08:57+0000 lvl=info msg=handling method=GET url=/1.0/operations/65c09dbe-941b-43f7-b392-39d91ce296b2/wait ip=@
t=2016-01-06T21:08:57+0000 lvl=dbug msg=ContainerCreateFromImage driver=storage/lvm imageFingerprint=d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5 name=webtest2-chi isPrivileged=true
t=2016-01-06T21:09:03+0000 lvl=dbug msg=containerDeleteSnapshots container=webtest2-chi
t=2016-01-06T21:09:03+0000 lvl=dbug msg=ContainerDelete driver=storage/lvm container=webtest2-chi
t=2016-01-06T21:09:08+0000 lvl=dbug msg="Could not remove LV" driver=storage/lvm lvname=webtest2--chi output="  Failed to find logical volume \"lxc/webtest2--chi\"\n"
t=2016-01-06T21:09:08+0000 lvl=dbug msg="Failure for task operation: 65c09dbe-941b-43f7-b392-39d91ce296b2: Error mounting snapshot LV: no such file or directory"
t=2016-01-06T21:09:08+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"sync\",\n\t\t\"status\": \"Success\",\n\t\t\"status_code\": 200,\n\t\t\"metadata\": {\n\t\t\t\"id\": \"65c09dbe-941b-43f7-b392-39d91ce296b2\",\n\t\t\t\"class\": \"task\",\n\t\t\t\"created_at\": \"2016-01-06T21:08:57.839683294Z\",\n\t\t\t\"updated_at\": \"2016-01-06T21:08:57.839683294Z\",\n\t\t\t\"status\": \"Failure\",\n\t\t\t\"status_code\": 400,\n\t\t\t\"resources\": {\n\t\t\t\t\"containers\": [\n\t\t\t\t\t\"/1.0/containers/webtest2-chi\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"metadata\": null,\n\t\t\t\"may_cancel\": false,\n\t\t\t\"err\": \"Error mounting snapshot LV: no such file or directory\"\n\t\t},\n\t\t\"operation\": \"\"\n\t}"

less /var/log/lxd/webtest2-chi/lxc.log
 lxc<PHONE_NUMBER>.859 WARN     lxc_cgmanager - cgmanager.c:cgm_get:994 - do_cgm_get exited with error

It attempts to delete snapshots on creation of new containers and fails after not being able to find them.

I edited the previous message since my terminal skipped on bunch of log lines.

I'm guessing that the create fails, and then it deletes it because of that; i.e. it's not trying to delete things when it's creating the container, but only after it's failed to do that.

I'm not really sure what's going on here. It looks like the lvcreate command is succeeding, but not actually creating the device somehow. If I sent a patch with a bunch of debug statements, could you build that and test with it so we can get a better picture?

I can do it.  One thing that is interesting, lvcreate i successful with
creating os image but not with creating container image.
On Wed, Jan 6, 2016 at 4:46 PM, Tycho Andersen<EMAIL_ADDRESS>wrote:

I'm not really sure what's going on here. It looks like the lvcreate
command is succeeding, but not actually creating the device somehow. If I
sent a patch with a bunch of debug statements, could you build that and
test with it so we can get a better picture?
—
Reply to this email directly or view it on GitHub
https://github.com/lxc/lxd/issues/1470#issuecomment-169486634.

@alitvak69 the initial error message I see in your log says this:

However your comment with the LVM info shows that there is a thin pool named LXDPool in vg lxc.
When did you run 'lvs'? Is it possible that the pool was created after that initial failure?
It seems like there might be a bug here, but if the pool did exist before you tried to create the image, then we need to figure out why lvcreate seems confused here.

I actually have to cleanup everything manually.  I remove all images and
container files, then container and images related entries from lxd.db,
and finally I remove image volumes and thin pool.  I only leave config
pointing to vg lxc since it is non-default  group name for lxd.
When I retry I recreate local centos7 image and then init a container.  At
some point thin pool LXDPool is automatically created for me.
On Wed, Jan 6, 2016 at 5:04 PM, Michael McCracken<EMAIL_ADDRESS>wrote:

@alitvak69 https://github.com/alitvak69 the initial error message I see
in your log says this:
driver=storage/lvm
lvname=d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5
output=" Pool LXDPool not found in Volume group lxc.\n"

However your comment with the LVM info shows that there is a thin pool named LXDPool in vg lxc.
When did you run 'lvs'? Is it possible that the pool was created after that initial failure?

It seems like there might be a bug here, but if the pool did exist before you tried to create the image, then we need to figure out why lvcreate seems confused here.

—
Reply to this email directly or view it on GitHub
<https://github.com/lxc/lxd/issues/1470#issuecomment-169490343>.

In addition I wanted to say that I posted the whole log from today and perhaps at some point I forgot to unset config for LXDPool but removed it with lvremove.  Whence lxd assumed it was already there.
I cleaned this up retried creating local image first and then creating a fresh container based on local image.  It would probably make sense if you concentrated on last lines of the log.

Here is my last lvs and vgs after I cleaned it all up.
vgs
  VG   #PV #LV #SN Attr   VSize   VFree
  lxc    1   1   0 wz--n- 235.84g 155.84g
  vg00   1   2   0 wz--n- 263.78g

lvs
  LV           VG   Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  xbroker8-chi lxc  -wi-a-----  80.00g
  lxcbase      vg00 -wi-ao---- 235.84g
  root         vg00 -wi-ao----  27.94g

Here is lvs before lxc init
lvs
  LV                                                               VG   Attr       LSize   Pool    Origin Data%  Meta%  Move Log Cpy%Sync Convert
  LXDPool                                                          lxc  twi-aotz-- 152.84g                0.45   0.10
  d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5 lxc  Vwi-a-tz--  10.00g LXDPool        6.94
  xbroker8-chi                                                     lxc  -wi-a-----  80.00g
  lxcbase                                                          vg00 -wi-ao---- 235.84g
  root                                                             vg00 -wi-ao----  27.94g

Here is lvs after failed init
lvs
  LV                                                               VG   Attr       LSize   Pool    Origin Data%  Meta%  Move Log Cpy%Sync Convert
  LXDPool                                                          lxc  twi-aotz-- 152.84g                0.45   0.10
  d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5 lxc  Vwi-a-tz--  10.00g LXDPool        6.94
  xbroker8-chi                                                     lxc  -wi-a-----  80.00g
  lxcbase                                                          vg00 -wi-ao---- 235.84g
  root                                                             vg00 -wi-ao----  27.94g

Off the top of my head, does it make a difference if you try with a different VG, one that has no pre-existing LVs in it before LXD tries to create LXDPool? my hunch is that xbroker8-chi might be interfering with the creation of LXDPool, but I haven't looked at that code in a bit so I don't know if it's changed.
If possible could you paste just the part of the log from the failed init, or just what the timestamps are on those runs of vgs/lvs/etc?
I am leaving the office now but can look into this later and knowing which log lines are relevant would be very helpful.

I cannot do it as my space is limited.  I guess creating another nested pv would work.  It really would be good to know the reason for such limitation (doesn't make sense to me), especially if os image is added and thinpool is created with no problems.
As far as the log goes, here you go, another init try.
cat lxd.log

t=2016-01-06T23:52:14+0000 lvl=info msg=handling method=GET url=/1.0 ip=@
t=2016-01-06T23:52:14+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"sync\",\n\t\t\"status\": \"Success\",\n\t\t\"status_code\": 200,\n\t\t\"metadata\": {\n\t\t\t\"api_compat\": 1,\n\t\t\t\"auth\": \"trusted\",\n\t\t\t\"config\": {\n\t\t\t\t\"storage.lvm_thinpool_name\": \"LXDPool\",\n\t\t\t\t\"storage.lvm_vg_name\": \"lxc\"\n\t\t\t},\n\t\t\t\"environment\": {\n\t\t\t\t\"addresses\": [],\n\t\t\t\t\"architectures\": [\n\t\t\t\t\t2,\n\t\t\t\t\t1\n\t\t\t\t],\n\t\t\t\t\"driver\": \"lxc\",\n\t\t\t\t\"driver_version\": \"1.1.5\",\n\t\t\t\t\"kernel\": \"Linux\",\n\t\t\t\t\"kernel_architecture\": \"x86_64\",\n\t\t\t\t\"kernel_version\": \"4.2.0-23-generic\",\n\t\t\t\t\"server\": \"lxd\",\n\t\t\t\t\"server_pid\": 2981,\n\t\t\t\t\"server_version\": \"0.26\",\n\t\t\t\t\"storage\": \"lvm\",\n\t\t\t\t\"storage_version\": \"2.02.122(2) (2015-06-20) / 1.02.99 (2015-06-20) / 4.33.0\"\n\t\t\t}\n\t\t},\n\t\t\"operation\": \"\"\n\t}"
t=2016-01-06T23:52:14+0000 lvl=info msg=handling url=/1.0/images/aliases/centos7-amd64 ip=@ method=GET
t=2016-01-06T23:52:14+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"sync\",\n\t\t\"status\": \"Success\",\n\t\t\"status_code\": 200,\n\t\t\"metadata\": {\n\t\t\t\"target\": \"d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5\",\n\t\t\t\"description\": \"centos7-amd64\"\n\t\t},\n\t\t\"operation\": \"\"\n\t}"
t=2016-01-06T23:52:14+0000 lvl=info msg=handling method=GET url=/1.0/images/d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5 ip=@
t=2016-01-06T23:52:14+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"sync\",\n\t\t\"status\": \"Success\",\n\t\t\"status_code\": 200,\n\t\t\"metadata\": {\n\t\t\t\"aliases\": [\n\t\t\t\t{\n\t\t\t\t\t\"target\": \"centos7-amd64\",\n\t\t\t\t\t\"description\": \"centos7-amd64\"\n\t\t\t\t}\n\t\t\t],\n\t\t\t\"architecture\": 2,\n\t\t\t\"fingerprint\": \"d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5\",\n\t\t\t\"filename\": \"centos-7-amd64-default-20160106_02:16.tar.xz\",\n\t\t\t\"properties\": {\n\t\t\t\t\"description\": \"Centos 7 (amd64)\"\n\t\t\t},\n\t\t\t\"public\": 0,\n\t\t\t\"size\": 61926024,\n\t\t\t\"created_at\":<PHONE_NUMBER>,\n\t\t\t\"expires_at\": 0,\n\t\t\t\"uploaded_at\":<PHONE_NUMBER>\n\t\t},\n\t\t\"operation\": \"\"\n\t}"
t=2016-01-06T23:52:14+0000 lvl=info msg=handling method=POST url=/1.0/containers ip=@
t=2016-01-06T23:52:14+0000 lvl=dbug msg="\n\t{\n\t\t\"name\": \"webtest21\",\n\t\t\"profiles\": [\n\t\t\t\"default\"\n\t\t],\n\t\t\"source\": {\n\t\t\t\"fingerprint\": \"d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5\",\n\t\t\t\"type\": \"image\"\n\t\t}\n\t}"
t=2016-01-06T23:52:14+0000 lvl=dbug msg="Responding to container create"
t=2016-01-06T23:52:14+0000 lvl=dbug msg="New task operation: 9b82b9ae-4962-4a8e-a770-cf595baeea3c"
t=2016-01-06T23:52:14+0000 lvl=dbug msg="Started task operation: 9b82b9ae-4962-4a8e-a770-cf595baeea3c"
t=2016-01-06T23:52:14+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"async\",\n\t\t\"status\": \"OK\",\n\t\t\"status_code\": 100,\n\t\t\"metadata\": {\n\t\t\t\"id\": \"9b82b9ae-4962-4a8e-a770-cf595baeea3c\",\n\t\t\t\"class\": \"task\",\n\t\t\t\"created_at\": \"2016-01-06T23:52:14.596529887Z\",\n\t\t\t\"updated_at\": \"2016-01-06T23:52:14.596529887Z\",\n\t\t\t\"status\": \"Running\",\n\t\t\t\"status_code\": 103,\n\t\t\t\"resources\": {\n\t\t\t\t\"containers\": [\n\t\t\t\t\t\"/1.0/containers/webtest21\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"metadata\": null,\n\t\t\t\"may_cancel\": false,\n\t\t\t\"err\": \"\"\n\t\t},\n\t\t\"operation\": \"/1.0/operations/9b82b9ae-4962-4a8e-a770-cf595baeea3c\"\n\t}"
t=2016-01-06T23:52:14+0000 lvl=info msg=handling method=GET url=/1.0/operations/9b82b9ae-4962-4a8e-a770-cf595baeea3c/wait ip=@
t=2016-01-06T23:52:14+0000 lvl=dbug msg=ContainerCreateFromImage driver=storage/lvm imageFingerprint=d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5 name=webtest21 isPrivileged=true
t=2016-01-06T23:52:19+0000 lvl=dbug msg=containerDeleteSnapshots container=webtest21
t=2016-01-06T23:52:19+0000 lvl=dbug msg=ContainerDelete driver=storage/lvm container=webtest21
t=2016-01-06T23:52:24+0000 lvl=dbug msg="Could not remove LV" driver=storage/lvm output="  Failed to find logical volume \"lxc/webtest21\"\n" lvname=webtest21
t=2016-01-06T23:52:24+0000 lvl=dbug msg="Failure for task operation: 9b82b9ae-4962-4a8e-a770-cf595baeea3c: Error mounting snapshot LV: no such file or directory"
t=2016-01-06T23:52:24+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"sync\",\n\t\t\"status\": \"Success\",\n\t\t\"status_code\": 200,\n\t\t\"metadata\": {\n\t\t\t\"id\": \"9b82b9ae-4962-4a8e-a770-cf595baeea3c\",\n\t\t\t\"class\": \"task\",\n\t\t\t\"created_at\": \"2016-01-06T23:52:14.596529887Z\",\n\t\t\t\"updated_at\": \"2016-01-06T23:52:14.596529887Z\",\n\t\t\t\"status\": \"Failure\",\n\t\t\t\"status_code\": 400,\n\t\t\t\"resources\": {\n\t\t\t\t\"containers\": [\n\t\t\t\t\t\"/1.0/containers/webtest21\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"metadata\": null,\n\t\t\t\"may_cancel\": false,\n\t\t\t\"err\": \"Error mounting snapshot LV: no such file or directory\"\n\t\t},\n\t\t\"operation\": \"\"\n\t}"

I have tried creating a nested vg lxd
lvs
  LV                                                               VG   Attr       LSize   Pool    Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lxdbase                                                          lxc  -wi-ao---- 120.00g
  xbroker8-chi                                                     lxc  -wi-ao----  80.00g
  LXDPool                                                          lxd  twi-aotz-- 117.00g                0.59   0.09
  d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5 lxd  Vwi-a-tz--  10.00g LXDPool        6.94
  lxcbase                                                          vg00 -wi-ao---- 235.84g
  root                                                             vg00 -wi-ao----  27.94g

Here is the log
t=2016-01-07T00:10:26+0000 lvl=dbug msg="Responding to container create"
t=2016-01-07T00:10:26+0000 lvl=dbug msg="New task operation: 86022414-a678-4985-a74a-4ae29192e3ad"
t=2016-01-07T00:10:26+0000 lvl=dbug msg="Started task operation: 86022414-a678-4985-a74a-4ae29192e3ad"
t=2016-01-07T00:10:26+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"async\",\n\t\t\"status\": \"OK\",\n\t\t\"status_code\": 100,\n\t\t\"metadata\": {\n\t\t\t\"id\": \"86022414-a678-4985-a74a-4ae29192e3ad\",\n\t\t\t\"class\": \"task\",\n\t\t\t\"created_at\": \"2016-01-07T00:10:26.036575312Z\",\n\t\t\t\"updated_at\": \"2016-01-07T00:10:26.036575312Z\",\n\t\t\t\"status\": \"Running\",\n\t\t\t\"status_code\": 103,\n\t\t\t\"resources\": {\n\t\t\t\t\"containers\": [\n\t\t\t\t\t\"/1.0/containers/webtest21\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"metadata\": null,\n\t\t\t\"may_cancel\": false,\n\t\t\t\"err\": \"\"\n\t\t},\n\t\t\"operation\": \"/1.0/operations/86022414-a678-4985-a74a-4ae29192e3ad\"\n\t}"
t=2016-01-07T00:10:26+0000 lvl=info msg=handling method=GET url=/1.0/operations/86022414-a678-4985-a74a-4ae29192e3ad/wait ip=@
t=2016-01-07T00:10:26+0000 lvl=dbug msg=ContainerCreateFromImage driver=storage/lvm imageFingerprint=d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5 name=webtest21 isPrivileged=true
t=2016-01-07T00:10:31+0000 lvl=dbug msg=containerDeleteSnapshots container=webtest21
t=2016-01-07T00:10:31+0000 lvl=dbug msg=ContainerDelete driver=storage/lvm container=webtest21
t=2016-01-07T00:10:36+0000 lvl=dbug msg="Could not remove LV" driver=storage/lvm lvname=webtest21 output="  Failed to find logical volume \"lxd/webtest21\"\n"
t=2016-01-07T00:10:36+0000 lvl=dbug msg="Failure for task operation: 86022414-a678-4985-a74a-4ae29192e3ad: Error mounting snapshot LV: no such file or directory"
t=2016-01-07T00:10:36+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"sync\",\n\t\t\"status\": \"Success\",\n\t\t\"status_code\": 200,\n\t\t\"metadata\": {\n\t\t\t\"id\": \"86022414-a678-4985-a74a-4ae29192e3ad\",\n\t\t\t\"class\": \"task\",\n\t\t\t\"created_at\": \"2016-01-07T00:10:26.036575312Z\",\n\t\t\t\"updated_at\": \"2016-01-07T00:10:26.036575312Z\",\n\t\t\t\"status\": \"Failure\",\n\t\t\t\"status_code\": 400,\n\t\t\t\"resources\": {\n\t\t\t\t\"containers\": [\n\t\t\t\t\t\"/1.0/containers/webtest21\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"metadata\": null,\n\t\t\t\"may_cancel\": false,\n\t\t\t\"err\": \"Error mounting snapshot LV: no such file or directory\"\n\t\t},\n\t\t\"operation\": \"\"\n\t}"
``

I think I know what's going on with LXD here - it appears to be ignoring an error from LVM while creating the LV for the container... If you want to find out more about the error it's ignoring, you can try the same operation manually, with more verbose logging - e.g.: sudo lvcreate -aay -v -n webtest21 -s /dev/lxc/d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5
(Note, if that's not verbose enough for you, add vs to the -v

So is it a lxd issue or lvm?
On Jan 7, 2016 2:18 PM, "Michael McCracken"<EMAIL_ADDRESS>wrote:

I think I know what's going on with LXD here - it appears to be ignoring
an error from LVM while creating the LV for the container... If you want to
find out more about the error it's ignoring, you can try the same operation
manually, with more verbose logging - e.g.: sudo lvcreate -aay -v -n
webtest21 -s
/dev/lxc/d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5
(Note, if that's not verbose enough for you, add vs to the -v
—
Reply to this email directly or view it on GitHub
https://github.com/lxc/lxd/issues/1470#issuecomment-169793761.

Both. LVM is throwing an error (I don't know what it is) and LXD is not
reporting that error, and continuing erroneously until something else fails.
On Thu, Jan 7, 2016 at 12:20 PM, alitvak69<EMAIL_ADDRESS>wrote:

So is it a lxd issue or lvm?
On Jan 7, 2016 2:18 PM, "Michael McCracken"<EMAIL_ADDRESS>wrote:

I think I know what's going on with LXD here - it appears to be ignoring
an error from LVM while creating the LV for the container... If you want
to
find out more about the error it's ignoring, you can try the same
operation
manually, with more verbose logging - e.g.: sudo lvcreate -aay -v -n
webtest21 -s
/dev/lxc/d755ac26ef626574ffcf0213df1772d4739da3f3ff002f7fd3019288454117c5
(Note, if that's not verbose enough for you, add vs to the -v
—
Reply to this email directly or view it on GitHub
https://github.com/lxc/lxd/issues/1470#issuecomment-169793761.

—
Reply to this email directly or view it on GitHub
https://github.com/lxc/lxd/issues/1470#issuecomment-169794381.

I've the same issue (https://lists.linuxcontainers.org/pipermail/lxc-users/2015-December/010700.html sorry for not opening an issue that time), today I investigate and discover that starting from 0.25 something change in lv creation
On 0.24 createSnapshotLV() is defined like:
func (s *storageLvm) createSnapshotLV(lvname string, origlvname string, readonly bool) (string, error) {
        output, err := exec.Command(
                "lvcreate",
                "-kn",
                "-n", lvname,
                "-s", fmt.Sprintf("/dev/%s/%s", s.vgName, origlvname)).CombinedOutput()
        if err != nil {

starting from 0.25 it's defined as follow:
func (s *storageLvm) createSnapshotLV(lvname string, origlvname string, readonly bool) (string, error) {
        output, err := s.tryExec(
                "lvcreate",
                "-aay",
                "-n", lvname,
                "-s", fmt.Sprintf("/dev/%s/%s", s.vgName, origlvname))
        if err != nil {

-aay means autoactivation of LV, man lvcreate says that:

   -a, --activate {y|ay|n|ey|en|ly|ln}
         Controls the availability of the Logical Volumes for
         immediate use after the command finishes running.  By
         default, new Logical Volumes are activated (-ay).  If it
         is possible technically, -an will leave the new Logical
         Volume inactive. But for example, snapshots can only be
         created in the active state so -an cannot be used with
         --snapshot.  Normally the --zero n argument has to be
         supplied too because zeroing (the default behaviour)
         also requires activation.  If autoactivation option is
         used (-aay), the logical volume is activated only if it
         matches an item in the
         activation/auto_activation_volume_list set in
         lvm.conf(5).  For autoactivated logical volumes, --zero
         n and --wipesignatures n is always assumed and it can't
         be overridden. If the clustered locking is enabled, -aey
         will activate exclusively on one node and -a{a|l}y will
         activate only on the local node.

and man 5 lvm.conf explains that:

         **volume_list** — This acts as a filter through which all
         requests to activate a logical volume on this machine
         are passed.  A logical volume is only activated if it
         matches an item in the list.  Tags must be preceded by @
         and are checked against all tags defined in the logical
         volume and volume group meta‐ data for a match.  @* is
         short-hand to check every tag set on the host machine
         (see tags above).  Logi‐ cal volume and volume groups
         can also be included in the list by name e.g. vg00,
         vg00/lvol1.  If this setting is not present but at least
         one host tag is defined then a default single-entry list
         containing @* is assumed.

         **auto_activation_volume_list** — This acts as a filter
         through which all requests to autoactivate a logi‐ cal
         volume on this machine are passed. A logical volume is
         autoactivated if it matches an item in the list. Volumes
         must also pass the volume_list filter, if present. Tags
         must be preceded by @ and are checked against all tags
         defined in the logical volume and volume group metadata
         for a match. @* is short-hand to check every tag set on
         the host machine (see tags above).  Logical volume and
         volume groups can also be included in the list by name
         e.g. vg00, vg00/lvol1.

Setting auto_set_activation_skip = 0 in lvm.conf fixes the issue:
micky@lina:~$ lxc init devuan test
Creating test done.
micky@lina:~$

root@lina:~# lvscan | grep test
  ACTIVE            '/dev/lxc/test' [10.00 GiB] inherit
root@lina:~#

IMHO it's better to revert LV creation using lvcreate -kn as in lxd version <= 0.24 than forcing users to change their LVM settings.

Except that -k is a recent LVM option which doesn't exist in most distributions (specifically Ubuntu 14.04 LTS).

And so using
func (s *storageLvm) createSnapshotLV(lvname string, origlvname string, readonly bool) (string, error) {
        output, err := s.tryExec(
                "lvcreate",
                "-n", lvname,
                "-s", fmt.Sprintf("/dev/%s/%s", s.vgName, origlvname))
        if err != nil {

it's not an option?

It may be an option, I'm not familiar enough with LVM. @mikemccracken ?

So what is the plan here.  Can you revert to pre 0.25 lvm options?
On Thu, Jan 7, 2016 at 3:43 PM, Stéphane Graber<EMAIL_ADDRESS>wrote:

It may be an option, I'm not familiar enough with LVM. @mikemccracken
https://github.com/mikemccracken ?
—
Reply to this email directly or view it on GitHub
https://github.com/lxc/lxd/issues/1470#issuecomment-169815044.

No, reverting to -k isn't an option as that'd cause testing regressions and completely break LVM on 14.04. We may be able to go with @mickydelfavero's suggestion if -k and -a aren't actually useful (simply not passing them).

lvcreate -kn or equivalently, passing --setactivationskip n to the lvchange we do after the create is necessary for LVM post-trusty, because the defaults are to skip auto-activation, which breaks our flow.
I think the correct solution here is to know the LVM version and add the flag conditionally.

ok, yeah, making this conditional on the version would be fine, we already have it in the struct too

I would be happy to test the fix when it is avaialble.
On Thu, Jan 7, 2016 at 4:02 PM, Stéphane Graber<EMAIL_ADDRESS>wrote:

ok, yeah, making this conditional on the version would be fine, we already
have it in the struct too
—
Reply to this email directly or view it on GitHub
https://github.com/lxc/lxd/issues/1470#issuecomment-169820436.

I pulled new master for lxd, lxc, and lxcfs. The issue still persists.
t=2016-01-09T04:02:31+0000 lvl=info msg=handling ip=@ method=POST url=/1.0/containers
t=2016-01-09T04:02:31+0000 lvl=dbug msg="\n\t{\n\t\t\"name\": \"webtest22\",\n\t\t\"profiles\": [\n\t\t\t\"default\"\n\t\t],\n\t\t\"source\": {\n\t\t\t\"fingerprint\": \"e62ce217535634bb8a78238f928f4b57e70b4f4639f049b599d350a278ba136e\",\n\t\t\t\"type\": \"image\"\n\t\t}\n\t}"
t=2016-01-09T04:02:31+0000 lvl=dbug msg="Responding to container create"
t=2016-01-09T04:02:31+0000 lvl=dbug msg="New task operation: 57b411c7-1d08-4fde-9f13-ae40347d3e1b"
t=2016-01-09T04:02:31+0000 lvl=dbug msg="Started task operation: 57b411c7-1d08-4fde-9f13-ae40347d3e1b"
t=2016-01-09T04:02:31+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"async\",\n\t\t\"status\": \"OK\",\n\t\t\"status_code\": 100,\n\t\t\"metadata\": {\n\t\t\t\"id\": \"57b411c7-1d08-4fde-9f13-ae40347d3e1b\",\n\t\t\t\"class\": \"task\",\n\t\t\t\"created_at\": \"2016-01-09T04:02:31.23735626Z\",\n\t\t\t\"updated_at\": \"2016-01-09T04:02:31.23735626Z\",\n\t\t\t\"status\": \"Running\",\n\t\t\t\"status_code\": 103,\n\t\t\t\"resources\": {\n\t\t\t\t\"containers\": [\n\t\t\t\t\t\"/1.0/containers/webtest22\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"metadata\": null,\n\t\t\t\"may_cancel\": false,\n\t\t\t\"err\": \"\"\n\t\t},\n\t\t\"operation\": \"/1.0/operations/57b411c7-1d08-4fde-9f13-ae40347d3e1b\"\n\t}"
t=2016-01-09T04:02:31+0000 lvl=info msg=handling method=GET url=/1.0/operations/57b411c7-1d08-4fde-9f13-ae40347d3e1b/wait ip=@
t=2016-01-09T04:02:31+0000 lvl=dbug msg=ContainerCreateFromImage driver=storage/lvm imageFingerprint=e62ce217535634bb8a78238f928f4b57e70b4f4639f049b599d350a278ba136e name=webtest22 isPrivileged=true
t=2016-01-09T04:02:36+0000 lvl=dbug msg=containerDeleteSnapshots container=webtest22
t=2016-01-09T04:02:36+0000 lvl=dbug msg=ContainerDelete driver=storage/lvm container=webtest22
t=2016-01-09T04:02:41+0000 lvl=dbug msg="Could not remove LV" driver=storage/lvm output="  Failed to find logical volume \"lxc/webtest22\"\n" lvname=webtest22
t=2016-01-09T04:02:41+0000 lvl=dbug msg="Failure for task operation: 57b411c7-1d08-4fde-9f13-ae40347d3e1b: Error mounting snapshot LV: no such file or directory"
t=2016-01-09T04:02:41+0000 lvl=dbug msg="\n\t{\n\t\t\"type\": \"sync\",\n\t\t\"status\": \"Success\",\n\t\t\"status_code\": 200,\n\t\t\"metadata\": {\n\t\t\t\"id\": \"57b411c7-1d08-4fde-9f13-ae40347d3e1b\",\n\t\t\t\"class\": \"task\",\n\t\t\t\"created_at\": \"2016-01-09T04:02:31.23735626Z\",\n\t\t\t\"updated_at\": \"2016-01-09T04:02:31.23735626Z\",\n\t\t\t\"status\": \"Failure\",\n\t\t\t\"status_code\": 400,\n\t\t\t\"resources\": {\n\t\t\t\t\"containers\": [\n\t\t\t\t\t\"/1.0/containers/webtest22\"\n\t\t\t\t]\n\t\t\t},\n\t\t\t\"metadata\": null,\n\t\t\t\"may_cancel\": false,\n\t\t\t\"err\": \"Error mounting snapshot LV: no such file or directory\"\n\t\t},\n\t\t\"operation\": \"\"\n\t}"

what's the "lxc info" output on your system?


Demo seems to be not working.

Link from homepage: https://oxfordunichess.github.io/oucc-frontend/termcard
Browsers tried: Chrome, Firefox

Also came here to report this. @theLAZYmd any place where we could see a demo or this component in action?
thanks so much for creating this!

Fixed with documentation update https://github.com/theLAZYmd/react-google-calendar/commit/63f23856b1357a15a93317c7f51c7a133e794167 checkout the new README page!


Speech Recognition without punctuation

Hello,
i am trying Google Speech Recognition with German and English, however, the text output does not contain any punctuation marks. Is there a way to get these additional info (if available) or is this standard behaviour?
Example: I say Hello, my Name is John. How are you today? Where are your parents?
and i get: hello my name is john how are you today where are your parents
I know it is very difficult to predict these punctuations, but does Google provide this?
Or do you know any other Speech Recognition service that offers such feature?
Thanks for help!
Regards,
Josef

I am not aware of any recognizer that can do this reliably (this is still an active area of research).
Punctuation is generally inferred from context and less from the sounds themselves, so your best bet is to process the text itself.
The Sphinx recognizer can do it a bit, but it doesn't have very usable accuracy. Also, it takes a lot more effort to set up.
Of course, you could always set a short recognizer_instance.pause_threshold, repeatedly call recognizer_instance.listen, and then add a period after each result and append all of them together. Very hacky though.

Thanks, i will try both of your ideas!

This is available now!
https://github.com/Uberi/speech_recognition/pull/432


chore: npm audit fix

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 74.74%. Comparing base (c283ac1) to head (2812ff8).

Additional details and impacted files
@@           Coverage Diff           @@
##             main      #74   +/-   ##
=======================================
  Coverage   74.74%   74.74%
=======================================
  Files          51       51
  Lines        1267     1267
  Branches      178      178
=======================================
  Hits          947      947
  Misses        308      308
  Partials       12       12

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Click on overlapped node

The main idea was to add some checking if element we want to click on is overlapped by other element because:

It isn't impossible.
It saves time on debugging especially if you forgot about this peculiarity (like me)

So there's a possibility of the situation when the click is successful, but nothing happens after that (but something should have happened). It may behave this way because the “coordinates click” interacts with an element placed “above” the desired one (on the Z axis). E.g. there may be a popup, loading indicator of something else that blocks the click. In this case some waiting command should be fired first, to wait for this blocking element to disappear.

@GalGrigoryeva would you please add some description for your PR?

@goganchic, description was added ^__^

Published as<EMAIL_ADDRESS>🎉


SAS Token not working for AzureBlob File Copy

The SAS Token generated along with URL gives unauthorized error
I've tried version 3 and 2

Hi @issacnitin , recently we made changes to the SAS token generated. Earlier the SAS token would have only Read and List permissions. Now it has Read, Write, List and Delete permissions. Maybe earlier you were trying to perform an action for which the SAS token did not have permission for. Can you try again and let us know.

@arjgupta No, I needed read permission only.. I remember using SAS token generated with read only permission from storage and get things working. I'll try again and let you know

@issacnitin , Did you get a chance to try the task? Are you still facing the issue?

@niadak I also struggle with getting the sas token to work, i get this error code when trying to reference a nested template located in the storage account.
"code": "InvalidContentLink",
"message": "Unable to download deployment content from 'https://dev.blob.core.windows.net/...............'. The tracking Id is 'aeb3661e-bd3b-4713-8123-186d48e1bdab'.

@niadak It's still not working, these are the release logs:
ReleaseLogs_90.zip
The generated Uri cannot be accessed, giving the error:

AuthenticationFailed

Server failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature. RequestId:be4a5ddb-c01e-00b2-3ecc-df90ef000000 Time:2019-03-21T09:56:10.4925869Z

Signature size is invalid

@issacnitin,  Can you please share the debug logs of the release. Refer to the instructions to generate debug logs.
Note that the SAS token generated by the task is only valid for 4 hours by default. Recently we have added a task parameter to customize the token expire time. Make sure you are using the token with in expire time.

ReleaseLogs_92.zip
There you go
Yes I'm setting token expiry to a very large number

I think I got the issue, URL generated is correct but azure CLI drops encoded characters...

OK.  Seems like similar issue has been reported to AzureCLI github repo also.
https://github.com/Azure/azure-cli/issues/2004


Add a way to disable automatic schema creation

At the time of this writing (latest release: v8.0.2), there is a line of code that ensures the creation of the schema (if not exists) when creating the table that stores the list of migrations executed:
_, err := db.Exec(`CREATE SCHEMA IF NOT EXISTS ?`, pg.SafeQuery(schema))

Source: https://github.com/go-pg/migrations/blob/v8.0.2/collection.go#L641
It is executed only if the targeted schema is not public.
First proposal (rejected)
In this PR, I'm proposing a new option that allows to disable this behavior, and require that the schema exists beforehand instead, or the "init" step fails.
This is really helpful in situations where the current PostgreSQL user doesn't have the CREATE privilege at the database level (hence they can't create new schemas) but only the CREATE privilege on a specific schema created beforehand by another superuser. Without this new option, the line above would fail (although the schema exists) and there would be no way to use this library.
The new DisableSQLAutocreateSchema() method is modeled on the existing DisableSQLAutodiscover() method, and can be used like this:
collection.DisableSQLAutocreateSchema(true)
collection.SetTableName("myschema.gopg_migrations")
collection.Run(db, "init")

In this example, if myschema does not exist beforehand, an error is returned and the schema is not automatically created.
Additionally, I removed the special handling of the public schema as it may or may not be there, as any other schema (it's common to have the public schema since it is added by default in new PostgreSQL databases, but it could have been dropped...). I'm not sure what the rationale was for this exception, so don't hesitate to tell me if I'm going in the wrong direction there.
New behavior:
collection.SetTableName("gopg_migrations")
collection.Run(db, "init") // Will now run "CREATE SCHEMA IF NOT EXISTS public"

Second proposal (under evaluation)
Alternatively, as suggested by @vmihailenco, we can always avoid to run "CREATE SCHEMA IF NOT EXISTS" when the schema is known to exist. As a consequence there's no need to add a new option.
New behavior:
collection.SetTableName("myschema.gopg_migrations")
collection.Run(db, "init") // Triggers `CREATE SCHEMA IF NOT EXISTS myschema` only if myschema does not exist

Fixes https://github.com/go-pg/migrations/issues/105

Thanks :+1:


Update Figure-1

Update Figure-1 which now shows a Network Interfaces subtree instead of Connection Mgmt

Reviewed on the call


How should we get in contact?

At the end of the readme.md you ask us to get in contact but provide no preferred way

We are available here :)

so you are! :)


To SVG Export

Is there a way to compile text to SVG? Like this:
var svg = mermaid.toSVG(text);

This is by far the most necessary function for this library. Other stuff, like including the full he library and traversing DOM on every mermaid.init() call and attaching data-processed tags to elements is really overkill, makes the library much bigger unnecessarily. The integration specifics should be left to the plugin developers...

I can see how such function would be useful and I am all for making integration easier.
A bit tricky to achive though as the DOM is used when creating the SVG. Perhaps the shadow DOM could be used or some fake DOM.
There is another approach also being discussed where you instead of running init call with a list of the elements you want processed. This way will be available sooner then the toSVG function.
So I am all for this but further down the roadmap unless someone whats to help out with it.

I see. I guess, something like .render() function would be very useful, for now.
mermaid.render(text: string, el: HTMLEement);

Then we could get rid of the mermaid.init() function that really should be up to developers (or a separate module) to implement their own way of integrating the library. For example, now you include the he library for the only reason to .decode() the HTML entities in code found in class="mermaid" elements when running mermaid.init() function, which could be avoided all together with a mermaid.render() function.

And maybe if el argument is not provided the library creates its own HTMLElement and returns it:
var svg = mermaid.render(test: string): HTMLElement;

I like that idea! It does need to work stand alone as well though. But it would make sense to separate the actual core of mermaid  from the code that is used for the standard integration on a website. This way an API could make functionality available for integrators without the parts that are no required in that context.
graph LR
   mermaid    --> mermaidAPI
   mermaid    --> he
   mermaidAPI --> d3
   mermaidAPI --> dagre-d3

:+1:  for .render();

Why is the DOM needed to generate the diagrams? Could it work with something like cheerio?

@unindented I guess, because it uses D3.js to generate the SVG images.

@streamich But d3.js can run in node without DOM: https://www.npmjs.com/package/d3

I think it should be possible but will need some re-work.
For instance d3.select is used in some occasions, per default the selection will look in the DOM for the element. Those needs to be redirected to the virtual DOM instead etc.
This will also simplify rendering tests.

Did a POC using jsdom that managed to render the code. The library too quite a leap in size though so this probably not a good option in this case. We have a DOM in the browser so why mock it?
Thinking that using a shadow DOM or a hidden element in the DOM for the rendering is a better alternative. The shadow DOM seems still to have low browser support though.
That leaves us with the option of rendering the svg in a new hidden element where it will only be during the generation. Once the generation is done the svg code could be extracted from the element and returned. The element would then be removed. Not as clean us using cheerio or jsdom I guess but more practical.
Any reassons not to use this approach? If so what are the better options?

@knsv Because of my use case (generating graphs in node.js), I'd rather not rely on the browser for anything. Spinning up PhantomJS for each diagram is super heavy.
Could we do feature detection, where if the library is running in the browser, it uses its DOM, and if not it loads jsdom? I guess d3 is doing something like that, because they don't build their distributable file with jsdom.

@knsv Ah, it doesn't do feature detection: http://stackoverflow.com/questions/19080929/d3js-how-to-generate-standalone-svg-files-nodejs

@knsv Ok, I found the answer. They seem to rely on the document and ownerDocument properties of nodes, instead of hardcoding things like window: https://github.com/mbostock/d3/pull/2225

how about this...
In the rendering code mermaid checks to see if there is a document object available.
If the document object is available it is used.
If it is not (implying serveside code) jsdom is required and used.
jsdom is put as an external dependency meaning that the code using it needs to installing via npm in that project.

Sounds reasonable to me. jsdom could be a dependency in the package.json, so that if I install mermaid, I don't need to do anything else.

Ran into a pit, it seems jsdom wont to the trick either:
https://github.com/cpettitt/dagre-d3/issues/46
It is tempting to start using dagre instead of dagre-d3 but that is a larger project. Will try with phantomjs just to see if it works even though it is super heavy. At least the render method will be in place.
I am open for alternatives ideas though.

Damn. Thank you for looking into it though.

A fix for this has been released in version 0.5.0. Will however open a new issue to implement the render function using phantomjs for the server side environment.

is there a solution for easy transform of test to svg on the server, now?

I've got this working with https://github.com/exupero/saveSvgAsPng

How to use mermaid on node.js restful api?
I'm not an expert with javascript. Below is how I did it.
expected output: .svg or .png file that I can show on the response as full path.
Please help. thanks.
const express = require('express');
const mermaidAPI = require('mermaid');
app.get('/chart', (req, res) => {
mermaidAPI.initialize({
startOnLoad: true
})
const graphDefinition = 'graph TB\na-->b'
const cb = function(svgGraph) {
console.log(svgGraph)
}
mermaidAPI.render('id1',graphDefinition,cb)
res.status(200).json('.svg or .png file path here!');
})

Guys, please check this project: https://github.com/mermaidjs/mermaid.cli

Guys, please check this project: https://github.com/mermaidjs/mermaid.cli

That's nice it seems to work, what isn't nice is having to relay in puppeteer just to export some svg : https://github.com/mermaid-js/mermaid-cli/blob/master/package.json#L19


Feedback Page Added

Feedback Page Added

Hello @sanju2  !! I appreciate your contribution but please create the PR with the Branch "UI-Improvement"  not with the main !! I will review and merge it accordingly !! I will also take care of labels !!


Bumps the base image to ubi8/openjdk-11:1.10-1

Signed-off-by: Sean Sundberg<EMAIL_ADDRESS>

Addresses github.com/cloud-native-toolkit/planning#863


Fix to allow elves to be abjurant champions

This is pretty safe and its been available for review a while so I am going ahead and merging it in.


Box shows out of view

Hi team :wave:,
First of all a huge thank you to all of you for making Recaptcha possible and thank you for taking time to read my issue. What follows is what I hope a comprehensive issue that has to do with the recaptcha box showing out-of-view in some cases.
If anything is unclear in what follows, let me know and I'll try to clear things up in a (new) comment.
What's going wrong?
I believe the box isn't showing up at the right position. With approval I've attached two screen shots (Chrome and Edge browsers).
What should happen?
I believe the box should display itself in the center of the page, no matter where the form is located on the screen. I believe it should not be relevant to the form it's attached to but separated from any form on the page so it will be visible, no matter what.
In my opinion it should either detach itself from the form and always be visible no matter the scroll position (these are long forms) or it should attach itself to the submit button that was clicked instead of the form itself. This is because the button it still visible to the user even though Google Recaptch hijacks the page.
Attached screen shots
Google Chrome

Edge on Browserstack

Hi team,
I'm pleased to say we "fixed" the issue by moving the div you use to attach the widget to has been moved.

Hey @ttomdewit! I'm having a pretty similar issue. Our site has the body moved to the left with a negative margin in order to show a login sidebar (where the recaptcha widget is resided),
I've noticed the puzzle window invoked by the recaptcha widget renders itself in the center of the body, absolute posiotioned dynamicaly via JS, and that's why it's outside the screen in my case.
Was your puzzle window doing the same thing? If I understood it right, it was not. Would you care to give more details on how you solved this? :)
This is how ours is:

Hi, I am wondering if someone could help me getting the recaptcha picture grid in the right place: We use recaptcha in some Angular Material ui, on a popup window. It shows correctly in the middle of the visible area. But if google decides to show the picture grid, then it is somewhere too high, out of the visible area. Your help is much appreciated.

This is still a problem.
Also - Check this Stack: https://stackoverflow.com/questions/48431361/force-google-recaptcha-challenge
We should have some way of TESTING the reCapcha popup to show the problem
In my case I am dealing with a FORM inside of a POPUP.
Which works perfectly fine, however, we recently noticed that in 2023 our leads for that landing page dropped off about 50% - after a great deal of time wasting we got a complaint from a customer who could not "unlock the special offer" - we discovered that when ReCapcha fires and the popup is open the ReCapcha does EXACLTY what is shown here by ttomdewit
That cost us about $2000-5000 in Google Ads... (yuk) (another story and harder to prove)
Anyway:
about 50% of the folks who tried to use the Popup version of our form (which is a special offer) just saw either a white overlay, nothing at all, or a tiny bit of the bottom of the ReCapcha. IT should be noted we have 3 forms on the page: Main form, then a popup, then a newsletter. ALL protected by ReCapcha
The popup has a script that "freezes" the HTML/BODY elements to remove the scrollbar and lock the screen. Which is nice, however to our horror Google is using the HTML BODY HEIGHT to determine where exactly to place the ReCapcha popup.
This, alas, has caused a paradox:
We either NOT use the ScrollBar popup lock, or, we NOT use ReCapcha in the popup form. (yuk)
I am of course going to attempt to rewrite the popup script, in the meantime the solution was to remove the scrollbar "lock" tactic (which sets the HTML/BODY css to fixed, and overflow:hidden) - problem with that is now the user can scroll the html/body in the background while a popup is open. (yuk)
In closing, that particular tactic is causing the ReCapcha form element to "not know where to show" on the page. I feel that if the right person at Google could do a screen share with me

I have opened an item here:
https://github.com/google/recaptcha/issues/520
And captured the issue in all its glory here:
https://www.screencast.com/t/0UgWen4i
Short summary: when fixed/absolute positioning is being used the position of the recapchaPopup can be forced off screen. Not sure how to fix (other than not using modals) - please let me know if you have any ideas?

I also encountered a similar problem. I used the pop-up box of https://ant.design/ with Google ReCaptcha embedded in it. In the windows computer browser, I also encountered the same problem as above. Does anyone have more information? The solution?


[Vue warn]: Error in mounted hook: "Error: Container element not found"

Hello,
I am using Wavesurfer 4.4.0
"wavesurfer.js": "^4.4.0"
In vue, I am trying to use it as:

import WaveSurfer from 'wavesurfer.js';

   mounted() {
        this.createWaveSurfer();
},

methods: {
        createWaveSurfer() {
            var wavesurfer = WaveSurfer.create({
                container: #waveform,
                waveColor: 'violet',
                progressColor: 'purple'
            });
            wavesurfer.on('ready', function () {
                wavesurfer.play();
            });
                wavesurfer.load(
                "https://mywebsite.com/storage/text/1611243371.wav"
            );
        },
}

I keep receiving this error:
[Vue warn]: Error in mounted hook: "Error: Container element not found"
Any idea why please?
Thank you.

Change:
      var wavesurfer = WaveSurfer.create({
          container: #waveform,
          waveColor: 'violet',
          progressColor: 'purple'
      });

to:
    var wavesurfer = WaveSurfer.create({
        container: this.$refs.waveform,
        waveColor: 'violet',
        progressColor: 'purple'
    });

Using Vue with libraries like wavesurfer can be tricky sometimes.

Change:
      var wavesurfer = WaveSurfer.create({
          container: #waveform,
          waveColor: 'violet',
          progressColor: 'purple'
      });

to:
    var wavesurfer = WaveSurfer.create({
        container: this.$refs.waveform,
        waveColor: 'violet',
        progressColor: 'purple'
    });

Using Vue with libraries like wavesurfer can be tricky sometimes.

Thanks.
I have already tried that and also this:
    var wavesurfer = window.WaveSurfer.create({
        container: this.$refs.waveform,
        waveColor: 'violet',
        progressColor: 'purple'
    });

But no luck.

Thanks.
I have already tried that and also this:
    var wavesurfer = window.WaveSurfer.create({
        container: this.$refs.waveform,
        waveColor: 'violet',
        progressColor: 'purple'
    });

But no luck.

Show the full .vue file

Show the full .vue file

No problem thank you
HTML
<template>

</template>

JS:
import WaveSurfer from 'wavesurfer.js';

data() {
        return {

       }
    },
   mounted() {
        this.createWaveSurfer();
},

methods: {
        createWaveSurfer() {
           var wavesurfer = WaveSurfer.create({
                container: #waveform,
                waveColor: 'violet',
                progressColor: 'purple'
            });
                wavesurfer.on('ready', function () {
                wavesurfer.play();
            });
                wavesurfer.load(
                "https://mywebsite.com/storage/text/1611243371.wav"
            );
        },
}

No problem thank you
HTML
<template>

</template>

JS:
import WaveSurfer from 'wavesurfer.js';

data() {
        return {

       }
    },
   mounted() {
        this.createWaveSurfer();
},

methods: {
        createWaveSurfer() {
           var wavesurfer = WaveSurfer.create({
                container: #waveform,
                waveColor: 'violet',
                progressColor: 'purple'
            });
                wavesurfer.on('ready', function () {
                wavesurfer.play();
            });
                wavesurfer.load(
                "https://mywebsite.com/storage/text/1611243371.wav"
            );
        },
}

Are you writing container: "#waveform" or container: #waveform because there's a difference between the first and the second. The second will not work.
In your latest post you removed the id attribute.
container: "#waveform" will add wavesurfer to a div that looks like this:

While container: this.$refs.waveform will look for a div that looks like this:

Are you writing container: "#waveform" or container: #waveform because there's a difference between the first and the second. The second will not work.
In your latest post you removed the id attribute.
container: "#waveform" will add wavesurfer to a div that looks like this:

While container: this.$refs.waveform will look for a div that looks like this:

My apology, I made a mistake on my last copy and paste. I re-edited the above post.

My apology, I made a mistake on my last copy and paste. I re-edited the above post.

Are you showing the full component? Are you using v-if somewhere to hide the
?
Refs should be available in the mounted hook, you can test this easily:
<template>

</template>

In my project I load WaveSufer the same way as you do and it works.

Are you showing the full component? Are you using v-if somewhere to hide the
?
Refs should be available in the mounted hook, you can test this easily:
<template>

</template>

In my project I load WaveSufer the same way as you do and it works.

Please give me till the weekend, and I will recheck it on my local machine as I am away at the moment.
I will keep you updated.
Thank you so much for your efforts :-)

Please give me till the weekend, and I will recheck it on my local machine as I am away at the moment.
I will keep you updated.
Thank you so much for your efforts :-)


Piper/track black and white overall rankings

What is the problem / feature ?

It'd be cool to know if your rating differed much depending on whether you played as black or as white.

How did it get fixed / implemented ?

Add independent tracking of player ratings as black and as white.
@nathanlubchenco what do you think about how this was implemented?  Is this approach sound?

How can someone test / see it ?

run ./manage.py recompute_ratings to re-run all ratings engines across all games.
The /player/:id/ratings/ endpoints should return all ratings so querying those will give you ratings with the new overall:black and overall:white ratings.

Here is a cute animal picture for your troubles...

did this get deployed?  may have broken things, getting 500s now...
was taking a look earlier and i think the general approach makes sense.  basically just have 3 different ratings for each player and then continue to use the same algorithm.


Add .env property to allow to set more Browser flags

I used the tool locally and I missed the following feature to set a custom browser path:
const createReports = async (endpoint, headers, events, urls, audit) => {
    const additionalBrowserFlags = {};
    if (process.env.BROWSER_PATH)
        additionalBrowserFlags['chromePath'] = process.env.BROWSER_PATH;

    const browser = await chromeLauncher.launch({
        chromeFlags: ['--headless'],
        ...additionalBrowserFlags,
    });
    ...
}

.env file:
...
BROWSER_PATH=C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe
...

A such configuration would allow to test with multiple Chromium based browser like in my case Edge.
What do you think? Would that be a proper enhancement?

Sounds good 😊 A PR is welcome!


ACR support damaged by Gitlab registry change

Bug description
I believe ACR support has been damaged by the Gitlab registry change in commit https://github.com/jupyterhub/binderhub/commit/f442f326320eaac68e08b663cac17055b615731a
Specifically this line:
## binderhub/registry.py:194

                url_concat(self.token_url, {"scope": "repository:{}:pull".format(image)}),
                url_concat(self.token_url, {
                    "scope": "repository:{}:pull".format(image),
                    "service": "container_registry"   # <-- this.  For ACRs, the documentation simply says inject what the specific CR nedes via token_url config ... for Gitlab, it's been hard-coded (and now breaks the instructions for ACRs).  That's my theory.
                }),

Expected behaviour
When following a Binderhub link, if a pre-built/cached image already exists in the ACR, I expect Binderhub to pull it, not rebuild from scratch.
Actual behaviour
Binderhub runs repo2docker and builds a new image, pushing it to the ACR.
The logs contain the following errors:
[I 230111 09:52:26 launcher:257] Starting server for user ****** with image ******.azurecr.io/******/******
[I 230111 09:52:29 builder:744] Launched ****** in 3s
[I 230111 09:53:02 log:135] 200 GET /v2/git/******/2cd69cb92c9fa36877786c4672158f343e2d1a79?urlpath=******.ipynb (anonymous@******) 2.64ms
[E 230111 09:53:02 builder:394] Tornado HTTP Timeout error: Failed to get image manifest for ******.azurecr.io/******/******:2cd69cb92c9fa36877786c4672158f343e2d1a79
    Traceback (most recent call last):
      File "/usr/local/lib/python3.9/site-packages/binderhub/builder.py", line 388, in get
        image_manifest = await self.registry.get_image_manifest(
      File "/usr/local/lib/python3.9/site-packages/binderhub/registry.py", line 263, in get_image_manifest
        token = await self._get_token(
      File "/usr/local/lib/python3.9/site-packages/binderhub/registry.py", line 221, in _get_token
        auth_resp = await client.fetch(auth_req)
    tornado.httpclient.HTTPClientError: HTTP 400: Bad Request

I believe this is due to the token_url configured (shown below) being partially overwritten - specifically the ?service= by the linked git commit above...
config:
  DockerRegistry:
    token_url: https://********.azurecr.io/oauth2/token?service=********.azurecr.io

(I suspect it is becoming https://********.azurecr.io/oauth2/token?service=container_registry.)
How to reproduce
Follow the instructions in Binderhub's installation docs for an ACR, and attempt to launch the same repository multiple times.
Observe the logs (and behaviour).
Your personal set up
Have installed via Helm:
config:
  BinderHub:
    hub_url: https://hub.binder.*********
    hub_url_local: http://<IP_ADDRESS>
    image_prefix: *********.azurecr.io/*********/binder-prod-
    use_registry: true
    build_image: *********.azurecr.io/repo2docker-ssh:latest
  DockerRegistry:
    token_url: https://*********.azurecr.io/oauth2/token?service=*********.azurecr.io
  RateLimiter:
    period_seconds: 5
  KubernetesBuildExecutor:
    # this is vanilla repo2docker with the openssh client installed.
    build_image: *********.azurecr.io/repo2docker-ssh:latest

extraVolumes:
  - name: pvc-ssh-config
    persistentVolumeClaim:
      claimName: pvc-ssh-config
extraVolumeMounts:
  - name: pvc-ssh-config
    mountPath: /root/.ssh

imageBuilderType: pink

jupyterhub:
  hub:
    services:
      binder:
        apiToken: *********
  imagePullSecret:
    create: true
    password: *********
    registry: *********.azurecr.io
    username: *********
  proxy:
    secretToken: *********

registry:
  password: *********
  url: https://*********.azurecr.io
  username: *********

We are using Helm chart version 1.0.0-0.dev.git.2937.h0f65f33.

Maybe we should make _get_image_basename_and_tag part of the Registry class so it can be specialised for particular registry implementations instead of trying to have it work with everything.

Can you suggest a fullname,basename,tag tuple we could add to this test?
https://github.com/jupyterhub/binderhub/blob/31149279def7e0183c6b4be76a7b1e5b1d016361/binderhub/tests/test_builder.py#L6-L37
You can anonymise it, but ideally make it as close as possible to a real case.

Can you suggest a fullname,basename,tag tuple we could add to this test?

I think this would be correct as an ACR example:
         (
             "myrepo.azurecr.io/myproject/prefix-myimage:latest",
             "myproject/prefix-myimage",
             "latest",
         ),

I'm not sure (unless the proposed _get_image_basename_and_tag will include dealing with the retrieval of authentication tokens?) this will cover what I suspect the specific issue is though.
In the logs, I can see a 400/Bad Request being returned by Azure when in the _get_token method of registry.py:
[E 230111 09:53:02 builder:394] Tornado HTTP Timeout error: Failed to get image manifest for ******.azurecr.io/******/******:2cd69cb92c9fa36877786c4672158f343e2d1a79
    Traceback (most recent call last):
      File "/usr/local/lib/python3.9/site-packages/binderhub/builder.py", line 388, in get
        image_manifest = await self.registry.get_image_manifest(
      File "/usr/local/lib/python3.9/site-packages/binderhub/registry.py", line 263, in get_image_manifest
        token = await self._get_token(
      File "/usr/local/lib/python3.9/site-packages/binderhub/registry.py", line 221, in _get_token
        auth_resp = await client.fetch(auth_req)
    tornado.httpclient.HTTPClientError: HTTP 400: Bad Request

I've been able to reproduce that in Postman using the following GET request:
https://binderhubacrpublic.azurecr.io/oauth2/token?service=binderhubacrpublic.azurecr.io&service=container_registry&scope=repository:IMAGE:pull

The URL has two service= query parameters, which I'm speculating is the result of the commit I linked in the description above.  My speculation of why this is happening is based on the (confirmed) behaviour of tornado.httputil.url_concat as used inside registry.py / _get_token, and Binderhub documentation for using ACRs saying you must specify ?service=<repo>:
https://binderhub.readthedocs.io/en/latest/zero-to-binderhub/setup-binderhub.html#id3 (section 3.3.3):

`token_url: "https://<ACR_NAME>.azurecr.io/oauth2/token?service=<ACR_NAME>.azurecr.io"`

A "fix", I think, would be to drop the offending line from registry.py as shown below and instruct users of Gitlab to specify token_url=https://.../?service=container_registry (as like we're instructed to do for ACRs in the documentation linked above):
## binderhub/registry.py:194

                url_concat(self.token_url, {"scope": "repository:{}:pull".format(image)}),
                url_concat(self.token_url, {
                    "scope": "repository:{}:pull".format(image)
   #### problematic line removed ####
                }),

I hope that makes some semblance of sense.  My brain is fried today!


Support for Darwin 22

When I try to install gvisor-tap-vsock on MacOS Ventura, it fails with the following error message in the main.log file.
:info:archivefetch --->  gvisor-tap-vsock-0.4.0_0.darwin_22.arm64.tbz2 doesn't seem to exist in /opt/local/var/macports/incoming/verified
19   │ :msg:archivefetch --->  Attempting to fetch gvisor-tap-vsock-0.4.0_0.darwin_22.arm64.tbz2 from https://packages.macports.org/gvisor-tap-vsock
20   │ :debug:archivefetch Fetching archive failed: The requested URL returned error: 404
Is there an estimation when the support for darwin22 is provided?
Thanks in advance

The gvisor-tap-vsock build in macports is not maintained here
https://ports.macports.org/port/gvisor-tap-vsock/details/
Can you file an issue against macports ? https://trac.macports.org/newticket?port=gvisor-tap-vsock

This ticket https://trac.macports.org/ticket/66152 should fix building gvisor-tap-vsock.


Fix/notion code block rendering

Fixes #270
Importing the component dynamically because if the notion content doesn't use one of these heavyweight components, then it won't get loaded into the page.
Screencast from 2024-03-24 16-26-20.webm

/bounty $50

Thanks a lot @hkirat!

ref: https://github.com/NotionX/react-notion-x


PR4: UI- Field values needs to be wrapped to avoid overflow

"Alaska Airlines<PHONE_NUMBER>0000005$"
It may happen that the value flow out of the display card. Also, value can be rounded.

HI,
haha, I hadn't noticed. This is good. We will fix it and let you know.
Thanks,
Alakh

Hi,
fixed it. Commit hash  6c07579e1636fc872db1169ace4cf766b86f4443
Thanks,
Alakh

Team,
Well Done. Good turnaround.
Closing this issue.
-Harish


Create new link based on a non nil LinkType :)

Codecov Report

Merging #1049 into master will decrease coverage by 0.15%.
The diff coverage is 0%.

@@            Coverage Diff             @@
##           master    #1049      +/-   ##
==========================================
- Coverage   60.14%   59.99%   -0.16%
==========================================
  Files         105      105
  Lines        9161     9161
==========================================
- Hits         5510     5496      -14
- Misses       3079     3092      +13
- Partials      572      573       +1

Impacted Files
Coverage Δ

migration/migration.go
49.38% <0%> (ø)
:arrow_up:

remoteworkitem/github.go
77.14% <0%> (-22.86%)
:arrow_down:

models/transaction.go
50% <0%> (-20%)
:arrow_down:

remoteworkitem/scheduler.go
53.65% <0%> (-9.76%)
:arrow_down:

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 ecf7f5a...c8511d0. Read the comment docs.


Revert "Diego client tries all bbs domain IPs"

Reverts cloudfoundry/cloud_controller_ng#3048

Relevant discussion on slack here


feat: allow configuring router as an exit node

what
Allow configuring router as exit node. Defaults to false.
why
Machines can be configured as exit nodes.
references

https://tailscale.com/kb/1103/exit-nodes?tab=linux

@gustavclausen Change looks great! Mind adjusting to the small request + regenerating the README? We try to have all bool (or at least all moving forward) using the _enabled postfix as it helps keep track when dealing with many variables.

Makes sense @Gowiem :+1: I've added the requested changes.


some questions about changing the image classification data set

If you change the data set, for example now the data set has 47 classes, what else to do but change nb_classes to 47 in main_finetune. Because only modify this final precision is not too high, I am not sure whether the 1000 here vocab_size = codebook_size + 1000 + 1 should be modified, and if modified, it will still report an error:
RuntimeError: Error(s) in loading state_dict for VisionTransformerMage:
size mismatch for token_emb.word_embeddings.weight: copying a param with shape torch.Size([2025, 768]) from checkpoint, the shape in current model is torch.Size([1072, 768]).

If you plan to finetune the ImageNet pre-trained MAGE on your dataset, you only need to change nb_classes to 47 in main_finetune. The performance can be poor for many reasons -- one reason could be your dataset is too far away from ImageNet image distribution. You could also consider adjusting the training epochs -- if your dataset is much smaller than ImageNet, you should increase the fine-tuning epochs.

If you plan to finetune the ImageNet pre-trained MAGE on your dataset, you only need to change nb_classes to 47 in main_finetune. The performance can be poor for many reasons -- one reason could be your dataset is too far away from ImageNet image distribution. You could also consider adjusting the training epochs -- if your dataset is much smaller than ImageNet, you should increase the fine-tuning epochs.

Excuse me, what is the reason why the accuracy rate can reach 78.6 at the beginning of fine tuning and hardly change during training? Is it because the data set is too small?

I think it is also bottlenecked by the vector quantization, which inevitably uses information about the image.

I think it is also bottlenecked by the vector quantization, which inevitably loses information about the image.

Thank you very much for your reply.  Do I need to retrain VQGAN?

Do you fine-tune it on ImageNet or another dataset? If it is another dataset, then you could first look at the reconstruction quality of VQGAN to see how much information it loses.

您是否在 ImageNet 或其他数据集上对其进行了微调？如果是其他数据集，那么您可以先查看 VQGAN 的重建质量，看看它丢失了多少信息。

Excuse me，This is the picture I reconstructed 1600epoch, do I need to retrain VQGAN?

What does the original image look like?

What does the original image look like?

What does the original image look like?

This is my original image

Unfortunately your uploaded image seems broken and I cannot view it.

不幸的是，您上传的图片似乎已损坏，我无法查看。

sorry

It seems the original image is quite different from the reconstructed one. I would say in this case you should re-train the VQGAN and MAGE on your own dataset.

看起来原始图像与重建的图像有很大不同。在这种情况下，我认为你应该在自己的数据集上重新训练 VQGAN 和 MAGE。

Thank you very much for your help. Have a nice life


New improved ghosting algorithm, plus various other changes

Ghosting: if configured to do so, and if the primary nick is already in use on connection, the plugin will send a NickServ ghost command and then reclaim the nick
Added the ability to specify custom regexes
Added the ability to specify custom NickServ nick
nickserv.identified event passes connection and event queue parameters to event callback
Removed the quit listener from Phergie2, which was broken anyway and not functionally compatible with the ghost feature; a fixed version of this functionality should be rewritten into a new NickRegain plugin

TODO:

Calling Connection::setNick() when a nick change is received corresponding to the bot is something that should ideally be processed by the client, not this plugin

Any particular reason for requiring phergie/phergie-irc-parser:~1.6?
Re: the TODO, I agree that this makes sense. Please file an issue and/or PR against the client repo.

Selection of numeric parameter by index... there's no way of resolving that specific dependency through phergie-irc-bot-react.

The only reason that's working is this minimum-stability:dev line, which should really be taken out at this point. Here's what I propose:

You confirm that phergie/phergie-irc-parser#25 is ready for merging.
I merge it and tag a new parser release.
You modify this PR that it:

removes minimum-stability:dev
requires the newly tagged parser version
requiresphpunit/phpunit:~4.6 and phake/phake:~2 (we're currently using phake/phake:2.0.0-beta2, which I think may have been part of the reason minimum-stability:dev was there to begin with: we needed a particular bug fix from that version).

I'll merge this PR.

Thoughts?

I agree with removing minimum-stability:dev, and will make those recommended changes, but the change the dependency exists for is actually phergie/phergie-irc-parser#16 (which is part of tag 1.6), not phergie/phergie-irc-parser#25.

https://github.com/Renegade334/phergie-irc-plugin-react-nickserv/blob/devel/src/Plugin.php#L132
There doesn't seem to be a handleQuit method?

Good catch.


address shared by uvicorn is not accessible

I have tried multiple browsers, but no luck, always a blank white screen is what it shows

Hi @lovishescobar! Can you please inform more details, like those below?

Browser and Version
To Reproduce (Step by Step)
Console log

You see the similar issues have been reported in the last 24 hours, others are being argued with the event that you are not able to reproduce the problem. I don't think that's the correct way to look at it. Why float something if doesn't work for all?

See if this is the root cause of the issue
https://stackoverflow.com/questions/59355194/python-flask-error-failed-to-load-module-script-strict-mime-type-checking-i

Hey, @lovishescobar.
What command have you used to run LangFlow?
If you don't provide more information we won't be able to help you.
Could you try loading http://localhost:7860?

langlow was the command
I have tried multiple browsers for that addresses, still the same issue
I have tried with docker compose as well, similar issue
steps to reproduce:
1)install langflow
2) run langflow
3) visit the provided address from any browser, same issue persists

Same problem here, followed the installation steps, used Python 3.10, tried both http://localhost:7860/ and http://<IP_ADDRESS>:7860/, and get an empty browser window. The favicon in the browser tab does load btw.
Running Windows 11, can reproduce the issue on both Chrome and Edge.

having the same issue as well.Anybody got an idea how to fix this?


Switched from getUri() to getRequestTarget()

Slim3 does weird stuff with their Http/Uri.php implementation. The normal "getPath()" will not return the expected path, at least if you run the embedded php webserver with a routerscript (Didn´t tried Apache or nginx). They use a "getBasePath()" method and this will return the correct path. This results in not matching any "files" and this in not loading the deps for the DebugBar.
So, to relay on getRequestTarget() should be an easy and framework independently fix.
Example:
$app = new \Slim\App();

$debugbar = new DebugBar\StandardDebugBar();
$debugbarRenderer = $debugbar->getJavascriptRenderer('/phpdebugbar');
$middleware = new PhpMiddleware\PhpDebugBar\PhpDebugBarMiddleware($debugbarRenderer);
$app->add($middleware);

$app->get('/', function ($request, $response, $args) {
    $response->getBody()->write(' Hello ');

    return $response;
});

$app->run();

Start the embedded php server with a router script
php -S <IP_ADDRESS>:8080 -t public/ public/index.php

I need some tests to be sure that's not break anything

Then feel free to write some tests and try?

But issue is still here, right?

Yep

@stahlstift Can you try #12 ?

Fixed in #12


Remove feature flag note from Analysis Guide

Summary
The Analysis with Keptn guide includes a note that the Analysis feature is hidden behind a feature flag.  This should be removed since this feature is included in all Keptn v2 releases.  The reference pages for the CRD's used for Analysis include the correct information in the "Differences between versions" sections.
#DoD

Note about feature flags for Analysis feature removed from the guide chapter.

I would like to work on this ! @StackScribe


Protos updated : how to user protoc-gen-php

Hello,
Protos has been updated (see https://github.com/keyphact/pgoapi and https://github.com/AeonLucid/POGOProtos/tree/master). You may update your POGOProtos submodule.
In the meantime, I need to compile new files. What terminal command do you use to generate all compiled files at once ? When I use protoc --php_out=. (...).proto with each file one by on, I got import error with some of them.

I can only speak for the test-protobuf branch with the "new" protobuf-plugin. There you can simply call compile.php and it does the job. I updated them in 94bafb3cd34e34b9cbe3dc1ef5c003bad1ca6699 just now if that helps you. Not tested yet, though.

Ok, thanks !

The current plan is to merge the test-protobuf into master. I can do it in a couple of days, but if you want DrDelay you can already do it

I may do that after some more testing. While I don't think that 94bafb3cd34e34b9cbe3dc1ef5c003bad1ca6699 introduced errors the "AuthTicket stream thing" should be looked at again.
As long as it is not tagged people requiring it via composer should not get conflicts. And due to being a BC-breaking change it would probably be get a new Major-version anyways, so "caret-users" are still good.


FIX Sort without specifying a table name

Using a table name in sort() is not allowed in CMS 5. We could use orderBy() here but member is the table it will sort on by default anyway so there's no need.
Also added unit tests, which should have caught this ages ago.
Parent issue

https://github.com/silverstripeltd/product-issues/issues/644#event-8403907821

The unit tests pass for me locally with kitchen sink installed.... it seems like there might be some extension which changes the Title value in kitchen sink. I'll test against the IDs of the members instead since all that matters is that they're the right members, not what the title of the member is.


Credits button overlaps content in a smaller browser window

The perils of testing on a big screen.

Fixed well enough in 363f5fa6b476d9fa77e7ecd6a52b40f2eb7622e8 by making the credits button position: fixed.

Ehhhhhhh... this can still happen, so I'll reopen this. It's good enough for most cases but it's also a good excuse to dip my toe into this "responsive" web design I've been hearing so much about if I'm in the mood.


Regenerated machine driver schemas.

@ibuildthecloud based on our chat on IRC I regenerated the schemas after updating the URL to point to my local rancher server  ./scripts/gen-schema.sh -l
You mentioned that there were some other steps that needed to be done besides sending a PR like changing the process of how the schemas are generated making sure the machine drivers are loaded.
In any case I'm opening the PR just to track the issue.
Please let me know if I need to modify any other bits to make the change permanently.

Very stale. Closing


Fixed httpUrlEncode description

As it encodes data.

httpUrlDecode also has the wrong description.. looks like they got flipped somehow

Thanks for your contribution @CornerPin :tada:


Add icon for 'AudioStreamMP3' resource

And by "add" I mean just use the same one from the other AudioStream* resources.

Note to self: remember to rename the icon when cherry-picking for 3.2.

Thanks!

Cherry-picked for 3.2.4.


docker daemon issue arises when running the sample codes in section Fragmentation

While following the tutorial for the section Fragmentation, the following docker related error rises up when trying to run the sample codes (the same error for each of them):
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

Unable to locate output file

Didn't get the time to dive in the code base for the possible solution yet & post this up to speed up the resolution

This should be fixed now. Thank you for the report!


Pagination

Hello graker, is it possible to use pagination on your plugin? How to do that, if its possible? Pls give me a tutoruial.. Thanks

Also, is it possible to use custom tumbnail for each album?

Hi @BahtiyarDhani , yes, pagination is supported for albums list component (to go through albums) and for album component (to go through photos). Amount of albums/photos on page is controlled by albumsOnPage and photosOnPage properties of albums list and album components. Just add component to a page, set property on the component and it should work out of the box. You can find pagination markup inside component partials in graker/photoalbums/components/album/default.html and graker/photoalbums/components/albumlist/default.htm.
Also there is mini-navigation in photo component to go to next/previous photo.

Also, is it possible to use custom tumbnail for each album?

Nope. At the moment, the last uploaded photo will be used as album thumbnail automatically. Photo reordering interface is on the way and in the roadmap, but I can't tell right now when it will be available.
For now you can only "select" the thumbnail by uploading it after every other photo.

In case you are interested, I've implemented a feature allowing to select any photo in the album to be it's front thumbnail. You can check it out by updating the code and running php artisan october:up to migrate the new front column in albums table.

Hi Graker,
Wow cool, thanks for updating your plugin.
Regards,
Dhani
On May 1, 2017 20:31, "Graker"<EMAIL_ADDRESS>wrote:

In case you are interested, I've implemented a feature allowing to select
any photo in the album to be it's front thumbnail. You can check it out by
updating the code and running php artisan october:up to migrate the new
front column in albums table.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/graker/photoalbums/issues/1#issuecomment-298333765,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AIdTTliR4hAbAK7AMn7oXqos1XdXFTm1ks5r1d6agaJpZM4Mb__J
.


RFC: Better e2e testing

Right now we use our controller integration tests as e2e tests, but they widely differ in what they actually test. Some mock out just about everything and try to be it a unit test, while others mock next to nothing.
We also run into the issue that while PHPUnit is great for unit tests, its maybe not the best choice for e2e testing. I think we may greatly benefit from something like behat to do these kind of big tests.

Some options that i found

Codeception
Behat
StoryPlayer

We used to have a Behat suite (that I used originally to give me some stability while making large changes). I would prefer it to Codeception.
TBH, I think we go test crazy on controllers and a good, solid and readable e2e test would better express the behaviours we're after. The fact that we have like 90km of mock for 1m of test is a signal I think.
I would personally be very-much behind a Behat-based e2e suite as long as it described behaviour, not over-specification / over-use of "browser-based clicky clicky". IMO, that "clicky clicky" belongs in the Context, while Gherkin should clearly describe behaviour that happens to implemented via web interface (or an ApiContext). Same behaviour (Gherkin) in multiple contexts (WebContext, ApiContext)


The item-template name should be accessible in navigateScreen inputs

Describe the bug
For now we are not able to access item-template name ( data key ) in sub-sequent events like onResponse, onTap etc in case for DataGrid
This is for DataGrid specifically.
To Reproduce

Take a DataGrid and on DataRow call an onTap event
now we can simply use execute code and it will work fine and show item-template name data
Now try to use navigateScreen and this item-template name property wont be accessible in its inputs.

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

updates to this issue i was trying to access data property from DataRow's onTap in subsequent events and was not able to access it.

This works fine for executeCode block and scriptName as well if they are directly under onTap otherwise this version

item-template:
              data: ensemble.storage.get("patients")
              name: incompleteTask
              template:
                DataRow:
                  onTap:
                    invokeApi:
                      name: getPatientByMrn
                      inputs:
                        mrn: ${data.incompleteTask.patientId[0].patientMrn}
                      onResponse:
                        executeCode:
                          scriptName: rowClickHandler.js
                          onComplete:
                            navigateScreen:
                              name: PostEnrollment
                              inputs:
                                patient: ${ensemble.storage.get('currentPatient')}
                                options: ${ensemble.storage.get("options")}
                                program: ${ensemble.storage.get('program')}
                                isPostEnroll: true

does not work
in rowClickHandler.js
console.log('Patients', data);
i get undefined for this


[Extractor] Extract Authorization Server entities if used in API authentication settings

Would be nice to have the Authorization Server as separate file


Show advanced transaction summaries

Some funky transactions.

The frontend throwing errors was a good guide while working on this. But I may not have hit every possible configuration. Should I remove the remaining throws from the components so they never crash?
The wording like past tense and that large limit number can be massaged by changing the server. That will come in another PR.
For trust lines, producing rows that look like this is not what this PR does. That could be its own ticket

Sometimes there's a "Sender", sometimes not.

Looks good!
The main thing would be for the details interface to show a line for each operation when there is a multiple operation transaction.  (stellarx "purchases" have about 3 operations in them, if that's helpful)


Cilium - Problems using recorder feature

Hi all,
First of all, not quite sure if its a bug or maybe lack of documentation or my fault (tried first slack without success).
I was searching a way to make a pcap and what cilium had to offer, i found:
https://docs.cilium.io/en/stable/cmdref/cilium_bpf_recorder/
But i from what i was able to understand that only applies with we use XDP.
Then i found:
https://docs.cilium.io/en/stable/cmdref/cilium_recorder_update/
After i enable '--enable-recorder' i saw:

root@node1:~# kci exec -ti cilium-xtmv6  exec --  cilium recorder update --id 1 --filters '<IP_ADDRESS>/0 0 <IP_ADDRESS>/32 80 TCP' --caplen 0
Defaulted container "cilium-agent" out of: cilium-agent, mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), clean-cilium-state (init)
Creating new recorder with id '1'
Added recorder with 1 filter

root@node1:~# kci exec -ti cilium-xtmv6  exec --  cilium recorder list
Defaulted container "cilium-agent" out of: cilium-agent, mount-cgroup (init), apply-sysctl-overwrites (init), mount-bpf-fs (init), clean-cilium-state (init)
ID   Capture Length   Wildcard Filters
1    full             <IP_ADDRESS>/0:0        ->   <IP_ADDRESS>/32:80   TCP

Users   Priority      Wildcard Masks
1       56            00000000:0       ->   ffffffff:ffff   ff

But i can't find the pcap anywhere, from cilium logs i can see:
level=info msg="  --hubble-recorder-storage-path='/var/run/cilium/pcaps'" subsys=daemon
But i dont see it in the host or pod, is there any documentation or how this should work?
Is it possible to do a cluster wide pcap? or is always cilium agent per cilium agent, so node by node?
Thanks,

Hello, the Cilium agent args need to be:   --enable-recorder=true --enable-hubble=true --enable-hubble-recorder-api=true, and then you should be able to use Hubble hubble record "<IP_ADDRESS>/0 0 <IP_ADDRESS>/0 0 TCP" --time-limit 1s which produces a pcap.

Hi,
I have:
cilium-agent --config-dir=/tmp/cilium/config-map --enable-recorder --enable-hubble-recorder-api
And in cilium configmap:
enable-hubble:
----
true

When i try o use it via hubble i get:
root@node1:/opt/manifest/helm_charts# hubble record "<IP_ADDRESS>/0 0 <IP_ADDRESS>/32 80 TCP"
Started recording. Press CTRL+C to stop.
rpc error: code = Unimplemented desc = unknown service recorder.Recorder

hubble --version
hubble v0.11.1

Thanks,

Are you running with XDP? See example here: https://github.com/cilium/cilium/pull/18592

Also, the Hubble Recorder API is only available when connecting to the local unix domain socket (hubble record --server unix:///var/run/cilium/hubble.sock`) . Notably, it's not available via Hubble Relay.

no XDP:
XDP Acceleration:       Disabled

A potential cause could be that the Hubble Recorder API is only available when connecting to the local unix domain socket (hubble record --server unix:///var/run/cilium/hubble.sock) . Notably, it's not available via Hubble Relay.

That may be what is missing:
root@node1:/opt/manifest/helm_charts# hubble record "<IP_ADDRESS>/0 0 <IP_ADDRESS>/32 80 TCP" --server unix:///var/run/cilium/hubble.sock
Started recording. Press CTRL+C to stop.
2023-02-01T18:15:35Z Status: 0 packets (0 bytes) written
^CStopping recording...

2023-02-01T18:16:30Z Result: 0 packets (0 bytes) written
2023-02-01T18:16:30Z Output: /var/run/cilium/pcaps/hubble_1675275335_1045676380_k3s-cluster_node1.pcap

root@node1:/opt/manifest/helm_charts# ls -ltr /var/run/cilium/pcaps/hubble_1675275335_1045676380_k3s-cluster_node1.pcap
-rw------- 1 root root 24 Feb  1 18:15 /var/run/cilium/pcaps/hubble_1675275335_1045676380_k3s-cluster_node1.pcap

What is the expect result when we run this record via hubble, where the "sniffing" will be running? Only in the local node? or cluster?
For example in this example "<IP_ADDRESS>/0 0 <IP_ADDRESS>/32 80 TCP", the expected is to have a pcap from node1 only or from all nodes?
Thanks,

The recorder currently only supports capturing on a single node. Cluster-wide capture via Relay has been discussed, but we don't have a good API design yet, since recording creates (potentially expensive) state on each node that needs to be properly managed. In addition, if I recall correctly, there are also limitations what kind of concurrent capture masks are supported, which limits the usability for concurrent captures and also needs a bit more API design to workaround.

Hi,
Seems that something is still missing, i m able to see the pcap running, file is created but is empty.
I m running the recorder in the client node. I even tried to set the dst to any IP and any port, but still does not work, i always get empty file.
root@node1:~# kn get services
NAME                     TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)        AGE
nginx-service            ClusterIP   <IP_ADDRESS>   <none>        80/TCP         18d

root@node1:~# kn get pods -o wide
NAME                                  READY   STATUS    RESTARTS        AGE     IP            NODE    NOMINATED NODE   READINESS GATES
client-deployment-bfbb8b74f-ngb5z     1/1     Running   2 (5d17h ago)   5d22h   <IP_ADDRESS>    node2   <none>           <none>
client-deployment-bfbb8b74f-nmdgk     1/1     Running   1 (5d18h ago)   5d22h   <IP_ADDRESS>   node1   <none>           <none>
client2-deployment-795b6b6995-79x5k   1/1     Running   45 (35m ago)    17d     <IP_ADDRESS>   node1   <none>           <none>
client2-deployment-795b6b6995-hsf7m   1/1     Running   2 (5d17h ago)   5d22h   <IP_ADDRESS>    node2   <none>           <none>
nginx-deployment-5bc5c8896f-6v6fr     1/1     Running   4 (5d20h ago)   7d20h   <IP_ADDRESS>     node2   <none>           <none>
nginx-deployment-5bc5c8896f-dxlzx     1/1     Running   0               4d12h   <IP_ADDRESS>   node3   <none>           <none>

root@node2:~# hubble record "<IP_ADDRESS>/0 0 <IP_ADDRESS>/32 80 TCP" --server unix:///var/run/cilium/hubble.sock
Started recording. Press CTRL+C to stop.
2023-02-02T23:41:59Z Status: 0 packets (0 bytes) written

kn exec -ti client-deployment-bfbb8b74f-ngb5z -- curl <IP_ADDRESS>

Welcome

Hi! I was able to reach you

</html
root@node1:~#

root@node2:~# ls -ltr /var/run/cilium/pcaps/hubble_1675381475_3614373319_k3s-cluster_node2.pcap
-rw------- 1 root root 24 Feb  2 23:44 /var/run/cilium/pcaps/hubble_1675381475_3614373319_k3s-cluster_node2.pcap

Any ideas?


Upgrading SOPS to latest release

SOPS got moved to the CNCF.
The old module path cannot be used anymore, the tidy message is clear on
this:
❯ go mod tidy
go<EMAIL_ADDRESS>parsing go.mod:
	module declares its path as: github.com/getsops/sops/v3
	        but was required as: go.mozilla.org/sops/v3

So I changed the module name and ran go mod tidy.
Signed-off-by: Zoltán Reegn<EMAIL_ADDRESS>

Release notes: https://github.com/getsops/sops/releases/tag/v3.8.0

@reegnz please fix lint error.

Duplicate of #168

Sorry @lucasfcnunes your PR missed my attention. Thanks for fixing the google sdk deprecation though!
@yxxhero the fix in #171 is supposed to have fixed the linter errors.

@yxxhero use this PR jnstead of mine.


Make a PR to add OrderedSet in Pharo

Make a PR to add OrderedSet in Pharo

Deprecated by: https://github.com/OpenSmock/OpenSmock/issues/9


react-native svg color change in css?

Does anyone know how to change SVG color in react-native through yarn?

This makes no sense. yarn is completely unrelated. There's no such thing as SVG color, and there are no css selectors in react-native.