text:
NumberFormatExceptions followed by  "snapshot name is in use for volume ..."

I'm trying to setup snapshot shipping via CSI (https://github.com/piraeusdatastore/linstor-csi/pull/142) without much success. Most recently I had a flood of errors around parse failures, but there's not enough detail to figure out what it's failing to parse. I thought maybe it had something to do with my VolumeClassName ("linstor.minio") having a period in the name maybe throwing off parsing, but I was able to create another backup (from a significantly smaller volume) using the same class. This all might be a red herring...
It seems after these NumberFormatExceptions happen the system gets into a mixed up state as you can see below -- namely it tries to re-assign an existing snapshot name to a different PVC.
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
  creationTimestamp: "2022-08-29T08:31:01Z"
  finalizers:
  - snapshot.storage.kubernetes.io/volumesnapshot-as-source-protection
  - snapshot.storage.kubernetes.io/volumesnapshot-bound-protection
  generateName: velero-vmsingle-vm-victoria-metrics-k8s-stack-
  generation: 1
  labels:
    velero.io/backup-name: linstor-20220829080004
  name: velero-vmsingle-vm-victoria-metrics-k8s-stack-844m6
  namespace: prometheus
  resourceVersion: "56560018"
  uid: 17660871-6cf4-4d07-8c11-8c9f5922625a
spec:
  source:
    persistentVolumeClaimName: vmsingle-vm-victoria-metrics-k8s-stack
  volumeSnapshotClassName: linstor.minio
status:
  boundVolumeSnapshotContentName: snapcontent-17660871-6cf4-4d07-8c11-8c9f5922625a
  error:
    message: 'Failed to check and update snapshot content: failed to take snapshot
      of the volume pvc-7ca5e665-9bd1-4f9d-8209-92dcb8474edf: "rpc error: code = AlreadyExists
      desc = can''t use \"snapshot-17660871-6cf4-4d07-8c11-8c9f5922625a\" for snapshot
      name for volume \"pvc-7ca5e665-9bd1-4f9d-8209-92dcb8474edf\", snapshot name
      is in use for volume \"pvc-157c3fce-5720-4ca0-ba11-e2cab638ea93\""'
    time: "2022-08-29T14:58:59Z"
  readyToUse: false

pvc-157c3fce-5720-4ca0-ba11-e2cab638ea93 is indeed another volume that was snapshotted around the same time as this one. Is there perhaps a race condition where creating multiple snapshots around the same time can cause names to not be unique?

# linstor err l
| 630C4D06-00000-000045 | 2022-08-29 13:29:19 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000046 | 2022-08-29 13:29:19 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000047 | 2022-08-29 13:30:30 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000048 | 2022-08-29 13:30:30 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000049 | 2022-08-29 13:31:19 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000050 | 2022-08-29 13:31:19 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000051 | 2022-08-29 13:38:20 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000052 | 2022-08-29 13:38:20 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000053 | 2022-08-29 13:53:45 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000054 | 2022-08-29 13:53:45 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000055 | 2022-08-29 14:00:40 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000056 | 2022-08-29 14:00:40 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000057 | 2022-08-29 14:04:54 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000058 | 2022-08-29 14:04:54 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000059 | 2022-08-29 14:08:40 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000060 | 2022-08-29 14:08:40 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000061 | 2022-08-29 14:08:41 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000062 | 2022-08-29 14:08:41 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000063 | 2022-08-29 14:16:47 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000064 | 2022-08-29 14:16:47 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000065 | 2022-08-29 14:21:52 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000066 | 2022-08-29 14:21:52 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000067 | 2022-08-29 14:26:04 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: For input string: ".2022022E4.2022022E4"              |
| 630C4D06-00000-000068 | 2022-08-29 14:28:44 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000069 | 2022-08-29 14:28:44 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000070 | 2022-08-29 14:30:09 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000071 | 2022-08-29 14:30:09 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000072 | 2022-08-29 14:31:58 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000073 | 2022-08-29 14:31:58 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000074 | 2022-08-29 14:44:20 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |
| 630C4D06-00000-000075 | 2022-08-29 14:44:20 | C|piraeus-op-cs-controller-5b8ff7f4c8-lfbk2 | NumberFormatException: multiple points                                       |

# linstor err show (multiple points)
ERROR REPORT 630C4D06-00000-000066

============================================================

Application:                        LINBIT�� LINSTOR
Module:                             Controller
Version:                            1.19.1
Build ID:                           a758bf07796c374fd2004465b0d8690209b74356
Build time:                         2022-07-27T06:36:54+00:00
Error time:                         2022-08-29 14:21:52
Node:                               piraeus-op-cs-controller-5b8ff7f4c8-lfbk2

============================================================

Reported error:
===============

Category:                           RuntimeException
Class name:                         NumberFormatException
Class canonical name:               java.lang.NumberFormatException
Generated at:                       Method 'readJavaFormatString', Source file 'FloatingDecimal.java', Line #1890

Error message:                      multiple points

Call backtrace:

    Method                                   Native Class:Line number
    readJavaFormatString                     N      jdk.internal.math.FloatingDecimal:1890
    parseDouble                              N      jdk.internal.math.FloatingDecimal:110
    parseDouble                              N      java.lang.Double:543
    getDouble                                N      java.text.DigitList:169
    parse                                    N      java.text.DecimalFormat:2126
    subParse                                 N      java.text.SimpleDateFormat:1931
    parse                                    N      java.text.SimpleDateFormat:1541
    parse                                    N      java.text.DateFormat:393
    <init>                                   N      com.linbit.linstor.backupshipping.S3MetafileNameInfo:46
    listBackups                              N      com.linbit.linstor.core.apicallhandler.controller.backup.CtrlBackupApiCallHandler:679
    lambda$listBackups$0                     N      com.linbit.linstor.api.rest.v1.Backups:304
    doInScope                                N      com.linbit.linstor.api.rest.v1.RequestHelper:231
    doInScope                                N      com.linbit.linstor.api.rest.v1.RequestHelper:203
    listBackups                              N      com.linbit.linstor.api.rest.v1.Backups:298
    invoke                                   N      jdk.internal.reflect.GeneratedMethodAccessor194:unknown
    invoke                                   N      jdk.internal.reflect.DelegatingMethodAccessorImpl:43
    invoke                                   N      java.lang.reflect.Method:566
    lambda$static$0                          N      org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory:52
    run                                      N      org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1:124
    invoke                                   N      org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher:167
    doDispatch                               N      org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker:176
    dispatch                                 N      org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher:79
    invoke                                   N      org.glassfish.jersey.server.model.ResourceMethodInvoker:469
    apply                                    N      org.glassfish.jersey.server.model.ResourceMethodInvoker:391
    apply                                    N      org.glassfish.jersey.server.model.ResourceMethodInvoker:80
    run                                      N      org.glassfish.jersey.server.ServerRuntime$1:253
    call                                     N      org.glassfish.jersey.internal.Errors$1:248
    call                                     N      org.glassfish.jersey.internal.Errors$1:244
    process                                  N      org.glassfish.jersey.internal.Errors:292
    process                                  N      org.glassfish.jersey.internal.Errors:274
    process                                  N      org.glassfish.jersey.internal.Errors:244
    runInScope                               N      org.glassfish.jersey.process.internal.RequestScope:265
    process                                  N      org.glassfish.jersey.server.ServerRuntime:232
    handle                                   N      org.glassfish.jersey.server.ApplicationHandler:680
    service                                  N      org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer:356
    run                                      N      org.glassfish.grizzly.http.server.HttpHandler$1:200
    doWork                                   N      org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker:569
    run                                      N      org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker:549
    run                                      N      java.lang.Thread:829

END OF ERROR REPORT.

# linstor err show (For input string)
ERROR REPORT 630C4D06-00000-000067

============================================================

Application:                        LINBIT�� LINSTOR
Module:                             Controller
Version:                            1.19.1
Build ID:                           a758bf07796c374fd2004465b0d8690209b74356
Build time:                         2022-07-27T06:36:54+00:00
Error time:                         2022-08-29 14:26:04
Node:                               piraeus-op-cs-controller-5b8ff7f4c8-lfbk2

============================================================

Reported error:
===============

Category:                           RuntimeException
Class name:                         NumberFormatException
Class canonical name:               java.lang.NumberFormatException
Generated at:                       Method 'readJavaFormatString', Source file 'FloatingDecimal.java', Line #2054

Error message:                      For input string: ".2022022E4.2022022E4"

Call backtrace:

    Method                                   Native Class:Line number
    readJavaFormatString                     N      jdk.internal.math.FloatingDecimal:2054
    parseDouble                              N      jdk.internal.math.FloatingDecimal:110
    parseDouble                              N      java.lang.Double:543
    getDouble                                N      java.text.DigitList:169
    parse                                    N      java.text.DecimalFormat:2126
    subParse                                 N      java.text.SimpleDateFormat:1931
    parse                                    N      java.text.SimpleDateFormat:1541
    parse                                    N      java.text.DateFormat:393
    <init>                                   N      com.linbit.linstor.backupshipping.S3MetafileNameInfo:46
    listBackups                              N      com.linbit.linstor.core.apicallhandler.controller.backup.CtrlBackupApiCallHandler:679
    lambda$listBackups$0                     N      com.linbit.linstor.api.rest.v1.Backups:304
    doInScope                                N      com.linbit.linstor.api.rest.v1.RequestHelper:231
    doInScope                                N      com.linbit.linstor.api.rest.v1.RequestHelper:203
    listBackups                              N      com.linbit.linstor.api.rest.v1.Backups:298
    invoke                                   N      jdk.internal.reflect.GeneratedMethodAccessor194:unknown
    invoke                                   N      jdk.internal.reflect.DelegatingMethodAccessorImpl:43
    invoke                                   N      java.lang.reflect.Method:566
    lambda$static$0                          N      org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory:52
    run                                      N      org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1:124
    invoke                                   N      org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher:167
    doDispatch                               N      org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker:176
    dispatch                                 N      org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher:79
    invoke                                   N      org.glassfish.jersey.server.model.ResourceMethodInvoker:469
    apply                                    N      org.glassfish.jersey.server.model.ResourceMethodInvoker:391
    apply                                    N      org.glassfish.jersey.server.model.ResourceMethodInvoker:80
    run                                      N      org.glassfish.jersey.server.ServerRuntime$1:253
    call                                     N      org.glassfish.jersey.internal.Errors$1:248
    call                                     N      org.glassfish.jersey.internal.Errors$1:244
    process                                  N      org.glassfish.jersey.internal.Errors:292
    process                                  N      org.glassfish.jersey.internal.Errors:274
    process                                  N      org.glassfish.jersey.internal.Errors:244
    runInScope                               N      org.glassfish.jersey.process.internal.RequestScope:265
    process                                  N      org.glassfish.jersey.server.ServerRuntime:232
    handle                                   N      org.glassfish.jersey.server.ApplicationHandler:680
    service                                  N      org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer:356
    run                                      N      org.glassfish.grizzly.http.server.HttpHandler$1:200
    doWork                                   N      org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker:569
    run                                      N      org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker:549
    run                                      N      java.lang.Thread:829

END OF ERROR REPORT.

Weird. Since the error seems to be in listBackups (which gets called by the CSI driver on creation) I assume it's not actually about any snapshot it tries to create, but about what files already exist in the bucket. This looks like an issue that needs to be fixed upstream: https://github.com/LINBIT/linstor-server/issues

Running with --log-level=debug shed a little more light on this...
time="2022-09-02T02:10:03Z" level=debug msg="no snapshot matching id found, trying backups" func="github.com/piraeusdatastore/linstor-csi/pkg/client.(*Linstor).snapOrBackupById" file="/src/pkg/client/linstor.go:1367" id=snapshot-6b4f6adb-7a82-4d2f-a72c-2bc987d70dba linstorCSIComponent=client
time="2022-09-02T02:10:03Z" level=debug msg="curl -X 'GET' -H 'Accept: application/json' 'https://piraeus-op-cs.piraeus.svc:3371/v1/remotes/s3'"
time="2022-09-02T02:10:03Z" level=debug msg="listing backups in remote" func="github.com/piraeusdatastore/linstor-csi/pkg/client.(*Linstor).snapOrBackupById" file="/src/pkg/client/linstor.go:1377" id=snapshot-6b4f6adb-7a82-4d2f-a72c-2bc987d70dba linstorCSIComponent=client remote=minio
time="2022-09-02T02:10:03Z" level=debug msg="curl -X 'GET' -H 'Accept: application/json' 'https://piraeus-op-cs.piraeus.svc:3371/v1/remotes/minio/backups?snap_name=snapshot-6b4f6adb-7a82-4d2f-a72c-2bc987d70dba'"

time="2022-09-02T02:10:03Z" level=debug msg="found existing snapshot" func=github.com/piraeusdatastore/linstor-csi/pkg/driver.Driver.CreateSnapshot file="/src/pkg/driver/driver.go:965" existingSnapshot="snapshot_id:\"snapshot-dc295533-ba78-4e3f-b110-54175f1386f1\" source_volume_id:\"pvc-621a06d8-0503-4cf3-84af-d75e1bf40508\" creation_time:<seconds:1662034561 > " linstorCSIComponent=driver nodeID=pi4c provisioner=linstor.csi.linbit.com requestedSnapshotName=snapshot-1a9289d2-b984-4527-baf4-522b42908e0e requestedSnapshotSourceVolume=pvc-d2ec0c0d-f114-4fe2-9c30-a56279e356b6 version=v0.20.0-d514e41db7cdcb580769cc69f1c1ef2b8a5def5d

That last line is interesting... It queries for a backup with snap_name=snapshot-6b4f6adb-7a82-4d2f-a72c-2bc987d70dba and it gets a result... but that result is a totally different one (snapshot-dc295533-ba78-4e3f-b110-54175f1386f1) than the one it asked for?
Furthermore the snapshot returned is unrecoverable. That should at least unblock me (I can delete it), although I'm surprised it wasn't deleted/cleaned up automatically (it was totally hidden, which is as good as deleted, anyway).
root@piraeus-op-cs-controller-5b8ff7f4c8-nqns5:/# linstor backup l minio -s snapshot-6b4f6adb-7a82-4d2f-a72c-2bc987d70dba -p
+------------------------------------------------------------------------------------------------------------------------------------+
| Resource                                 | Snapshot                                      | Finished at | Based On | Status         |
|====================================================================================================================================|
| pvc-621a06d8-0503-4cf3-84af-d75e1bf40508 | snapshot-dc295533-ba78-4e3f-b110-54175f1386f1 |             |          | Not restorable |
+------------------------------------------------------------------------------------------------------------------------------------+

What's still confusing me (and where there's maybe room for the CSI to improve) is why this UUID keeps getting recycled for so many different volumes. I know very little about CSI, but naively it seems like each snapshot request should have its own UUID, making collisions like this impossible. The only way I can see that happening is if [CompatibleSnapshotId](https://github.com/piraeusdatastore/linstor-csi/blob/e2004362628ccb71d38b8b9f054d70cebef864c6/pkg/client/linstor.go#L703) gets the same invalid name for multiple snapshots... some of my PVCs do have identical names, if that's relevant?

@WanzenBug take a look at https://github.com/LINBIT/linstor-server/pull/314 -- the presence of any backups in the cluster completely breaks snapshotting.

authors: WanzenBug blampe

repo: piraeusdatastore/linstor-csi


text:
VM use DHCP instead of static IP adresses as expected

Hi,
before the commit 7f3370968c962ea2d733314fddc2b336b305f358 everything was OK.
Now when I deploy a cluster with virtualbox provider (I configured a DHCP serveur inside virtualbox in the subnet 172.17.8.x-49/99), nodes use IP provided by the DHCP instead of 172.17.8.101 (master) and so on for minions.
P.S. I don't used the sync file, so all is by default.
Tell me if you need more information to reproduce the problem.

@ggarson :cry:
afaict none of the changes at the above commit in the Vagrantfile should ever change the way the vagrant/hypervisor networking was going on.
so, the issue persists if you just disable (per the README) the 'native' VirtualBox DHCP ? ( VBoxManage dhcpserver remove --netname HostInterfaceNetworking-vboxnet0 )

In fact there is no issue if I disable it (I did it as a workaround) but before it was working event if the DHCP was enabled.
In fact I use another virtual machine (or more) in virtualbox in the subnet 172.18.8.0 to access directly to my coreos host. And there virtual machines are configured to use a dhcp.
So it's not really an issue but more precisely a regression. Someone was faced of the same problem than me on irc chan of Kubernetes.

@ggarson @AntonioMeireles there are many issues coming up with that merge and I'm currently removing them, but since the PR had so many things - my bad! - it's hard to revert. Am working on it as we speak.

i believe you i just have no freaking idea of what triggered this change of behaviour. will digg. (btw if you use old CoreOS alpha images - issue persists ? (just to make sure that this isn't some upstream change)

I use the last alpha images for days and I was only a problem this morning after the git pull... I reinstall my clusters few times by day

@ggarson working on a hotfix as we speak. Please bear with me ;-)

@pires don't worry, you are doing a great job ;)

@ggarson thanks for your kind words. Can you please try it out now and let me know?

It's OK for the DHCP issue.
Thanks @pires

Awesome @ggarson! Thanks for your feedback man.
On Mar 18, 2015 19:38, "ggarson" notifications@github.com wrote:

It's OK for the DHCP issue.
Thanks @pires https://github.com/pires
—
Reply to this email directly or view it on GitHub
https://github.com/pires/kubernetes-vagrant-coreos-cluster/issues/47#issuecomment-83134353
.

source: gharchive/issue

authors: AntonioMeireles ggarson pires

repo: pires/kubernetes-vagrant-coreos-cluster

license_type: permissive

license_source: bigquery


text:
Library returns default value for each second request

I noticed strange thing - library returns some default value for each even request. For example, -23 for ambient air temp and engine coolant temp, -1 for RPM and 17 for speed. I copied the OBD service from the sample project. Also, sample project returns the same values. Is it the issue in library or I should handle defaults by myself?

Where do you see the code that returns those default values?

authors: pires skayred

repo: pires/obd-java-api


text:
Add a test to check end of stream reached (i.e. read() returns -1)

I did this chanes because of endless loops on PC when OBD device is connected to PC, but NOT to the car. (endless loop with read() returning -1)
More generally, checking for end of stream seems quite standard.
Can you please review?
KR,
Pascal

Why do we need comments like fix proposed? Either it's a PR ready for merge or it's not. So far, your solution doesn't seem to break a thing. Can you please add tests?

Sorry, I am not used to Git pull request :/ (will remove 'fix proposed' stuff)
Not sure how to write tests...
Anyway, I'll do test on Raspberry II and let you know when everything is OK.

Why the two commits with same logs?

Bad copy paste. Sorry about that.
On 25 August 2015 at 14:39, Paulo Pires notifications@github.com wrote:

Why the two commits with same logs?
—
Reply to this email directly or view it on GitHub
https://github.com/pires/obd-java-api/pull/60#issuecomment-134572013.

FYI, Did tests (OBD reader not connected to car and connected to car) : everything is OK.

Well, original code was like this.. you tell me ;-)

@pdalfarr here's the original code:
protected void readRawData(InputStream in) throws IOException {
        byte b = 0;
        StringBuilder res = new StringBuilder();

        // read until '>' arrives OR end of stream reached
        char c;
        while(true)
        {
      	  b = (byte) in.read();
      	  if(b == -1) // -1 if the end of the stream is reached
      	  {
      		  break;
      	  }
      	  c = (char)b;
      	  if(c == '>') // read until '>' arrives
      	  {
      		  break;
      	  }
      	  res.append(c);
        }

    /*
     * Imagine the following response 41 0c 00 0d.
     *
     * ELM sends strings!! So, ELM puts spaces between each "byte". And pay
     * attention to the fact that I've put the word byte in quotes, because 41
     * is actually TWO bytes (two chars) in the socket. So, we must do some more
     * processing..
     */
        rawData = res.toString().replaceAll("SEARCHING", "");

    /*
     * Data may have echo or informative text like "INIT BUS..." or similar.
     * The response ends with two carriage return characters. So we need to take
     * everything from the last carriage return before those two (trimmed above).
     */
        //kills multiline.. rawData = rawData.substring(rawData.lastIndexOf(13) + 1);
        rawData = rawData.replaceAll("\\s", "");//removes all [ \t\n\x0B\f\r]
    }

Can you tell me where in this code we're skipping spaces?
Anyway, if there's no reason for having  if(c != ' ') // skip ' ', please remove it, squash your commits and I'll merge.

Hi,
Here is the original code from I got from your repository:
@Override
protected void readRawData(InputStream in) throws IOException {
    byte b = 0;
    StringBuilder res = new StringBuilder();

    // read until '>' arrives
    while ((char) (b = (byte) in.read()) != '>') {
        if ((char) b != ' ') {
            res.append((char) b);
        }
    }

    rawData = res.toString().trim();

}

Hi,
Are you sure you checked the right file? Or maybe something is not right on my fork....?
What Is  'see' from my side seeems ok (i.e., no space skipped in OdbCommand)
1 - In https://github.com/pdalfarr/obd-java-api/blob/master/src/main/java/com/github/pires/obd/commands/ObdCommand.java: NO spaces skipped:
protected void readRawData(InputStream in) throws IOException {
    byte b = 0;
    StringBuilder res = new StringBuilder();

    // read until '>' arrives OR end of stream reached
    char c;
    while(true)
    {
  	  b = (byte) in.read();
  	  if(b == -1) // -1 if the end of the stream is reached
  	  {
  		  break;
  	  }
  	  c = (char)b;
  	  if(c == '>') // read until '>' arrives
  	  {
  		  break;
  	  }
  	  res.append(c);
    }

/*
 * Imagine the following response 41 0c 00 0d.
 *
 * ELM sends strings!! So, ELM puts spaces between each "byte". And pay
 * attention to the fact that I've put the word byte in quotes, because 41
 * is actually TWO bytes (two chars) in the socket. So, we must do some more
 * processing..
 */
    rawData = res.toString().replaceAll("SEARCHING", "");

/*
 * Data may have echo or informative text like "INIT BUS..." or similar.
 * The response ends with two carriage return characters. So we need to take
 * everything from the last carriage return before those two (trimmed above).
 */
    //kills multiline.. rawData = rawData.substring(rawData.lastIndexOf(13) + 1);
    rawData = rawData.replaceAll("\\s", "");//removes all [ \t\n\x0B\f\r]
}

1 - In https://github.com/pdalfarr/obd-java-api/blob/master/src/main/java/com/github/pires/obd/commands/control/TroubleCodesCommand.java : Spaces skipped:
@Override
protected void readRawData(InputStream in) throws IOException {
byte b = 0;
StringBuilder res = new StringBuilder();
    // read until '>' arrives OR end of stream reached (and skip ' ')
    char c;
    while(true)
    {
  	  b = (byte) in.read();
  	  if(b == -1) // -1 if the end of the stream is reached
  	  {
  		  break;
  	  }
  	  c = (char)b;
  	  if(c == '>') // read until '>' arrives
  	  {
  		  break;
  	  }
  	  if(c != ' ') // skip ' '
  	  {
  		  res.append(c);
  	  }
    }

    rawData = res.toString().trim();

}

@pdalfarr thank you for insisting on this. I was definitely wrong!

source: gharchive/pull-request

authors: pdalfarr pires


text:
update esformatter to v0.5.0

according to https://github.com/millermedeiros/esformatter/issues/262#issuecomment-77408534 this is still using an old version. v0.5.0 was a big improvement over earlier versions.

Thanks, I'll do it soon(-ish)
In the meantime, with #28, you can use any version of esformatter, unless the integration is broken with newer versions.

authors: millermedeiros piuccio

repo: piuccio/sublime-esformatter

license: mit


text:
Platform independent file paths for esformatter finder code

Concatenating folder var and the string returns a path with mixed \ and // in a linux environment.
This change will let python concatenate the path with the right separator for the current os.

nice one

authors: piuccio remborg


text:
Compilation fails with Azure-related errors

Build command:
go get github.com/pivotal-cf/cliaas && \
cd $GOPATH/src/github.com/pivotal-cf/cliaas &&\
glide install &&\
go install github.com/pivotal-cf/cliaas/cmd/cliaas

Errors out with:
# github.com/Azure/azure-sdk-for-go/arm/examples/helpers
/opt/go/src/github.com/Azure/azure-sdk-for-go/arm/examples/helpers/helpers.go:23: undefined: azure.ServicePrincipalToken
/opt/go/src/github.com/Azure/azure-sdk-for-go/arm/examples/helpers/helpers.go:24: azure.PublicCloud.OAuthConfigForTenant undefined (type azure.Environment has no field or method OAuthConfigForTenant)
/opt/go/src/github.com/Azure/azure-sdk-for-go/arm/examples/helpers/helpers.go:28: undefined: azure.NewServicePrincipalToken

returned a non-zero code: 2.
This happened during the build of cfjump which has been working with the same build process for some time.

I'm unable to reproduce this:
$ cd $GOPATH/src/github.com/pivotal-cf/cliaas &&\
> glide install &&\
> go install github.com/pivotal-cf/cliaas/cmd/cliaas
[INFO]  Downloading dependencies. Please wait...
[INFO]  --> Found desired version locally cloud.google.com/go 675fad27ef35e552d3708858ff337d54b3b6f4d3!
[INFO]  --> Found desired version locally code.cloudfoundry.org/clock 2269160ae1757f96bbb8c6475e6fa36c805e73e0!
[INFO]  --> Found desired version locally github.com/aws/aws-sdk-go 00fb2125993965df739fa3398b03bef3eb2e198f!
[INFO]  --> Found desired version locally github.com/Azure/azure-sdk-for-go 088007b3b08cc02b27f2eadfdcd870958460ce7e!
[INFO]  --> Found desired version locally github.com/Azure/azure-storage-go 7c36d244fc8bf27bcf9785b0b37d6beef2949296!
[INFO]  --> Found desired version locally github.com/Azure/go-autorest ec5f4903f77ed9927ac95b19ab8e44ada64c1356!
[INFO]  --> Found desired version locally github.com/dgrijalva/jwt-go 2268707a8f0843315e2004ee4f1d021dc08baedf!
[INFO]  --> Found desired version locally github.com/go-ini/ini e7fea39b01aea8d5671f6858f0532f56e8bff3a5!
[INFO]  --> Found desired version locally github.com/golang/protobuf 2bba0603135d7d7f5cb73b2125beeda19c09f4ef!
[INFO]  --> Found desired version locally github.com/google/go-genproto 411e09b969b1170a9f0c467558eb4c4c110d9c77!
[INFO]  --> Found desired version locally github.com/googleapis/gax-go 9af46dd5a1713e8b5cd71106287eba3cefdde50b!
[INFO]  --> Found desired version locally github.com/jessevdk/go-flags 48cf8722c3375517aba351d1f7577c40663a4407!
[INFO]  --> Found desired version locally github.com/jmespath/go-jmespath bd40a432e4c76585ef6b72d3fd96fb9b6dc7b68d!
[INFO]  --> Found desired version locally github.com/pkg/errors ff09b135c25aae272398c51a07235b90a75aa4f0!
[INFO]  --> Found desired version locally golang.org/x/net ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d!
[INFO]  --> Found desired version locally golang.org/x/oauth2 7fdf09982454086d5570c7db3e11f360194830ca!
[INFO]  --> Found desired version locally golang.org/x/text f4b4367115ec2de254587813edaa901bc1c723a8!
[INFO]  --> Found desired version locally google.golang.org/api 48e49d1645e228d1c50c3d54fb476b2224477303!
[INFO]  --> Found desired version locally google.golang.org/appengine 56d253d1dd14aa01937e12c73a0971bcfd797ff2!
[INFO]  --> Found desired version locally google.golang.org/grpc b5071124392bfd416c713e6595ac149b387f7186!
[INFO]  --> Found desired version locally gopkg.in/yaml.v2 a3f3340b5840cee44f372bddb5880fcbc419b46a!
[INFO]  --> Found desired version locally github.com/google/uuid 6a5e28554805e78ea6141142aba763936c4761c0!
[INFO]  --> Found desired version locally github.com/onsi/ginkgo 77a8c1e5c40d6bb6c5eb4dd4bdce9763564f6298!
[INFO]  --> Found desired version locally github.com/onsi/gomega 334b8f472b3af5d541c5642701c1e29e2126f486!
[INFO]  --> Found desired version locally golang.org/x/sys 7de4796419dc3b554e6dab3a119a62469569d299!
[INFO]  Setting references.
[INFO]  --> Setting version for github.com/Azure/go-autorest to ec5f4903f77ed9927ac95b19ab8e44ada64c1356.
[INFO]  --> Setting version for github.com/dgrijalva/jwt-go to 2268707a8f0843315e2004ee4f1d021dc08baedf.
[INFO]  --> Setting version for github.com/go-ini/ini to e7fea39b01aea8d5671f6858f0532f56e8bff3a5.
[INFO]  --> Setting version for github.com/googleapis/gax-go to 9af46dd5a1713e8b5cd71106287eba3cefdde50b.
[INFO]  --> Setting version for github.com/jmespath/go-jmespath to bd40a432e4c76585ef6b72d3fd96fb9b6dc7b68d.
[INFO]  --> Setting version for github.com/google/go-genproto to 411e09b969b1170a9f0c467558eb4c4c110d9c77.
[INFO]  --> Setting version for github.com/pkg/errors to ff09b135c25aae272398c51a07235b90a75aa4f0.
[INFO]  --> Setting version for github.com/Azure/azure-sdk-for-go to 088007b3b08cc02b27f2eadfdcd870958460ce7e.
[INFO]  --> Setting version for github.com/jessevdk/go-flags to 48cf8722c3375517aba351d1f7577c40663a4407.
[INFO]  --> Setting version for github.com/aws/aws-sdk-go to 00fb2125993965df739fa3398b03bef3eb2e198f.
[INFO]  --> Setting version for github.com/golang/protobuf to 2bba0603135d7d7f5cb73b2125beeda19c09f4ef.
[INFO]  --> Setting version for github.com/Azure/azure-storage-go to 7c36d244fc8bf27bcf9785b0b37d6beef2949296.
[INFO]  --> Setting version for golang.org/x/text to f4b4367115ec2de254587813edaa901bc1c723a8.
[INFO]  --> Setting version for github.com/google/uuid to 6a5e28554805e78ea6141142aba763936c4761c0.
[INFO]  --> Setting version for github.com/onsi/gomega to 334b8f472b3af5d541c5642701c1e29e2126f486.
[INFO]  --> Setting version for github.com/onsi/ginkgo to 77a8c1e5c40d6bb6c5eb4dd4bdce9763564f6298.
[INFO]  --> Setting version for golang.org/x/oauth2 to 7fdf09982454086d5570c7db3e11f360194830ca.
[INFO]  --> Setting version for gopkg.in/yaml.v2 to a3f3340b5840cee44f372bddb5880fcbc419b46a.
[INFO]  --> Setting version for code.cloudfoundry.org/clock to 2269160ae1757f96bbb8c6475e6fa36c805e73e0.
[INFO]  --> Setting version for golang.org/x/sys to 7de4796419dc3b554e6dab3a119a62469569d299.
[INFO]  --> Setting version for golang.org/x/net to ffcf1bedda3b04ebb15a168a59800a73d6dc0f4d.
[INFO]  --> Setting version for google.golang.org/appengine to 56d253d1dd14aa01937e12c73a0971bcfd797ff2.
[INFO]  --> Setting version for google.golang.org/grpc to b5071124392bfd416c713e6595ac149b387f7186.
[INFO]  --> Setting version for google.golang.org/api to 48e49d1645e228d1c50c3d54fb476b2224477303.
[INFO]  --> Setting version for cloud.google.com/go to 675fad27ef35e552d3708858ff337d54b3b6f4d3.
[INFO]  Exporting resolved dependencies...
[INFO]  --> Exporting github.com/Azure/go-autorest
[INFO]  --> Exporting github.com/dgrijalva/jwt-go
[INFO]  --> Exporting github.com/googleapis/gax-go
[INFO]  --> Exporting github.com/aws/aws-sdk-go
[INFO]  --> Exporting github.com/go-ini/ini
[INFO]  --> Exporting github.com/Azure/azure-sdk-for-go
[INFO]  --> Exporting github.com/Azure/azure-storage-go
[INFO]  --> Exporting golang.org/x/text
[INFO]  --> Exporting github.com/pkg/errors
[INFO]  --> Exporting github.com/google/go-genproto
[INFO]  --> Exporting github.com/google/uuid
[INFO]  --> Exporting github.com/golang/protobuf
[INFO]  --> Exporting github.com/onsi/gomega
[INFO]  --> Exporting github.com/onsi/ginkgo
[INFO]  --> Exporting github.com/jmespath/go-jmespath
[INFO]  --> Exporting github.com/jessevdk/go-flags
[INFO]  --> Exporting golang.org/x/net
[INFO]  --> Exporting google.golang.org/grpc
[INFO]  --> Exporting gopkg.in/yaml.v2
[INFO]  --> Exporting google.golang.org/appengine
[INFO]  --> Exporting golang.org/x/sys
[INFO]  --> Exporting code.cloudfoundry.org/clock
[INFO]  --> Exporting golang.org/x/oauth2
[INFO]  --> Exporting google.golang.org/api
[INFO]  --> Exporting cloud.google.com/go
[INFO]  Replacing existing vendor dependencies
$ echo $?
0

@RamXX we'll close this issue, unless you tell us you still see this happening with the latest cliaas

As of today with latest release, the error is still happening:
go get github.com/pivotal-cf/cliaas && cd $GOPATH/src/github.com/pivotal-cf/cliaas && glide install && go install github.com/pivotal-cf/cliaas/cmd/cliaas
# github.com/Azure/azure-sdk-for-go/arm/examples/helpers
/opt/go/src/github.com/Azure/azure-sdk-for-go/arm/examples/helpers/helpers.go:23: undefined: azure.ServicePrincipalToken
/opt/go/src/github.com/Azure/azure-sdk-for-go/arm/examples/helpers/helpers.go:24: azure.PublicCloud.OAuthConfigForTenant undefined (type azure.Environment has no field or method OAuthConfigForTenant)
/opt/go/src/github.com/Azure/azure-sdk-for-go/arm/examples/helpers/helpers.go:28: undefined: azure.NewServicePrincipalToken

I'll opt for downloading a pre-built binary for cfjump instead of building from source. You are welcome to git clone https://github.com/RamXX/cfjump.git and attempt to reproduce it that way. Maybe I'm missing some package that doesn't get downloaded by go get, or maybe the azure client I already have installed somehow produces conflict. I'll just use the binary going forward.

glide install only installs dependencies to vendor/ of the directory they're for. That compilation error is coming from a dependency in your GOPATH. What version of Go are you using? And what do you have in vendor/?

I'm using Go 1.8.1. Bear in mind this is the first go app that gets built in the workflow after the installation of the Golang environment and the setting up of $GOPATH and $GOBIN. Indeed the error occurs in go get github.com/pivotal-cf/cliaas. Glide doesn't get involved yet. Since I'm now downloading the final release binary, this is no longer an issue for me, so you may decide to close the issue or explore further. Happy to collaborate either way.

This problem is occurring for you because of two things:

go get by default downloads dependencies of what you want and tries to install them and
you're using && to chain these things together, which doesn't work because of the aforementioned behavior

One solution is to add -d to your go get:
go get -d github.com/pivotal-cf/cliaas

This will inform go get not to install the dependent packages.
However, you probably don't want the rest of the dependencies there anyway because the project uses glide, which means go get will likely break at some point in the exact way it has broken for you here, which is that the version of azure-sdk-for-go that we use is different from HEAD of the repo.
A better thing for you to do would be to do a shallow clone of just cliaas:
curl https://glide.sh/get | sh
mkdir -p $GOPATH/src/github.com/pivotal-cf
git clone --depth 1 https://github.com/pivotal-cf/cliaas $GOPATH/src/github.com/pivotal-cf/cliaas
cd $GOPATH/src/github.com/pivotal-cf/cliaas
glide install
go install github.com/pivotal-cf/cliaas/cmd/cliaas

This workflow works, as the following demonstrates:
$ docker run -ti golang bash
root@c15e6f7cfd7d:/go# curl https://glide.sh/get | sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  3242  100  3242    0     0  28661      0 --:--:-- --:--:-- --:--:-- 28946
Downloading https://github.com/Masterminds/glide/releases/download/v0.12.3/glide-v0.12.3-linux-amd64.tar.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   608    0   608    0     0   2208      0 --:--:-- --:--:-- --:--:--  2210
100 3344k  100 3344k    0     0  1701k      0  0:00:01  0:00:01 --:--:-- 2301k
glide version v0.12.3 installed successfully
root@c15e6f7cfd7d:/go# mkdir -p $GOPATH/src/github.com/pivotal-cf
root@c15e6f7cfd7d:/go# git clone https://github.com/pivotal-cf/cliaas $GOPATH/src/github.com/pivotal-cf/cliaas
Cloning into '/go/src/github.com/pivotal-cf/cliaas'...
remote: Counting objects: 1160, done.
remote: Compressing objects: 100% (34/34), done.
remote: Total 1160 (delta 8), reused 0 (delta 0), pack-reused 1114
Receiving objects: 100% (1160/1160), 206.82 KiB | 0 bytes/s, done.
Resolving deltas: 100% (616/616), done.
Checking connectivity... done.
root@c15e6f7cfd7d:/go# cd $GOPATH/src/github.com/pivotal-cf/cliaas
root@c15e6f7cfd7d:/go/src/github.com/pivotal-cf/cliaas# glide install
[INFO]	Downloading dependencies. Please wait...
[INFO]	--> Fetching cloud.google.com/go.
[INFO]	--> Fetching code.cloudfoundry.org/clock.
[INFO]	--> Fetching golang.org/x/text.
...snip...
[INFO]	--> Exporting golang.org/x/sys
[INFO]	--> Exporting cloud.google.com/go
[INFO]	Replacing existing vendor dependencies
root@c15e6f7cfd7d:/go/src/github.com/pivotal-cf/cliaas# go install github.com/pivotal-cf/cliaas/cmd/cliaas
root@c15e6f7cfd7d:/go/src/github.com/pivotal-cf/cliaas# which cliaas
/go/bin/cliaas

This would avoid downloading useless dependencies that you don't need and avoid the compilation error.

I've changed the README to suit: https://github.com/pivotal-cf/cliaas/commit/2eb8287265ef49f3057eec45210f7bf8145e08a6

authors: RamXX krishicks ryanpei

repo: pivotal-cf/cliaas

license_source: github-api


text:
Recreate VMs step in PKS restore

This part (https://docs.pivotal.io/runtimes/pks/1-1/bbr-restore.html#recreate-vms) is obscure with such short description, especially for PKS customer with no experience with PCF/BBR.
More details can be useful.

What VMs exactly to recreate or PKS VM?
If PKS VM, deploy PKS tile and restore with a backup artifact?

What if PKS VM still exists, but database corrupted, so I only want to restore mysql database to the existing PKS VM?

What'd be the difference of VM preparation like if I have a backup with or without manifest option?

Also in the doc or backup (https://docs.pivotal.io/runtimes/pks/1-1/bbr-backup.html#back-up-deployment), could have a link or more info about "--with-manifest"

hey @jerryhwang72,
We (PCF Platform Recovery and PKS teams) are actively working on a complete B+R experience for PKS. As we make more progress will be updating the PKS documentation accordingly.

repo: pivotal-cf/docs-pks


text:
configure-saml-authentication is failing for new opsman

Upgraded to latest version of OM CLI 7.4.1 and noticed that SAML authentication is failing for new opsmanager VM.
Error is as follows:
om --env env/env.yml --skip-ssl-validation configure-saml-authentication --config config/((redacted))/saml.yml
configuring SAML authentication...
2021/12/27 18:28:51 could not configure authentication: request failed: unexpected response from /api/v0/setup:
HTTP/1.1 422 Unprocessable Entity
Transfer-Encoding: chunked
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Date: Mon, 27 Dec 2021 18:28:51 GMT
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Referrer-Policy: strict-origin-when-cross-origin
Server: Ops Manager
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Frame-Options: SAMEORIGIN
X-Permitted-Cross-Domain-Policies: none
X-Request-Id: 83d134ae-de9f-41bb-864f-d384cf0748fb
X-Runtime: 0.084294
X-Xss-Protection: 1; mode=block
34
{"errors":{"setup":["IDP Metadata is invalid XML"]}}
0
Switched to older version of CLI which is 7.3.0 and everything is working as expected. I think the issue has been introduced in the latest versions.

My one customer also hit the issue after upgrading to latest version of OM CLI 7.4.1 and noticed that SAML authentication is failing for Ops Manager VM.
Error is as follows:
`om --env env/env.yml --skip-ssl-validation configure-saml-authentication --config config/((redacted))/saml.yml
configuring SAML authentication...
2021/12/27 18:28:51 could not configure authentication: request failed: unexpected response from /api/v0/setup:
HTTP/1.1 422 Unprocessable Entity
Transfer-Encoding: chunked
Cache-Control: no-cache, no-store
Connection: keep-alive
Content-Type: application/json; charset=utf-8
Date: Mon, 27 Dec 2021 18:28:51 GMT
Expires: Fri, 01 Jan 1990 00:00:00 GMT
Pragma: no-cache
Referrer-Policy: strict-origin-when-cross-origin
Server: Ops Manager
Strict-Transport-Security: max-age=31536000; includeSubDomains
X-Content-Type-Options: nosniff
X-Download-Options: noopen
X-Frame-Options: SAMEORIGIN
X-Permitted-Cross-Domain-Policies: none
X-Request-Id: 83d134ae-de9f-41bb-864f-d384cf0748fb
X-Runtime: 0.084294
X-Xss-Protection: 1; mode=block
34
{"errors":{"setup":["IDP Metadata is invalid XML"]}}
0
`
They Switched to older version of CLI which is 7.3.0 and everything is working as expected.

Reproduced the symptom in lab. It started to exhibit since 7.3.2. Probably it's related to this change committed to 7.3.2.
For working case, Ops Manager got IDP metadata like this (single backslash '' to escape double quote)
{"setup"=>{"identity_provider"=>"saml", "decryption_passphrase"=>"[FILTERED]", "decryption_passphrase_confirmation"=>"[FILTERED]", "eula_accepted"=>"true", "idp_metadata"=>
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>
......

For bad scenario, triple backslash to escape double quote
"setup"=>{"identity_provider"=>"saml", "decryption_passphrase"=>"[FILTERED]", "decryption_passphrase_confirmation"=>"[FILTERED]", "eula_accepted"=>"true", "idp_metadata"=>
"<?xml version=\\\"1.0\\\" encoding=\\\"UTF-8\\\"?>
......

Hi @scottgai ,
As you said, it seems that the issue was introduced by a new logic on escaping double quotes, let me review the changes and see how can we work on a fix for this issue.
Also this one is related to #573

Fixed on version 7.4.2

authors: goriparthivamsi jaristiz scottgai

repo: pivotal-cf/om


text:
update pivnet-cli + go-pivnet

This PR updates go-pivnet which resulted in a pivnet-cli update.
The motivation for this PR is to have https://github.com/pivotal-cf/go-pivnet/pull/26 available.

Thanks for taking the time to make the PR.
Can you describe a bit more what this gains us? It is not clear in the code changes.

@jtarchie its just an update of the pivnet related dependencies, which have changed their api slightly. I had to go through these changes my self for https://github.com/starkandwayne/om-tiler which depends on om as well as go-pivnet. Without these changes I would not be able to update go-pivnet in om-tiler.

have left some comments here with some additional context on the changes.

I've validate that this PR works.
Tested by:
$ go run main.go config-template --output-directory /tmp --pivnet-api-token "new-token" --pivnet-product-slug elastic-runtime --product-version 2.5.1 --product-file-glob '*srt*'

$ go run main.go config-template --output-directory /tmp --pivnet-api-token "old-style-token" --pivnet-product-slug elastic-runtime --product-version 2.5.0 --product-file-glob '*srt*'

$ ls /tmp/cf
2.5.0 2.5.1

Merged and rebased, so SHAs aren't that same.

Thanks for merging 👍

authors: jtarchie rkoster


text:
Talk Idea: Pivotal's Product Map

What are all the different products we make? Which are closed source and which are open source?

Ideas:

The Stevenson slide deck could be a useful resource for explaining the different teams, what they all work on (a bit about product), what's open/closed source, etc.
There's a product map out there somewhere. @sjolicoeur thinks he might know where to find one.
AMA with a product director. Let's reach out to a few of them and see if they can commit to short meeting during the Onboarding weeks every once in a while.

authors: andrewedstrom dsabeti

repo: pivotal-cf/onboarding

license: MIT


text:
Double "https://" scheme in CredHub Integration docs.

Issue
The documentation for "Adding secrets to CredHub" have the following text:

credhub api https://https://<concourse_host>:8844:8844 --ca-cert <(bosh int ./concourse-gen-vars.yml --path /concourse-tls/ca)

Expected result
"https://https://" should be replaced with "https://".

this has been fixed in the documentation, thanks @coreyti

authors: coreyti nbconklin

repo: pivotal-cf/pcf-pipelines


text:
Removed optional bitweaving submodule from submodule file

This was an oversight from #169 Adding the bitweaving index repo to the submodule file will be confusing to users who do not have access to the bitweaving repo.

LGTM!

authors: cramja zuyu

repo: pivotalsoftware/quickstep


text:
Removed the duplicate-cn option so every device/connection must use a unique certificate

Removed the duplicate-cn option so every device/connection must use a unique certificate. Please see issue #358 for an in-depth explanation.

Can you test this PR on a real OpenVPN server with mulitple clients? Lgtm, thanks!

Sure thing, will try it tomorrow. :)

I've tested it again and it works fine:

Device A connects successfully with Profile1.ovpn,
Device B connects successfully with Profile1.ovpn,
The server terminates device A's connection.

Can you test two devices connecting with a different profile?

Just tested it, they can still concurrently connect and stay connected. So devices with different profiles remain unchanged.

Okay, thanks!

repo: pivpn/pivpn


text:
Crash with 4.3.0 version

Hi guys,
I upgrade piwik-sdk-ios to 4.3.0 in our new version and public to external beta testing.
But I got two new kinds of crash reports from beta users.
Here is the crash 1 and crash 2
Looks like it occurred when the SDK dispatch to send request.
Any idea?
BTW, I will upgrade sdk to 4.4.0 in the new beta build.

Hi @luohui8891, thanks for the bug report. I will investigate and will get back with you.

@brototyp here is a new one in 4.4.0.
I think they are same issue about Event memory management.

Any update?

Hi @luohui8891, badly no. I haven't had any spare time. I will find some on the weekend.

Hi @luohui8891, I just noticed you are using the 4.3.0, while the 4.4.0 is available. In 4.4.0 we fixed some issues with the SessionDispatcher. Do you think it is possible to update to 4.4.0?
Additionaly: Is there a log (possibly of just the Piwik lines)?

- (void)trackForum:(TKForumManager*)forumManager screen:(NSString *)screen{
    NSString * piwikID = forumManager.ForumConfigModel.sitePiwikID;
    if (piwikID.length == 0 || [piwikID isEqualToString:@"0"]) {
        return;
    }
    TKPiwikTracker * tracker = [self trackerForPiwikID:piwikID];
    if (tracker) {
        // Here is Line 49
        [tracker trackScreenWithScreen:screen url:[NSURL URLWithString:forumManager.ForumURL]];
    } else {
        dispatch_async(dispatch_get_main_queue(), ^{
            TKPiwikTracker * tracker = [[TKPiwikTracker alloc] initWithPiwikID:piwikID];
            [tracker trackScreenWithScreen:screen url:[NSURL URLWithString:forumManager.ForumURL]];
            self.cache[piwikID] = tracker;
        });
    }
}

Hi @luohui8891, I am still struggling to reproduce this issue. I am suspecting this issue only appears when called from Objective-c or in a mixed environment. I will digg further into that.

Thanks.
I downgrade the SDK to my forked repo based on 4.0.0 in our Application.
Tell me if you got any fix, I will help you to confirm in our beta build.

Yes, I am calling from Objective-C and do encounter this error too!

Hi @brototyp by reviewing code, I think this issue is caused by the MemoryQueue.
It is not thread-safe.
Should we add some protection?

Hi @luohui8891, thanks for that Idea. My initial reaction was "That can't be, we are moving all the calls to the main thread." but actually that is not right. All (indirect) calls to internal func queue(event: Event) { that are sent in the background will use the MemoryQueue from the background. I will digg into that tonight and see weather we should make the MemoryQueue thread save or move all calls to it to the main thread.

The problem is that I cannot force the crash, means I have to ship a new version to all users to see an effect.
I have integrated your PR now temporally, and not crashes happen on my debug devices.
I am not happy with releasing an app version with non-release versions of libraries.

I am submitting a new version that includes this bugfix to the store now. I'll report on the effect. Thanks @brototyp ! Merry xmas

@brototyp because of the crash issue, we still using the Piwik SDK from on my forking repo.
Last week, we did a fix and released it in a new version.
How we have released 20% of this version and didn't see the crash anymore.
I think the fix is better then we are moving all the calls to the main thread., but still not the best.
We can submit a PR of this fix to you if you'd like.

Hi @flaushi, thanks for the followup! Let's hope it fixes the issue.
Hi @luohui8891, I started with a similar implementation but changed it because synchronizing it in a certain thread might lead to issues, if multiple threads would use the queue. For example: Thread 1 gehts 20 Events, Thread 2 gets 20 Events, both dispatch those Events, both remove these Events. Those issues aren't solved in my solution, but they don't seem to be fixed in the MemoryQueue. The PiwikTracker makes sure those can never happen. What do you think?

authors: brototyp flaushi luohui8891

repo: piwik/piwik-sdk-ios


text:
Improvement: CI mode could throw error on unused key

In CI mode there should be an option where unused key throws an error.

Fixed in https://github.com/pixari/vue-i18n-extract/commit/4a158c04c530393e9138a208fbe6ce24cb8da325


text:
Invalid name in Package.swift file?

The name specified in Package.swift is RxSwiftExt, Xcode fails to resolve this package if RxSwiftExt also is present is added in dependencies.
https://github.com/pixeldock/RxAppState/blob/638a8aaca6e99e73e96b4f4a0f3a0fbf67a18c00/Package.swift#L6

Hi Hampus,
thanks for opening this issue!
@svyatogor could you have a look at this? I have no experience with Swift Package Manager. Maybe  you could help out?

@hampusiggstrom Any news on this? Could you make it work?

authors: hampusiggstrom pixeldock

repo: pixeldock/RxAppState


text:
[[Feature]] Display Version the Site is Running

This may already be the case and I just couldn't easily find it but showing the version of Pixelfed being run on a respective instance, like Mastodon does, could be really helpful for those tech. savvy enough to care (namely, I'm thinking, for telling whether your instance has gotten the latest updates yet or not); those who wouldn't be would probably not even notice, either way.

Fixed in https://github.com/pixelfed/pixelfed/commit/6c03599d4473ab84f89f3a509cd9b32666cb0084

authors: WammKD trwnh

repo: pixelfed/project-website


text:
🛑 Senditure Email Marketing is down

In a007aa6, Senditure Email Marketing (https://www.senditure.co.uk/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Senditure Email Marketing is back up in 31ca903.

repo: pixifydigitalagency/monitors


text:
With 120hz monitor, FPS is dropping to 60hz for one frame and returning back to 120hz frequently.

Expected Behavior
With a 120hz screen, FPS should be able to go down and up smoothly in need of FPS change due to performance.
Current Behavior
PIXI.Ticker.FPS jumping between ~120hz and ~60hz with a 120hz g-sync monitor.
When there is almost nothing on screen it works flawlessly on 120hz but if there is a need for dropping the FPS it directly jumps down to 60hz for one frame and returns back to 120hz.
Steps to Reproduce
Use 120hz g-sync monitor
Set up a game enough to require some FPS drop from 120hz
FPS frequently will drop 60hz for one frame and return back to 120hz, which cause studdering
Environment
Environment
pixi.js version: v5.3.0
Browser & Version: Chrome 85.0.4173.2
OS & Version: Windows 10
Screen: Predator Z35P

Ticker can adjust for bouncy frame rates by using the time scalar value passed to ticker.add. Developers that are adding tweens or other time-constrained rendering should make sure they multiply their per-frame changes by this value.  Can you please provide a specific reproduction case where you see this so we can verify if that's that case? A standalone example is best.
Basically, the thing we need to understand is if this is a Ticker bug, a browser issue, OS or hardware/driver. Not always much we can do about environment issues, but there are a couple of things to isolate if this is a Ticker issue, but we need someone with this monitor that can verify. @sefabaser if you could help us debug further what's happening that would be great.

I wonder if Chrome just isn't setup properly for gsync, because what you're describing is what would happen on a classic monitor with vsync, where if 60fps can't be hit, it'll vsync down to 30. And if that can't be hit, it'll vsync down to 20.
Obvs you're starting at 120, but that's the kind of profile you're seeing. I don't see this as a PixiJS thing, as we're just using requestAnimationFrame. The question is why is the browser enforcing vsync for that, rather than being dynamic like gsync and freesync allow.

Thank you so much for such a quick response in Saturday evening.
I am multiplying per-frame changes with App.ticker.deltaMS. Game speed-wise I do not have any problem but I see studdering.
When I run the code below in the link I am getting the FPS numbers as below. Depending on the computer setup number of bunnies might be different to get the same result. When FPS needs to drop under 60hz I do not see jumping behavior at FPS.
I do not know if it might help or not but also when I lock App.ticker.maxFPS to something above 60hz it is not taking effect.
Sample: https://pixijs.io/examples/#/demos-basic/container.js
const app = new PIXI.Application({
    width: 800, height: 600, backgroundColor: 0x1099bb, resolution: window.devicePixelRatio || 1,
});
document.body.appendChild(app.view);

const container = new PIXI.Container();

app.stage.addChild(container);

const texture = PIXI.Texture.from('examples/assets/bunny.png');

for (let i = 0; i < 40000; i++) {
    const bunny = new PIXI.Sprite(texture);
    bunny.anchor.set(0.5);
    bunny.x = (i % 5) * 40;
    bunny.y = Math.floor(i / 5) * 40;
    container.addChild(bunny);
}

container.x = app.screen.width / 2;
container.y = app.screen.height / 2;

container.pivot.x = container.width / 2;
container.pivot.y = container.height / 2;

app.ticker.maxFPS = 120;
app.ticker.add((delta) => {
    console.log(app.ticker.FPS);
    container.rotation -= 0.04 * delta;
});

Console output:
(index):28 59.9412575675838
(index):28 120.00480019200647
(index):28 59.90893841361128
(index):28 119.50286806883453
(index):28 60.00240009600406
(index):28 119.46004061641246

Last time we did with this kind of investigation: https://github.com/pixijs/pixi.js/pull/5934

authors: bigtimebuddy ivanpopelyshev sefabaser themoonrat


text:
[BUG] ERROR CODE 403 WHEN LAUNCHING FROM ROBLOX WEBSITE AND EXCEPTION OCCURED ERROR

Acknowledgement of preliminary instructions

[x] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
Error code 403 when trying to open Roblox from Roblox website with Bloxstrap (Roblox.com, game, launch, bloxstrap opens, loads, error code 403)
If not error code 403 then this error opens: an exception has occured while running bloxstrap
System.Net.Http.HttpRequestException: An error occurred while sending the request.
[Inner Exception]
System.IO.IOException: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host..
[Inner Exception]
System.Net.Sockets.SocketException: An existing connection was forcibly closed by the remote host.
[
Bloxstrap_20240115T155425Z.log
](url)

Error code 403 when trying to open Roblox from Roblox website with Bloxstrap

This error is coming from Roblox itself and doesn't have anything to do with Bloxstrap. Open the Roblox desktop app by launching the 'Play Roblox' shortcut that's on the desktop, log out of your account there and stay logged out, then try and launch from the website. If that doesn't work then you will just have to launch Roblox through the desktop app.

If not error code 403 then this error opens: an exception has occured while running bloxstrap

This seems like your internet connection is being interrupted. You'll just have to relaunch whenever this happens.

Assuming this has been resolved, please reopen if it hasn't.

I got banned for one day. I tried to log out but I'm stuck on the ban screen bloxstrap. I got banned for saying "I hate furry."
I try desktop and web but no work.

authors: 2023SMHrailwaygames pizzaboxer weebokun

repo: pizzaboxer/bloxstrap


text:
[BUG] O BLOXTRAP NAO ESTAO CONSEGUE SE CONECTAR AO ROBLOX

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] My answer given in the checkbox above is a lie.

What problem did you encounter?
meu bloxtrap nao esta conseguindo se conectar ao roblox ja verifiquei minha conecçao e nao e minha conecçao

Check your antivirus. It may be preventing Bloxstrap from connecting to the internet. Add an exception for Bloxstrap if you can.

nao resolveu meu problema

Something on your system is preventing Bloxstrap from connecting to the internet. It's an issue on your end, you'll have to find out what it is.


text:
[BUG] All Roblox Menus Not Working (Except for 2024 Menu)

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[ ] I did not answer truthfully to all the above checkboxes.

What problem did you encounter?
Whenever I want to leave a game it doesn't let me, it just shows up with an opaque gray window, even if I press Alt F4 or try close Roblox through windowed mode to close the window I am always forced to to use Task Manager to close Roblox whenever I want to leave, sometimes Roblox just doesn't appear in Task Manager and I need to restart my computer and whenever I open the Roblox menu the everything is gone except for Reset Character, Leave and Resume, this happened to all menus I tested except for the 2024 one which didn't have these issues, since this has become a problem and has been persisting several times I am forced to use the current 2024 menu. I hope this will be fixed.
Bloxstrap Log
N/A

Duplicate of other issues

authors: TimMarvelHero bluepilledgreat


text:
[PROBLEM] FPS UNLOCKER WORKED ONCE WONT WORK NOW

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
Hello there! Today i got BloxStrap to unlock my fps on roblox for the first time that i got it, it unlocked fps very very well but i got a little mad when the Gui was the old one and the "Oof sound" was also the old one and so i went to change stuff and then the fps unlocker stopped and it just wont work now, i did uninstall and all but still nothing. hope to get an answer soon!!

Whenever you go to launch Roblox, avoid launching it through the "Roblox Player" shortcut as that will launch Roblox through the official launcher. Launch it through the "Play Roblox" shortcut instead. You can read more about it here. https://github.com/pizzaboxer/bloxstrap/wiki/Switching-between-Roblox-and-Bloxstrap

authors: OmarKhaledThePilot pizzaboxer


text:
🛑 WAY👌 Blog is down

In 3fedad6, WAY👌 Blog (https://wayok.cn) was down:

HTTP code: 0
Response time: 0 ms

Resolved: WAY👌 Blog is back up in 9467b8d after 18 minutes.


text:
Spotify Playlist, auto rewrite title and description

Hi everyone,
first of all I must say I'm NOT a Python expert. In reality, I've never even used Python, but I know that it is a super powerful tool, useful in many contexts, also in Spotify.
2nd disclaimer: English is not my first language so I'll try to explain what I want to ask in the best way possible.
So, this is my problem:
I am a playlist curator on Spotify, with more than 50.000 followers over all through out all my playlist.
Lately, people started falsely reporting playlists on Spotify to gain a better rank in Spotify search algorithm. (if you search on the web, you will find that is becoming more and more common)
Each time a playlist is reported, the title, description and image disappear BEFORE the Spotify team check if the report is actually true or not. You will understand that this leads to a MASSIVE abuse of this tool, you just need to fill a form with name, telephone number and email and you can make this report. Obviously, people are filling this form with fake mails and identities.
This means that a fraudulent user can report your playlist 10000000 times a day, and there is nothing you can do against it, because if Spotify bans his fake "mail" he will fill the form with another fake email. This also means that if the reporter flag my playlist 10.000 times, I have to rewrite title, caption and upload user 10.000 times, and it is absolutely absurd. I sent hundreds of mail to the spotify team, they told me they are working to fix it, but currently there is no way to stop this (THIS IS CRAZY!)
So my question is: is there a way to create a code with Python, that auto rewrite the title of a playlist each time Python sees the title has disappeared?
For example:
The reporter reports my playlist --> Title, Description and Image are gone (until I don't rewrite them again)
Python notices that the title is gone and automatically rewrite the title and caption
Do you think this is possible?
I am willing to pay for someone making this code for me, because these fake reports are becoming more and more frequent, and as a music blogger, Spotify Playlists are a part of my income. I can't stay 24/7 at home rewriting the titles of my falsely reported playlist (with no reason)
Hope this was clear enough, thank you!

It is possible and you can certainly do that with spotipy, however this repo is not the place to find contractors, so I'm closing this

repo: plamere/spotipy


text:
USD equivalent balance is missing from the top nav

The USD equivalent balance is missing from the top nav even when it's enabled in settings.
I believe it might have been removed by accident, it should be re-added back if that's the case

What it should look like

Looks like a good first issue, would like to work on it.

@amass01 it's currently not assigned to anyone, so go ahead, and update the godcr room(https://matrix.to/#/%23godcr:planetdecred.org) you'd be working on it

repo: planetdecred/godcr

license: ISC


text:
slice operator does not work.

I get an error when using slice notation on the vector object.
Traceback (most recent call last):
  File magnitude_test.py", line 9, in <module>
    test_list = [vectors[3:20],
  File "pymagnitude\__init__.py", line 1257, in __getitem__
    return_vector=True)
  File "pymagnitude\__init__.py", line 795, in index
    return self._key_for_index_cached(q, return_vector=return_vector)
  File "pymagnitude\third_party\repoze\lru\__init__.py", line 354, in cached_wrapper
    val = func(*args, **kwargs)
  File "pymagnitude\__init__.py", line 276, in _key_for_index_cached
    return self._key_for_index(*args, **kwargs)
  File "pymagnitude\__init__.py", line 670, in _key_for_index
    (int(index + 1),)).fetchall()
TypeError: unsupported operand type(s) for +: 'range' and 'int'

The mistake seems to be in the index method
   def index(self, q, return_vector=True):
        """Gets a key for an index or multiple indices."""
        if isinstance(q, list) or isinstance(q, tuple):
            return self._keys_for_indices(q, return_vector=return_vector)
        else:
            return self._key_for_index_cached(q, return_vector=return_vector)

This seems to not branch properly since what it gets is a range. The following should work for everything that is iterable. For me it fixes the bug.
    def index(self, q, return_vector=True):
        """Gets a key for an index or multiple indices."""
        if hasattr(q,"__iter__"):
            return self._keys_for_indices(q, return_vector=return_vector)
        else:
            return self._key_for_index_cached(q, return_vector=return_vector)

Ah, that's a good catch, thanks. That's an issue with Python 3's range returning an iterator:
Fixed it on this commit: https://gitlab.com/Plasticity/magnitude/commit/3a73d0b4545e6d7da700c95f0e1c22fbfea3cb5d
and added a test case for slicing.

repo: plasticityai/magnitude


text:
No route for omniauth failure

Environment

Ruby 2.3.6p384
Rails 5.2.0
Devise 4.4.3

Current behavior
The failure callback /users/auth/failure can't find a route. I'm getting No route matches [GET] "/users/auth/failure"
Expected behavior
Devise already defines routes for the callbacks /users/auth/<proveder>/callback. Why not for /users/auth/failure?

Sorry, it is my fault. I still had this in my config/initializers/omniauth.rb
# see here: https://github.com/intridea/omniauth/wiki/FAQ
OmniAuth.config.on_failure = Proc.new { |env|
  OmniAuth::FailureEndpoint.new(env).redirect_to_failure
}

repo: plataformatec/devise


text:
can't able to ssh

yeah... seem it broke in the last upgrade. I need to investigate what happened :S

should be fixed. Can you try again and close if it works? thanks!

awesome thanks.
Thank you very much,

repo: play-with-docker/play-with-docker


text:
Upgrade minimum supported Maven version to 3.0

It will be required for running Play! in development mode with hot reloading (issue #6).

New 1.0.0-beta6-SNAPSHOT snapshot deployed.

New 1.0.0-beta6-SNAPSHOT snapshot deployed, documentation updated.


text:
Fix discrepency in pc.KeyboardEvent documentation

In the docs for pc.KeyboardEvent for the event param, it is said that it is 'the original browser event that was fired' but the type assigned for it in the docs is pc.KeyboardEvent. Unless I'm mistaken, it should be the KeyboardEvent object from the web API. This would correspond to the event property which has the same description but is typed KeyboardEvent.

Thanks!

repo: playcanvas/engine


text:
Viewer - morph target controls changes

morph target sliders are per mesh now instead of global list, allowing individual control
scroll bar for left control panel, allowing large list of morph target controls

cool!

authors: mvaligursky slimbuck