[ENHANCEMENT] Support filter list on NDM

Is your enhancement related to a problem? Please describe.
Now, NDM can filter out like vendor, label, and path by ENV or parameter
We could have the filter list to include the above. That would be more convenient.
Describe the solution you'd like
Add a filter list, and NDM can filter with this.
Describe alternatives you've considered
None
Additional context
None

Discussed with @Vicente-Cheng . He will share the detailed idea and proposal for this improvement. I would expect @tserong can drive the implementation.

I discussed with @Vicente-Cheng a bit last week - he suggested maybe using a ConfigMap for the filters. I've done some experimenting, and we could do something like this pretty easily:
apiVersion: v1
kind: ConfigMap
metadata:
  name: node-disk-manager
  namespace: harvester-system
data:
  label_filter: "COS_*,HARV_*"
  path_filter: "/mount/path/you/want/to/exclude"
  # also vendor_filter, auto_provision_filter

Then in the NDM daemonset:
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: harvester-node-disk-manager
  namespace: harvester-system
  # [...]
spec:
  # [...]
  template:
    spec:
      containers:
      - command:
        - node-disk-manager
        env:
        - name: NDM_LABEL_FILTER
          valueFrom:
            configMapKeyRef:
              key: label_filter
              name: node-disk-manager
        - name: NDM_PATH_FILTER
          valueFrom:
            configMapKeyRef:
              key: path_filter
              name: node-disk-manager
        # ...and so on for other filters...

The startup logic with environment variables could remain the same, but we'd of course need to add something to monitor for changes to the ConfigMap at runtime. Or, we get rid of the environment variables and just have NDM check the ConfigMap at startup (I'm not sure yet which would make the most sense).
Some further thoughts:

The current implementation means the same set of filters are applied to all nodes. Are we likely to need to have filters that only apply to specific nodes? Or that are somehow different on a per-node basis?
I can imagine a couple of ways in which the existing filter sets could be enhanced (e.g. we don't seem to currently have exclude by device path, but I can see that being potentially useful).
It would be helpful to make the debug logging a bit more verbose, to say which filter was matched when something was included/excluded.

Hi @tserong,
Thanks for the quick check! Very clear.
For the original idea, I would like to drop NDM_LABEL_FILTER and NDM_PATH_FILTER and introduce the checking mechanism on the scanner.
The simple idea is that the device change will trigger the scanner to scan. After the scanner updates or adds any block device CR, the controller handles the corresponding operations.
So, we could add the checking mechanism (with data from the configMap) to ensure that we know how to handle the devices.
Currently, I do not have a very clear data structure for each configMap data, but as you mentioned, we could provide a way to handle different devices on different nodes.
Surely, if we use the configMap, we need a new webhook to validate this data.
WDYT for that?
cc @bk201

The current implementation means the same set of filters are applied to all nodes. Are we likely to need to have filters that only apply to specific nodes? Or that are somehow different on a per-node basis?

I believe it's not an uncommon case. I will +1 to have the per-node configuration.

For the original idea, I would like to drop NDM_LABEL_FILTER and NDM_PATH_FILTER and introduce the checking mechanism on the scanner.
The simple idea is that the device change will trigger the scanner to scan. After the scanner updates or adds any block device CR, the controller handles the corresponding operations.
So, we could add the checking mechanism (with data from the configMap) to ensure that we know how to handle the devices.

I've done some more experimenting, and the above should work just fine. I'm reading a configmap in Scanner.scanBlockDevicesOnNode(), and if I go edit the configmap (kubectl -n harvester-system edit cm/node-disk-manager) then trigger a udev event by (un)plugging a device, I can see that NDM gets the new values from the configmap. I haven't hooked this up to the filters yet, but it proves the idea works.

Currently, I do not have a very clear data structure for each configMap data, but as you mentioned, we could provide a way to handle different devices on different nodes.
Surely, if we use the configMap, we need a new webhook to validate this data.

Right now, we have the following customizable exclude filters:

vendor_filter (will always include "longhorn")
path_filter (will always include "/")
label_filter (defaults to COS_*,HARV_* based on chart values that come from https://github.com/harvester/harvester-installer/blob/1e7572e3822c70adf5730d71ef94f071a15dde82/pkg/config/templates/rancherd-10-harvester.yaml#L186-L188)

We also have an internal drive_type_filter and part_type_filter, which aren't exposed to the user. These two make sure that we're only operating on HDDs/SSDs (not floppies or optical disks, or some unknown type of disk), and that we ignore BIOS boot partitions.
Then there's the auto_provision_filter which is a list of device paths that will be automatically provisioned and formatted. This can be set by the auto-disk-provision-paths setting in Harvester which is currently marked experimental (https://docs.harvesterhci.io/v1.3/advanced/index#auto-disk-provision-paths-experimental). That setting pushes the value specified through the chart values so it ends up embedded in the NDM daemonset as an environment variable, same as the other filters.
Right now, all filters are global for the cluster. In addition to what we've got above, I think we want:

One more exclude filter (by device path, as opposed to mount path)
The ability for all filters to optionally specify a node or nodes (as mentioned in previous comments)
The ability for auto_provision_filter to specify the provisioner type (to tie in with https://github.com/harvester/harvester/issues/6014)
I personally would like to rename the filters, to more clearly state their purpose, so instead of vendor_filter it would be exclude_vendors, instead of path_filter it would be exclude_paths and so on.

In a configmap, we just have key:value pairs, where the value is a string. Given we have some extra (optional?) things to express (node name, provisioner type) I was kinda hoping we'd be able to put structured data in values... and we can if we make the string be JSON or something, but that might get irritating for people to edit (we'd definitely want some sort of hook for validating that!)
So I've come up with a couple of ideas for how we could structure this:

Try to stick to reasonably simple strings for the filters, much as we have now for the env vars, where each is a comma delimited list of globs, but expand this to allow an optional colon-delimited hostname prefix, for example:

# exclude "QEMU" vendor on all nodes
exclude_vendors: "QEMU"
# exclude "/mnt" on all nodes, and "/extra-data" on node2
exclude_paths: "/mnt,node2:/extra-data"
# exclude "/dev/sd*" on all nodes
exclude_devices: "/dev/sd*"
# exclude "COS_*" and "HARV_*" lables on all nodes,
# and exclude "MY_LABEL" on node1
exclude_labels: "COS_*,HARV_*,node1:MY_LABEL"

With the autoprovision filter, I'm not sure how best to allow for provisioner types as well as optional hostnames. One way would be extra keys per provisioner type, e.g.:
auto_provision_devices_longhornv1: "/dev/nvme*"
auto_provision_devices_longhornv2: "/dev/whatever"
auto_provision_devices_lvm: "..."

Or we somehow embed the provisioner type into the value, while keeping an optional hostname. Maybe that means provisioner type is always required, e.g.:
# auto provision all NVME devices as longhorn v2 volumes on
# all nodes and provision /dev/sdb for LVM on node1
auto_provision_devices: "longhornv2:/dev/nvme*,node1:lvm:/dev/sdb"

I'm not 100% happy with either of the above, but I think I prefer the second form. I guess we could look at suffixes instead of prefixes, or having a different delimiter for provisioner type, but anyway, my point is, overall this approach (I hope!) keeps the filter strings reasonably simple to read, write and understand.

Use a blob, or blobs of JSON. This could be structured any number of ways, from one blob of JSON for everything to one blob per filter type. It kinda depends on what's easiest to read and understand while also allowing global and node-specific filters. Here's the most concise form I could think of which provides the same filter set outlined above. The first hash in the array of filters doesn't specify a hostname so is applied globally. The others apply only to the specified hosts. All elements are optional:

[
   {
      "auto_provision_devices" : {
         "longhornv2" : [
            "/dev/nvme*"
         ]
      },
      "exclude_devices" : [
         "/dev/sd*"
      ],
      "exclude_labels" : [
         "COS_*",
         "HARV_*"
      ],
      "exclude_paths" : [
         "/mnt"
      ],
      "exclude_vendors" : [
         "QEMU"
      ]
   },
   {
      "auto_provision_devices" : {
         "lvm" : [
            "/dev/sdb"
         ]
      },
      "exclude_labels" : [
         "MY_LABEL"
      ],
      "hostname" : "node1"
   },
   {
      "exclude_paths" : "/extra-data",
      "hostname" : "node2"
   }
]

This is much more expressive than the string-based approach, but TBH I find it really irritating to write by hand, and pretty annoying to read as well ;-)
So. What looks cleanest to you folks? What approach would be the most obvious to others familiar with k8s?
One other note: if we switch to using a configmap for filters, I think we can probably remove all the filter settings from the NDM chart, and maybe also remove that auto-disk-provision-paths setting from harvester - anyone wanting to tweak the filters just needs to edit the configmap directly. I'm not sure what this would mean for upgrades though (I guess we'd need some sort of chart value -> configmap migration thingy).

Hi @tserong,
Thanks for the test and give various examples.
It looks like the configmap could contain the various type value below
apiVersion: v1
data:
  harvester-node-0: |
    filter: |
      {
        "vendor": "QEMU",
        "label": ["COS_*", "HARV_*"],
        "path": "/dev/hdd*",
      }
    autoProvisioner: |
      {
        "longhornv1": "/dev/sd*",
        "longhornv2": "/dev/nvme*",
      }
kind: ConfigMap
metadata:
  creationTimestamp: "2024-06-24T15:30:05Z"
  name: node-disk-manager-config
  namespace: default
  resourceVersion: "6342413"
  uid: ee0705c8-9f65-4707-8baf-5d9753f53b4d

I would like to simplify the things like we could have two key. First is the filter, which will contain various filters like label, vendor, and path. Second is the autoProvisionPattern. The autoPrivisionPatter will contain the provisioner and corresponding path prefix.
The whole struct will look like: <node name: ,  >
It's very similar to your idea, just a little different. I use the filter as the parent class, and we could define each filter pattern.
The above is an example. WDYT for it?

One other note: if we switch to using a configmap for filters, I think we can probably remove all the filter settings from the NDM chart, and maybe also remove that auto-disk-provision-paths setting from harvester - anyone wanting to tweak the filters just needs to edit the configmap directly. I'm not sure what this would mean for upgrades though (I guess we'd need some sort of chart value -> configmap migration thingy).

Thanks for the reminder. Yes, as you mentioned, we need to handle these when we change our behavior.

We can't have nested keys in the configmap yaml - it's just a flat set of key:value pairs, where the value is a string. If we want the values to have some structure we have to make the whole value be valid JSON, so to use your example above it would be:
apiVersion: v1
data:
  harvester-node-0: |
    {
      "filter":
        {
          "vendor": "QEMU",
          "label": ["COS_*", "HARV_*"],
          "path": "/dev/hdd*"
        },
      "autoProvisionPattern":
        {
          "longhornv1": "/dev/sd*",
          "longhornv2": "/dev/nvme*"
        }
    }
kind: ConfigMap
metadata:
  creationTimestamp: "2024-06-24T15:30:05Z"
  name: node-disk-manager-config
  namespace: default
  resourceVersion: "6342413"
  uid: ee0705c8-9f65-4707-8baf-5d9753f53b4d

(Then we have to parse that JSON inside NDM to get the values.)
With the example above, it means hostname is required. How would we specify a global filter, applicable to all nodes, without having to list each node individually?

One further thought - if we decide to use a blob of JSON, there's no real need for a configmap, because it's just one value (the blob of JSON). Would it be more appropriate to use a setting for this than a configmap?

Hi @tserong,
Thanks for the check again.
I think we might could use the format you mentioned above.
filters: |
  [
     {
        "auto_provision_devices" : {
           "longhornv2" : [
              "/dev/nvme*"
           ]
        },
        "exclude_devices" : [
           "/dev/sd*"
        ],
        "exclude_labels" : [
           "COS_*",
           "HARV_*"
        ],
        "exclude_paths" : [
           "/mnt"
        ],
        "exclude_vendors" : [
           "QEMU"
        ]
     },
     {
        "auto_provision_devices" : {
           "lvm" : [
              "/dev/sdb"
           ]
        },
        "exclude_labels" : [
           "MY_LABEL"
        ],
        "hostname" : "node1"
     },
     {
        "exclude_paths" : "/extra-data",
        "hostname" : "node2"
     }
  ]

If no hostname means global.
And I would like to keep the configMap because we could change it easily and on demand.
At first, I wondered how we could reduce the seeking times when we applied the filter rules.
However, I thought the general cases might be defined globally, and some special cases would be configured individually.
So, the above filter format you mentioned might be suitable for the whole case and clear enough.
Based on the conclusion, we can start implementing that. WDYT? or any concern?

If no hostname means global.

Yep, no hostname means global in the above.

And I would like to keep the configMap because we could change it easily and on demand.

Fair enough.

Based on the conclusion, we can start implementing that. WDYT? or any concern?

Just that JSON is sometimes annoying to write by hand :-) but otherwise I think this will be workable. In any case, the format doesn't have to be tied to the implementation -- I just need to make sure that each time the scanner runs, I reset the filters based on whatever's currently in the configmap.

Just that JSON is sometimes annoying to write by hand :-) but otherwise I think this will be workable. In any case, the format doesn't have to be tied to the implementation, so we still have an opportunity to mess with it if we need to -- immediately I just need to make sure that each time the scanner runs, I reset the filters based on whatever's currently in the configmap.

Yeah, I agree... We still have time to decide the format (actually, I thought the hardest part of this feature is how we design the format), so maybe we could keep brainstorming for that. : )

I realised something when looking at some longhorn stuff the other day -- we can use yaml as a value in a configmap, just the same as we use JSON, and it's a lot easier for a human to read and write. We'd still need a validator for it (because it's just an arbitrary value string), but I think I have something I actually quite like now. This notably makes there be two values, one for filters and one for autoprovision as you already suggested @Vicente-Cheng , and also adds the ability to have extra parameters for the autoprovisioner, which I suspect we probably need at least for the LVM case.  Here's an example:
apiVersion: v1
data:
  autoprovision.yaml: |
    - hostname: "*"
      devices:
      - "/dev/sd*"
      - "/dev/hd*"
    - hostname: "*"
      devices:
      - "/dev/nvme*"
      provisioner: longhornv2
      params:
        someV2SpecificOption: just-testing
    - hostname: "node1"
      devices:
      - "/dev/sda"
      provisioner: lvm
      params:
        vgName: my-volume-group
  filters.yaml: |
    - hostname: "*"
      excludeDevices:
      - "/dev/sd*"
      excludeLabels:
      - COS_*
      - HARV_*
      excludeVendors:
      - QEMU
    - hostname: node1
      excludeLabels:
      - MY_LABEL
    - hostname: node2
      excludePaths: "/extra-data"
kind: ConfigMap
metadata:
  creationTimestamp: "2024-07-15T13:09:39Z"
  name: harvester-node-disk-manager
  namespace: harvester-system
  resourceVersion: "129003"
  uid: b5a65d29-0316-47af-b751-6eea57e5da02

In the above, the autoprovision.yaml and filters.yaml are both lists of filters to apply.
For autoprovision.yaml, each item in the list may have:

A hostname glob (if set to *, or if omitted completely, defaults to all hosts)
A list of device globs to match
The provisioner to use (if omitted, defaults to longhorn v1)
Parameters to pass to the provisioner (e.g. vgName to tell the LVM provisioner the name of the volume group to create)

There may be more than one item in the autoprovision list that match the same host(s). In the above example the first item will autoprovision /dev/sd* and /dev/hd* for longhorn v1 on all hosts, and the second item will autoprovision /dev/nvme* for longhorn v2 on all hosts.
filters.yaml is similar - each item in the list may have:

A hostname glob (if set to * or omitted completely, defaults to all hosts)
Any or all of excludeDevices, excludeLabels, excludeVendors, excludePaths, which in turn are lists of globs to exclude

WDYT?

@tserong The proposal looks great.

Hi @tserong, I love the latest proposal.
That looks good to read and clean!
Thanks for digging for that!!


docker-compose -f single-peer-ca.yaml up Failed

I use root to run docker-compose -f single-peer-ca.yaml up command. It downloaded newer image for ibmblockchain/fabric-peer-0.6.1-preview at first. Then log showed "Building baseimage" and returned with error: cannot located specified dockerfile: dockerfile. What should I do to solve this problem? Thanks!

@YvesHarrison  - Is there a reason you are trying to use this archived material?  We no longer actively maintain any of this stuff

@mastersingh24 I was following an old guide to run Hyperledger fabric code. The guide use this material. And could you please tell my where could I find the latest Docker Compose files for running Hyperledger fabric code?


Windows arm64 cross compilation support?

Is there a way to use this action on shared github runners to produce windows arm64 tauri binary/installer?

yes, in the os matrix at the top, add this
          - platform: "windows-latest"
            args: "--target aarch64-pc-windows-msvc"

and then also install the rust target. if you use our example you can modify it like this:
      - name: install Rust stable
        uses: dtolnay/rust-toolchain@stable
        with:
          targets: aarch64-apple-darwin,x86_64-apple-darwin,aarch64-pc-windows-msvc

The github runner should have the OS dependencies that our guide mentions already installed, if not, or if you get any errors pleasse get back to me here.


https://nativebase.io/ Kitchensink App is outdated, needs rebuild for current Expo (47)

Description
Current Expo Go app doesnt work with kitchensink QR Code any more.
CodeSandbox/Snack link
https://nativebase.io/
Steps to reproduce

Go to '...'  https://nativebase.io/
Scroll down to Kitchensink for Expo
Install Expo go from Appstore
Scan QR Code and get SDK to old Error

NativeBase Version
all
Platform

[X] Android
[ ] CRA
[X] Expo
[X] iOS
[ ] Next

Other Platform
No response
Additional Information
No response

@TimoGoetze, Surely
We will update it to the latest version.

Any update? Currently considering NativeBase, and would love to be able to use the kitchen sink on my phone.


feat: added max txs per block to config.toml

A new configuration variable to limit the number of transactions per block: max_txs in config.toml or MaxTxs in ConsensusConfig.
It's needed because it's unreasonable to have very large number of txs per block, say > 10,000. It's also very difficult to limit that with either max gas or max txs bytes.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Getting WorkerId fails in debug

Hi!
1, Visual Studio 2017 Version 15.5.2
2. NUnit test adapter V 3.9
3, Nunit 3.9 (installed via nuget)
When I try to debug test from Test Explorer, getting TestContext.CurrentContext.WorkerId throws null reference exception.
When I debug test in Rider or via Resharper in VS, then all is ok.

Issue moved to nunit/nunit #2696 via ZenHub


[FEATURE] Slap render for AutoCrystal

Like in this video https://youtu.be/spkawLOk-h8 1:14
Perry phobos (a 1.9 skid) has it so technically u could jew it since its ur client anyways lol

Yeah, not gonna happen, I dont even know what in the video you mean.


Using livebook to debug running systems

Background

Disclaimer: Maybe I'm overengineering and there is a waaay simpler approach.

And also, thanks everyone involved in this. I see so much potential for Livebook. It is really awesome!
I've recently been exploring the idea of using Livebook to debug (or just explore) running systems.
The idea is to substitute almost everything one would do with an iex --remsh.
That is useful for creating simple reports or reproducible debug steps, for example.
My first idea was to just connect to the node and run all my code from there, which worked just fine. Until I wanted to use Kino, which my system doesn't have installed.
One option would be to include Kino in my release and then be able to do that, but this feels a little bit weird for me.
Another option is to just manually connect to the nodes so I can install Kino locally and still call things in the server:

While this works fine, I started wondering if there could be a better way, that's why I opened this discussion.
Idea
One idea I had is to enable liveview to be connected to multiple runtimes and maybe set some runtime aliases, then one could "tag" a specific block to run in a different context
```elixir
# This runs on "default" node
```

<!-- livebook:{"node":"running-server"} -->
```elixir
# This runs remotely
SaltId.Repo.all(SaltId.Accounts.User)
```

Then on the node list on the livebook instance, we could have nodes being associated with different tags on the setup.
So in my case, the default runtime would be the Elixir standalone one where I'd install Kino and I could add an extra runtime pointing to my running system and tag it as running-server.
The only problem I can see is how values could be sent from one node to the other.

You can see an example of this in the fun with vm instrumentation guide. We use the Livebook runtime to connect to a system and do RPC calls, which is then formatted and handled by Kino.

The use case you described is definitely something that's been on my mind several times, but at this point I think the two approaches are really the only viable options. The alternative you describe theoretically makes sense, however I think it could get confusing very fast. On top of that, we would need to copy all of the variables between runtimes, which could easily end up being much data, and once we start mixing those cells we actually need to send all of that back and forth.


Change password ADSync Service account

[Enter feedback here]

I just curious, this page is refer to this azure ad sync service account right? Meaning, if we use latest version of Azure AD Connect, we can skip to Abandoning the ADSync service account encryption key steps. But there is no steps to show how we can reset the password azure ad sync service with new latest version.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 5a6ac21b-3096-44b3-8099-f029a2bcf718
Version Independent ID: 30085cd3-7d19-e88b-d4c6-14e9524ec046
Content: Azure AD Connect sync:  Changing the ADSync service account
Content Source: articles/active-directory/hybrid/how-to-connect-sync-change-serviceacct-pass.md
Service: active-directory
Sub-service: hybrid
GitHub Login: @billmath
Microsoft Alias: billmath

@Norafify89
Thanks for your feedback! We will investigate and update as appropriate.

@Norafify89
Thank you for your time and patience!
For resetting the password using the Abandoning the ADSync service account encryption key section, this cannot be used for newer versions of Azure AD Connect because abandoning the encryption key is handled by Azure AD connect itself when you change the AD sync service account password so the following steps are not needed in the newer versions.
If you upgraded to a build from 2017 April or later, then it is supported to change the password on the service account, but you cannot change the account used.
If you have any other questions or would like to work with our support team on this, please let me know.
Thank you for your time and patience throughout this issue.

Hi @JamesTran-MSFT,
Refer below article, it's state that this ADSync doesn't have password then how we want to changed the password? My installation will be new version and using SQL 2012 Express, before I start installation I just want to understand this ADSync/VSA can changed the password or not for new version of AADC..
https://docs.microsoft.com/en-us/azure/active-directory/hybrid/reference-connect-accounts-permissions#virtual-service-account
Virtual service account
A virtual service account is a special type of account that does not have a password and is managed by Windows.
Screenshot that shows the virtual service account (VSA).

The VSA is intended to be used with scenarios where the sync engine and SQL are on the same server. If you use remote SQL, then we recommend to use a Group Managed Service Account instead.

@Norafify89
Thank you for the quick follow up on this! I've reached out to my team and will update as soon as possible.
In the meantime, since it sounds like you're waiting to start the installation. If you'd like our support team to take a closer look into your environment and help with issue, please let me know. This way I can enable a one-time free technical support request for your subscription.
If you have any other questions, please let me know.
Thank you for your time and patience throughout this issue.

Hi @JamesTran-MSFT,
Thank you for reply my message. I still don't have the environment yet because we're at preparing the ADDC server stage. Now I just want to understand about the account and permission before we start the installation. My customer have query to change the password for AD DS Connector account and move it to another OU not in Users OU. Same goes with Azure AD Connector account, they want to change the password later.
You mean your internal teams can have remote access later to check our environment?
From steps above, it's means for Azure AD Connector account we can change the password in Azure AD then we need to update by running Add-ADSyncAADServiceAccount in Azure AD Connect. So for ADSync Service account, where should we change the password because this account doesn't exist in Azure AD or AD On-Premises. and I refer to below there is no password for ADSync Service account.
A virtual service account is a special type of account that does not have a password and is managed by Windows.
Can you help me to answer my question below? (Yes/No)

is ADSync Service account have password?
is ADSync Service account can change password?
is AD DS Connector account have password? How to check the existing password?(Assuming  AADConnect Wizard create this account )
is Azure AD Connector account have password? How to check the existing password?(Assuming AADConnect Wizard create this account )

Your reply is really appreciate. Thank You

@Norafify89
Thank you for the quick response on this!

is ADSync Service account have password?

From our ADSync service account documentation, this will depend on the type of account you chose, i.e. Virtual Service Account (VSA), a Managed Service Account (gMSA/sMSA), or a regular User Account. In your specific case, if you're going to work with a VSA, then as you stated previously, A Virtual Service Account is a special type of managed local account that does not have a password and is automatically managed by Windows.

is ADSync Service account can change password?

Referring specifically to a VSA account, it looks like it leverages Windows Data Protection API (DPAPI), which is a password-based data protection service.
DPAPI actually uses the user's logon credential. In a typical system, in which the user logs on with a password, the logon credential is simply a hash of the user's password.

Based off the information from our DPAPI doc, you should be able to change the password just by changing the specific user's logon credential for the system.

If you aren't using a VSA you should be able to reset an ADSync Service account using the doc referenced here:
Changing the ADSync service account password

Important: Any attempt to change the credentials after installation will result in the service failing to start, losing access to the synchronization database, and failing to authenticate with your connected directories (Azure and AD DS). No synchronization will occur until the original credentials are restored.

is AD DS Connector account have password? How to check the existing password?(Assuming AADConnect Wizard create this account )

The AD DS Connector account looks like it uses On-premises Active Directory credentials.

is Azure AD Connector account have password? How to check the existing password?(Assuming AADConnect Wizard create this account )

The AzureAD Connector account utilizes AzureAD directory credentials, which can be reset within the Azure Portal.

The express installation wizard collects the AD DS and AzureAD Connector account's credential, but it doesn't look like it creates these accounts for you: Accounts used for Azure AD Connect

Express installation wizard summary
Additional Links:
Changing the AD DS account password
Change the Azure AD Connector account password
I hope this helps! If you have any other questions, please let me know.
Thank you for your time and patience throughout this issue.

@Norafify89
I just wanted to check in and see if you had any other questions or if you were able to review my previous comment?
If you have any other questions, please let me know.
Thank you for your time and patience throughout this issue.

Hi @JamesTran-MSFT ,
Thank you for the reply.

I'm more clearly about ADSync Service account now.

Refer to AD DS connector account, even with custom setting I'm prefer to lets AADC Wizard to create this account automatically then MSOL_xxxx will be created in User OU level as per stated here https://docs.microsoft.com/en-us/azure/active-directory/hybrid/reference-connect-accounts-permissions#ad-ds-connector-account.

and we can move this MSOL_xxxx to high-privileged OU without any issue right?
So conclusion, AD DS connector account can change password through AD and update in Synchronization Service in AADC as stated here : https://docs.microsoft.com/en-us/azure/active-directory/hybrid/how-to-connect-sync-change-addsacct-pass
The express installation wizard collects the AD DS and AzureAD Connector account's credential, but it doesn't look like it creates these accounts for you: Accounts used for Azure AD Connect

Based on your statement above, I don't understand because it's clearly stated Azure AD Connector account will be created in Azure AD.
https://docs.microsoft.com/en-us/azure/active-directory/hybrid/reference-connect-accounts-permissions#azure-ad-connector-account

@Norafify89
Thank you for the detailed follow up on this!
I completely missed the more about the created accounts section, where it says the AD DS Connector account, "if you use express settings, then an account is created in Active Directory that is used for synchronization".
For changing the AD DS account password, you can definitely leverage that article.
If you have any other questions, please let me know.
Thank you for your time and patience throughout this issue.

Hi @JamesTran-MSFT,
Thank you for the explanation, it's really help me. I have more question for custom settings, my installation will use custom settings because I have 2 Forest (account and resource). As per below, I need to creating the account before installation but it's possible or recommended to let's AADC Wizard create the AD DS connector for me even with custom settings?
If you use custom settings, then you are responsible for creating the account before you start the installation. See Create the AD DS Connector account.

@Norafify89
Thank you for the quick follow up on this!
I spoke to my team and AADC can still create an automated account when using custom settings. For more info.
If you have any other questions, please let me know.
Thank you for your time and patience throughout this issue.

@Norafify89
I just wanted to check in and see if you had any other questions or if this helped resolve your issue?

Hi @JamesTran-MSFT,
Yes it's clearly now. If during the installation I have problem where should I contact you and your team?
Thank you so much for the explanation.

@Norafify89
Thank you for your time and patience throughout this issue, and I'm glad that I was able to help clarify these questions for you!
If you run into any issues during installation, I'd recommend leveraging our Q&A forums, specifically - azure-active-directory or azure-ad-connect. If your issue requires immediate assistance, I'd recommend creating a support request so our engineers take a closer look into your environment and issue.
Since this GitHub issue is resolved, I'll go ahead and close out this thread.
Thank you again!


td's not working properly

uh.. while ago everything seemed to be working, but not now. to be honest, i didn't catch the moment when it went wrong, so i'd be very grateful if you could help me if this problem is familiar to you. i'd also be happy to provide code that can help solve this bug
here is the review:
https://youtu.be/EoV_BkmY3Jc

Would such a problem occur without the plugin?


add issue time set to current date to claimset matching the comment

add issuetime to current date to jwt claim builder

Thanks. I will merge this PR even if I strongly doubt we ever release a new 2.1.x version...


Paragraph / Script / Notebook serialization & deserialization

Serializing new objects into storage and deserializing saved information from storage into usable objects

Serialization and Deserialization into JSON works properly now. Still need to integrate with filesystem so that JSON files can be written and read from disk

Will need to initialization/refresh function and a search by ID function


[Event Dashboard] No message displayed at the end of the 'Event' page

Environment: Windows 10 Pro, Chrome 111.0.5563.65
Reproducible: always
Build found: 12.03.2023
Steps to reproduce

Go to the  https://www.testgreencity.ga/#/greenCity
1st scenario - user is logged in. 2d scenario - user is not logged in
Go to the 'Event' dashboard
Scroll down to the end of the 'Event' page

Actual result
At the end of the 'Event' page, there is no message displayed.
Expected result
The message is displayed: "Unfortunately, there are no events found"
User story and test case links
E.g.: "User story #3197 #3266
Test case"
Labels to be added
"Bug", Priority ("pri: "), Severity ("severity:"), Type ("UI, "Functional"), "API" (for back-end bugs).

THere is loader instead of this message. Bug is still exist on Chrome 127.0.6533.100 (64-bit)

This bug doesn't reproduce anymore. I've tested 4 days in a row on Chrome 129.0.6668.59 (64-bit).


Should gp be aligned?

The current document does not specify any alignment constraints on gp, the global pointer (an address).

The psABI would define the gp to have the same alignment restriction as the stack.  For the motivation behind restricting the alignment for the latter likely also applies to the former.

I might be missing something, but I think the important thing is that the sections to which gp points must be aligned.  Since gp is only referenced by linker relaxation, I can't see why its alignment matters.

What was the reasoning for stack-pointer alignment? Just because of C.ADDI16SP, or is this putting the plow before the oxen?

quad-precision FP; ABI interactions with pairs of XLEN-sized values in RV64; general experience that people regret not having more generous stack alignment once they start trying to do SIMD stuff

Well in my opinion none of these reasons seem particularly relevant to GP-alignment.

I might be missing something, but I think the important thing is that the sections to which gp might refer must be aligned. Since gp is only referenced by linker relaxation, I can't see why its alignment matters.

Yes. However, lest someone roll up their own start up code or linker script, this restriction should be made explicit in order to support future data types as large as 128b.
So, a side effect of the small data section alignment is that the gp will also inherit its alignment, since its current defined to be 2KiB from the beginning of the section.  However, tool developers and advanced users might roll their own tools and linker scripts and need to know of any such restrictions, if compatibility with other development tools is to be maintained.

quad-precision FP; ABI interactions with pairs of XLEN-sized values in RV64; general experience that people regret not having more generous stack alignment once they start trying to do SIMD stuff

Intel had to grow the required stack alignment as new ISA extensions were added...

Well in my opinion none of these reasons seem particularly relevant to GP-alignment.

Historically, other ISAs had to restrict the alignment of the base of the global data area, AKA _SDA_BASE_, because the offsets in load and store instructions was shifted by the transfer size.  Then, the alignment would be that of the largest transfer size possible or the largest software data type, usually one up.
However, RV doesn't scale the offset in loads and stores, so it's not strictly necessary to restrict the alignment for the gp.
In most cases, the alignment of the section where _SDA_BASE_ is defined will lead to it being aligned as well.

My opinion is that the ISA mandates the appropriate instruction alignment, so we don't have to say anything about "text" sections in the ABI. Regarding "data" sections, the ABI (or its intent as I understand it) mandates the C language alignment requirements. So there can be no misaligned loads/stores. (You could trick the compiler into generating them, e.g., with misaligned pointer dereference, but this is UB.)  You can imagine countless ways of breaking these mandates with pathological compilers and link scripts. I don't think it's the ABI's job to spell this out.
My opinion would change in the case that a stricter alignment is needed to overcome a limitation of the available addressing modes. (However, I don't have a concrete example of this.)

Indeed, I don't think that there's any G instruction that restricts the offset.  Does any instruction in other extensions do?

There may be sensible reasons other than required by the ISA, though, such as kernel, debugger and other tools, that should be specified in an ABI.  Not our case, however.

I believe that our current consensus is a negative answer to this issue's question, i.e., no changes to the psABI are needed. I'll close this issue tomorrow if no dissenting opinions have been posted.


Razer keyboard alt doesn't work

skhd doesn't recognized the alt key at all. I've tried switching the command and alt key but it still doesn't do anything.
Do you know how to troubleshoot this or force skhd to register whatever keycode the Razer keyboard is sending to as an alt key for my configuration?

Can you run either skhd --observe (if you're on master) or cev (installed from here), press some alt + key combination and show the output?
I have not had issues with swapping modifier keys on my external keyboard and skhd, so I think this may be an issue with your configuration file. Please also post your ~/.skhdrc file.

Following your steps I realized something about the system was just ignoring that key all together. I uninstalled the Razer app for MacOS, restarted the computer and now the key is being registered again so it's working (I just don't get to control the lights or macro keys 😥)


Terraform Registry update for v0.1.0?

I noticed a new release was created by @arslanbekov arslanbekov last week:
https://github.com/OpenVPN/terraform-provider-openvpn-cloud/releases/tag/v0.1.0
but the official Terraform registry is still showing v0.0.11:
https://registry.terraform.io/providers/OpenVPN/openvpn-cloud/latest
and also includes the following:

WARNING:
This provider is experimental and support for it is on a best-effort basis. Additionally, the underlying API for OpenVPN Cloud is on Beta, which means that future versions of the provider may introduce breaking changes. Should that happen, migration documentation and support will also be provided on a best-effort basis.

Are there plans to upgrade this?  Is v0.1.0 the best release to use now?

Yes, the team @OpenVPN/cloudconnexa-terraform-project-admins is renaming the GitHub repository, terraform provider and creating a new release.
I think this will be resolved soon.

@pickgr
https://registry.terraform.io/providers/OpenVPN/openvpn-cloud/0.1.0 has major breaking changes compared to https://registry.terraform.io/providers/OpenVPN/openvpn-cloud/0.0.11
We've released Terraform Provider with correct name into Terraform Registry https://registry.terraform.io/providers/OpenVPN/cloudconnexa/latest
Going forward we advise to migrate to https://registry.terraform.io/providers/OpenVPN/cloudconnexa/latest
(and old one https://registry.terraform.io/providers/OpenVPN/openvpn-cloud will be depracated)


BFM09 model file is missing ?

HI Git Hub community ,
there is a file BFM09 which is missing.i need that file to run this code so plz help me out of this thing

@tamjeedAI Read the Readme carefully.


added config for bit depth to eliminate a video mode not available er…

I was getting the following error:
"The requested video mode is not available, switching to a valid mode"
After some research it seems that the bit depth is wrong and I didn't see a spot in config for that so I added it.  I needed 24 bit to make it go away so I assume that 32 was the default.

Thank you for the fix :)


LeftSpacer and RightSpacer not applied on using RulerValuePicker inside tabs fragment

** Describe your issue/feature request here Make sure you read ISSUE_GUIDE. **
StandUp Version:
Android Version: All
Device Information:

MANUFACTURER: All device
BRAND: All brand
MODEL: All Model

Inside Constraint Layout needed to use width as 0dp


Binance - There was an error requesting exchange info

Describe the bug
We have observed an error related to Binance API rate limit on REQUEST_WEIGHT (1200 calls per 60s) has almost reached. As per initial investigation, the issue seems from the rate_oracle_source which is set to default binance. Currently we are investigating this issue and update shall be added on this ticket.
On the screenshot below, the bot was using Kucoin yet the issue for Binance API rate limit still occurs

2023-02-06 12:00:47,643 - 31693 - hummingbot.core.api_throttler.async_request_context_base - INFO - API rate limit on REQUEST_WEIGHT (1200 calls per 60s) has almost reached. Limits used is 1193 in the last 60 seconds
2023-02-06 12:01:17,690 - 31693 - hummingbot.core.api_throttler.async_request_context_base - INFO - API rate limit on REQUEST_WEIGHT (1200 calls per 60s) has almost reached. Limits used is 1193 in the last 60 seconds
2023-02-06 12:02:49,310 - 31693 - hummingbot.connector.exchange.binance.binance_exchange.BinanceExchange - ERROR - There was an error requesting exchange info.
Traceback (most recent call last):
  File "/home/ubuntu/kucoin/hummingbot/connector/exchange_py_base.py", line 1037, in _initialize_trading_pair_symbol_map
    exchange_info = await self._api_get(path_url=self.trading_pairs_request_path)
  File "/home/ubuntu/kucoin/hummingbot/connector/exchange_py_base.py", line 854, in _api_get
    return await self._api_request(*args, **kwargs)
  File "/home/ubuntu/kucoin/hummingbot/connector/exchange_py_base.py", line 896, in _api_request
    request_result = await rest_assistant.execute_request(
  File "/home/ubuntu/kucoin/hummingbot/core/web_assistant/rest_assistant.py", line 75, in execute_request
    raise IOError(f"Error executing request {method.name} {url}. HTTP status is {response.status}. "
OSError: Error executing request GET https://api.binance.us/api/v3/exchangeInfo. HTTP status is 429. Error: {"code":-1003,"msg":"Too much request weight used; current limit is 1200 request weight per 1 MINUTE. Please use the websocket for live updates to avoid polling the API."}

For the workaround, please change the rate_oracle_source to any of the available list ascendex, kucoin, gateio and coingecko. In the event that of 0 balances is displayed, change the global_token.global_token_name to USDT
Steps To Reproduce

Setup any Hummingbot strategy
Connect to any available connector
Start the client and observed that it should be displaying the issue on output and log panel

Release version
v1.12.0 and development branch
Attachments
logs_pmm-ooeusdt.log

+1

Fixed in 1.15.0 Release


Use new translation system throughout codebase

Current situation
Only some of our components and content are using the new translation system.
Desired situation
The entire app should use the new translations system.
Notes
Let's first complete #148 before we pick this up, should be easier to test this that way.
I've provided some examples in components/translations.ts for the Hero.tsx component.
For content you can take a look at content/genesis/genesis-1/translations.ts

The translation system is almost there! with #245 and #279 now merged into master, many of the translation bugs we encounter have now been solved.
We are still dealing with two things moving forward.

[x] #256 flashing white screen following a language switch after loading the page
[x] #250 both languages visible in the same render
[ ] There is no easily accessible language selection, addressed by #148
[ ] #313 Upon clicking a link the locale will always switch back to the default /en url and load the english language
There are two ways to solve this IMO

@afterburn Do you 2 pr's close this issue out?


test(skipUntil): add missing marble tests for skipUntil operator

cover missing one case when source and parameter emits sametime

relates to #530
Forgot I was hold this test case only locally, filling missing test cases for skipUntil.

merged with 616e86e... thanks @kwonoj!


Dynamic Close Button

Add a close button to Dynamic Page Widget so that they can be easily closed

@skyfrench added a close button which renders as part of the route rendering, currently just opens a page with macro set to "CLOSED"
Could you please add a CLOSE_PAGE action (or similar name) which takes a location and removes that locations information from the path
i.e if the current page is http://localhost:3000/left/ionpExample/{"device":"SR04A-VA-IONP-01"}/right/ionpExample/{"device":"SR04A-VA-IONP-01"}/
and I pass {type: CLOSE_PAGE, location: "left"}
the new address should be http://localhost:3000/right/ionpExample/{"device":"SR04A-VA-IONP-01"}/

Added to #101.


Improved feedback button

Make it easier to give feedback – create an endpoint which triggers a slack message

Is this valid for hacktober? 🙂 🎃

Thanks for reaching out, @petter! I've added the hacktoberfest-topic, so feel free to contribute! Feel free to reach out to me over at our Slack workspace if you have any questions!


Added button to center map to palce

Added button to center map to place

Thanks, that's very helpful.


Skip maintaining index for shard_by_attr

Maintaining index sets for shard_by_attr is unnecessary. It's much more performant if we don't have to join it with other indices sets (especially when the other sets are ranged index sets -- we'd perform a loop join in the lua script).
This PR addresses the issue and enforces queries to contain at least 2 query conditions: the shard by attr condition, and another query condition on an indexed attribute (or more conditions).
For custom_index, the first attr (previously the shard_by_attr) is now removed -- the data in the zset for the first attr is the same for all records in the set anyway.

update README
:mag_right: Click to see changes since last update.

Isn't this something we can let the user decide? If their query will always contain "User.where(region: x, user_id: y)", then they can make it a composite index rather than indexing both indices individually.

A slightly more performant approach is just to return the reset in the index set for use_id, since all records in that set has satisfied the condition region: x due to sharding.
With this change, the only case we no longer support is User.where(region: x). I think it's fine to don't support it when ppl decide to shard by region. If we really want to support that, I think the way to go is to provide another method that uses keys / scans -- it's gonna be slow, but the query might also return a lot of data.

Querying for a specific hash tag value isn't necessarily querying a large amount of data though (I'm thinking platform_doc), unless your shard_by_attr doesn't have a lot of unique values?

That's true! tho having the separte index set would only be used for 1 query: .where(shard_by_attr: ) and it cannot a ranged query.
this might be okay when the card of the shard_by_attr is low -- but then we can use scan/keys command efficiently too
but it'd be a problem if the card of shard_by_att is high. if 1 hashtag maps to 1 shard, this set would contain all the record ids on the shard.

a scan API to do index queries could be useful generally

Hmm I guess the scan API only works with the equal condition, query by id, or shard_by_attr where the attr values is part of the redis key name.
Maybe we can use SCAN whenever we see where(...) with a single equal condition. Then having index: false be exactly the same as index: true on shard_by_attr


fix issue with user profile - check token

https://github.com/sopra-fs23-group-07/sopra-fs23-group-07-client/commit/1801e52c94288e618639ce8269f13aa784a33a37


RefreshForm isn't working for me

I've attempted to use RefreshForm on a button's OnSelect Event on an embedded Canvas app and the hosting model driven form does not refresh. I do have access to the model driven data and can perform a quick create on the form so it seems this specific feature may be broken.  I can provide what I'm working with if more detail is needed.

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: e5033427-7b31-0b45-784e-1c90b5cfb559
Version Independent ID: 99e40bcc-943e-2ebe-bb20-61cc5ddd2ce3
Content: Perform actions on the host form from within an embedded canvas app - PowerApps
Content Source: powerapps-docs/maker/model-driven-apps/embedded-canvas-app-actions.md
Service: powerapps
GitHub Login: @aneesmsft
Microsoft Alias: matp

@brendon-colburn, are you still not seeing this work? I will be happy to setup time and see what might be going on.

Thanks for contacting us. As we haven’t heard back from you, I am closing this issue. If you need further help, please reopen the issue or open a new issue.

@mattp123 - Closes #436

@brendon-colburn Thanks for contacting us. As we haven’t heard back from you, I am closing this issue. If you need further help, please reopen the issue or open a new issue.


Fix Grafana panels and add Prometheus alerts

Overview
This PR:

Fix CPU usage and Memory panels
Add panel Synapse Units by Juju Model
Add SynapseUnitsChanged and SynapseHighEventRate alerts

Rationale
Improve monitoring considering horizontal scaling.
Juju Events Changes

Module Changes

Library Changes

Checklist

[x] The charm style guide was applied
[x] The contributing guide was applied
[x] The changes are compliant with ISD054 - Manging Charm Complexity
[x] The documentation is generated using src-docs
[ ] The documentation for charmhub is updated.
[x] The PR is tagged with appropriate label (urgent, trivial, complex)

No charmhub doc for horizontal scaling yet.

Sorry folks, I took the screenshot yesterday but completely forgot about it. Adding!


QwQ-32B-Preview support

Overview
This PR adds support for QwQ-32B-Preview. Currently, it works with a basic prompt starting like Hello.:

Command used to run script: PYTHONPATH=. python3 examples/qwq.py.
Note about convert_from_huggingface changes
I noticed that there was no need to permute q_proj and k_proj as this was only applicable for llama weights (#2228). In my testing, if this was applied, it will produce wrong values.
Tasks
I've listed the tasks below that will need to be done before it is ready:

[x] Dig into why convert_from_huggingface's permute calls are not necessary for this model
[x] Add support for custom prompt and being able to define the weights location

I'll compare the outputs against Huggingface with temperature=0.

some updates from my last set of change:

added --timing option.

here's an example with DEBUG=2:

and here's an example without DEBUG=2:

added another longer validation case:
prompt is: "Can you tell me more about machine learning?"
with answer (number of tokens set to 50): "Sure, I'd be happy to help! Machine learning is a subset of artificial intelligence that focuses on building systems that can learn from data and make predictions or decisions without being explicitly programmed to do so. It's a fascinating field with a lot of real"

here's a run of the new validation case:

cool, i will test later today. does the validation outputs match Huggingface?

oh i haven’t done that yet. HF seems to complain when i tried with temperature is set to 0. but i’ll give it another look later today.

it might be accumulated precision errors. if the first few tokens are always the same (with and without JIT), i think it's fine. the output is coherent enough that it cannot be very wrong

i see. i tested it with and without JIT and i get the same result.
regarding the output for the longer prompt: Can you tell me more about machine learning?, i get similar tokens in the beginning and somewhere in the middle too:
from tinygrad:
Can you tell me more about machine learning? Sure, I'd be happy to help! Machine learning is a subset of artificial intelligence that focuses on building systems that can learn from data and make predictions or decisions without being explicitly programmed to do so. It's a fascinating field with a lot of real
from huggingface:
Can you tell me more about machine learning? Sure! Machine learning is a subset of artificial intelligence that involves training algorithms to make predictions or decisions based on data. It's all about building models that can learn patterns from data and then use those patterns to make predictions on new, unseen data.\nThat
also, the results produced are still coherent.
here's what i exactly ran to test the huggingface code:

cool, i got about 7 tok/s with JITBEAM=2 on M4 Max and the same validation output

bounty is yours! Can pay via paypal or USDC, email<EMAIL_ADDRESS>to claim


jstack appear many ”MySQL Statement Cancellation Timer“

Yesterday, I found a large number of thread alarms in my java program.
firstly I grep my log, catch the timeout exception, Ask the DBA to confirm that there is a short-term network jitter
today I catch the jstack log (one instance), 105 threads waiting like:
"MySQL Statement Cancellation Timer" #128162 daemon prio=5 os_prio=0 tid=0x00007fbfb0008800 nid=0x8e06 in Object.wait() [0x00007fbd150c5000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
at java.lang.Object.wait(Object.java:502)
at java.util.TimerThread.mainLoop(Timer.java:526)
- locked <0x0000000605125268> (a java.util.TaskQueue)
at java.util.TimerThread.run(Timer.java:505)
Should I modify any configuration to solve this problem?

this is config:
autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&connectTimeout=2000&jdbcCompliantTruncation=false&cacheServerConfiguration=true&characterSetResults=utf8&useSSL=false&useLocalSessionState=true


Updating content for Suggested Skills

Changing the Suggested Skills portion of CAF to: remove links to decommissioned sites and to align specific MS Learn learning paths to the corresponding sections of CAF.  This change is done in conjunction with Brian Blanchard in an effort to provide more specific resources on supporting customers through their cloud journey.

@scottburmester : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@scottburmester : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Using Quicktime and Soundflower to record Zoom Meetings... Sound won't record, but does when I try to screen record YouTube as a test

I am trying to record my professor's Zoom meetings using Quicktime. I won't get into it, but the inbuilt recorder Zoom provides isn't an option. I installed Soundflower and created the following multi-output device:

I then select the multi-output device for output:

Then in Quicktime, I select Soundflower (2ch)

With these settings selected, I have tested using YouTube  and successfully recorded audio and video. But when I use the same settings to record our Zoom meetings, I only get video and no audio. Can anyone tell me what I'm doing wrong?

Make sure your Zoom is not using the speakers directly. It should also be set to use Multi-Output Device (or Same as System if you have set Multi-Output Device in Sound Preferences).

Hello, my apologies for jumping in here. I'm also trying to record Zoom meetings, recording just the audio would be enough - but they are meetings in which I am a participant. That means I need to record what Zoom would play on the speakers, but also my own voice (from the microphone). Is that at all possible? Googling terms like "record zoom soundflower" returns lots of hits, but none seem to help with this seemingly basic/natural requirement. Thanks for any assist.
Ian


bootloader_write_chunk doesn't need to take 2 parameters.

This function requires header and payload arguments. However, it is all just a blob of binary data, there should be no reason why we cannot send down the header + payload at the same time. This will be slightly more efficient.
https://github.com/TouchNetix/axiom_pylib/blob/50ed2e5445896867707d4129d107592ab2be8565/axiom_tc/axiom.py#L280

Changes were recently merged in, forgot to link the commit.
https://github.com/TouchNetix/axiom_pylib/commit/2bf4458e12da6a469e02ea8c776b8a03d86d8733


Build system refactoring resulted in broken $(abspath)

I just attempted to upgrade NodeMCU32 to the latest IDF, but the build is now failing for me. Upon closer inspection the build system has somehow mangled the path for a -L for the linker.
I have a custom linker fragment which needs to be added, which I do like so:
COMPONENT_ADD_LDFLAGS:=-L $(abspath ld) -T nodemcu_core.ld -lbase_nodemcu

yet now somehow, by the time the linker runs, turns that path into  -L \/home/johny/src/DiUS/nodemcu-firmware/build/base_nodemcu/ld rather than the expected  -L /home/johny/src/DiUS/nodemcu-firmware/build/base_nodemcu/ld- notice the prepended backslash. If I $(warning ====$(abspath ld)====) in the component.mk at that point, there is no backslash.
If I replace $(abspath ld) with $(COMPONENT_PATH)/ld or even $(PROJECT_PATH)/components/base_nodemcu/ld things work. I am at a loss to explain why $(abspath ld) is broken. It's weird enough that I don't feel good about just ignoring the issue...

There used to be an inconsistency with the current working directory: The project-wide variables (COMPONENT_ADD_LDFLAGS, COMPONENT_ADD_INCLUDEDIRS, COMPONENT_DEPENDS) were evaluated in component.mk with CWD set to $(COMPONENT_PATH), whereas any other target/stage of component.mk was evaluated with CWD set to $(BUILD_DIR_BASE)/$(COMPONENT_NAME)
The refactoring unified these so that the make environment is the same for both kinds of component.mk evaluation, and the working directory is also now the same for both. We had COMPONENT_ADD_LDFLAGS := ... $(abspath blah) .. style stuff in our component.mk files as well, which needed changing to $(COMPONENT_PATH)/blah.
My reasoning is that making it more consistent (component.mk always evaluated in the same working directory) is preferable to having $(abspath) in the same file mean one thing in some contexts and another thing in other context. Sorry we didn't document this better for people with existing components, though..
Let me know if there's a reason this is sub-optimal for the way you're using esp-idf, and we'll figure something out.

Oh I'm all in favour of that unification, it just took me a little while to discover $(COMPONENT_PATH). What I didn't (and still don't) understand is where that leading backslash is introduced into the $(abspath) result (but nothing else). With me using direct (:=) assignment, there should be no late evaluation where it gets changed. It had the "smell" of something that might be indicative of a latent bug somewhere deeper, so I thought I'd report it.

Right, I had not skimmed over the backlash. That is weird...


[Fab] Add disabled class to FAB button

[ x ] I have followed (at least) the PR section of the contributing guide.

Issue:
Fixes #34227
Similar Issue in the past:
[25072] (https://github.com/mui/material-ui/pull/25072)
What does it do?
Fixes disabled class not getting added to button element.
Why is it needed?
disabled class not working in Fab button

The Mui-disabled class now gets applied twice on <Fab disabled />

@michaldudak, fixed multiple occurrences of Mui-disabled class

@mnajdova , thanks for this implementation, I tested this, looks good. can this be merged?

@meenarama will merge it today, I've updated with the latest master, let's wait for the green CI :)

@mnajdova , could you let me know which release, this will be in?

It's released already @meenarama v5.10.8

@mnajdova , Yup, saw that, thx!


[Snyk] Upgrade io.grpc:grpc-netty from 1.57.1 to 1.58.0

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to upgrade io.grpc:grpc-netty from 1.57.1 to 1.58.0.
:information_source: Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.

The recommended version is 2 versions ahead of your current version.
The recommended version was released a month ago, on 2023-09-06.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.
For more information:
🧐 View latest project report
🛠 Adjust upgrade PR settings
🔕 Ignore this dependency or unsubscribe from future upgrade PRs

Update on branch 4.3.02


Search lookup table updates in transactions

Coverage decreased (-0.02%) to 94.022% when pulling f257b7be2d4394a7e6e9bce5000d485f4966f4bc on cody-pg-transactions-for-updates into 8efef14cfa3764694bc875e7d50386305bd715bb on main.


Update Bails menu app not working properly

Describe the bug
Trying to update Bails opens a terminal that immediately closes, I can see in system monitor that it is updating in the background but there is no visible progress.
Further, the command also attempts to update signatures and Bitcoin Core which it should not. It should just get the latest Bails and install that to the Persistent Storage and report success and close.
To Reproduce
Steps to reproduce the behavior:

Go to Bails in app menu
Click on Settings
Click on Update Bails
See bug

Expected behavior
A terminal should open displaying all commands performed. Then a GUI window should display success or failure.

Resolved in #175


there is an package error in prepare_data/download.py

Thank you very much for the open source code,  there is an error that ModuleNotFoundError: No module named 'mapdriver' when run prepare_data/download.py.Is mapdriver is your own file,because I could not install it.Looking forward to your reply

No description provided.

Now you should be able to find mapdriver.py. Sorry for this missing file. So far, by default, download.py will download the imagery from mapbox not google. If you want to download google imagery, you can import mapdriver.py as md2. You also need to create an google api key for static map api and update the GOOGLE_API_KEY at line 18 in the mapdriver.py file.
Please feel free to let me know if there is any trouble running the code or if there are some features you need that I can help.
Thank you!


New version: Ryujinx.Ryujinx version 1.1.1278

Created by 🥟 Dumplings in workflow run #667.
Logs
Updated: 1.1.1277 → 1.1.1278
Cannot validate argument on parameter 'ChatID'. The argument is null, empty, or consists of only white-space characters. Provide an argument that contains non white-space characters, and then try the command again.
Submitting WinGet manifests
Cannot validate argument on parameter 'ChatID'. The argument is null, empty, or consists of only white-space characters. Provide an argument that contains non white-space characters, and then try the command again.

Microsoft Reviewers: Open in CodeFlow

Automatic Validation ended with:

Executable C:\Users\validator\AppData\Local\Microsoft\WinGet\Links\Ryujinx.exe returned exit code: -532462766

(Automated response - build 876.)


Implement multiline editing support

Summary
Currently the shell is able to "preprocess" multiline buffers, and the entire code
for this is inherited from lmorg's original library. Nothing has been changed.
However, the way lmorg handles multiline editing, although definitely working, does
not allow to move around lines of a buffer.
The code is ready for implementing multiline support, it just misses a few things:

[ ] Update selection and yank/paste code to handle multiline in them
(eg. adding/moving/deleting newlines in selections and buffer).
[ ] Add some logic to line.go for the cursor to be correctly replaced each time.
[X] Modify the completion engine functions to trim all newlines/tabs in display values.
[X] Don't remove newlines in the lines each time they are added to history sources.
[ ] Adapt redisplaying the lines when returning from the editor.
[ ] Check if we should actually add a newline between each line returned via rl.lineBuffer() (correct when computing/displaying, but is it useful when returning the line to the caller ? not sure)
[ ] Finish carriageReturnLine() details.
[ ] Need to use a new model for saving history lines (with a timestamp), because now each line is a different history.

Also, some of the functionality/logic in this library (for Vim stuff) has been drawn
from the zsh-vi-mode plugin.
Most of the things to watch out for and consider (written above) should be found easily in there.
Related widgets
The following widgets are either not implemented at all, or missing the movement component
They are related to the multiline editing support described above.

"up-line-or-search",
"down-line-or-select",
"down-line",
"up-line",
"down-line-or-history",
"up-line-or-history",

Advances on the multiline branch: we now have a simple function for library callers to use: they just have to devise "This line is not yet done" or "This line is done". Eases the process for everyone, readline, and shell callers.


[Share] chat doesn't appear in "Shared with me" structure if the link was clicked by user, who is logged out

By user1 prepare share link to any chat in browser1
By user2 log out from DIAL in browser2
By user2 copy the link to the browser2 -> log in appears (ok), after entering credentials DIAL opens by no chat  is in "Shared with me" -> bug

Note: Need to test with prompts
Note: it's ok if the user was logged in to DIAL

Verified on UAT successfully. Check shared link for chat and prompt when user is logged out.


Chinese documentation for LiDAR-Based 3D Semantic Segmentation

This is a development requirement documentation of a feature we wish to collaborate with the community.
In this issue, we wish to welcome the community developers to participate in the improvement of Chinese documentation.
Steps

First, take a look at our English document at LiDAR-Based 3D Semantic Segmentation
According to your understanding of the relevant content, translate it into the corresponding Chinese version

Resources
The doc should be released at 基于Lidar的3D语义分割

added in #1420


Serial plugin cuts off message with custom baudrate

Describe the issue
Sending a message e.g. help will result in sending the message only partially to it's destination hel. This only happens on when the device is connected with a custom baud rate.
Steps to Reproduce

Connect to a serial device with a custom baudrate 4 000 000
Send a message e.g. help

As the documentation of Node SerialPort states:

The baud rate of the port to be opened. This should match one of the commonly available baud rates, such as 110, 300, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 57600, or 115200. Custom rates are supported best effort per platform.

Since there are no plans for changing the used library for Chipmunk 2, the issue will be resolved either by the library owners (of Nde SerialPort) or with the release of Chipmunk 3, where a different library will be used


Update attribute-directives.jade

I signed it!

Thanks but this repo is deprecated, the file you updated is a very very old one.


Documentation - Hyperlinks lead to 'Page not found'

[X] Documentation issue.

The hyperlinks mentioned in screenshot at the URL below leads to - 'Page not found'.
https://github.com/microsoft/commercial-marketplace-resources#mastering-the-marketplace-learning-library

Desired behavior -
Ideally the links should have opened a library of technical content designed to help speed up publishing of SaaS offer to the Azure marketplace.

@dstarr This issue needs your attention.


Ensure encodedQuery doesn't include the URL's fragment

Before updating the call to delimiterOffset, the test failed with:
org.junit.ComparisonFailure:
Expected :
Actual   :#fragment
 <Click to see difference>

I did a quick check of other calls to delimiterOffset, and those looked fine.

Not sure why the Travis tests are failing:
[ERROR] [ERROR] Some problems were encountered while processing the POMs:
[ERROR] 'build.plugins.plugin[org.apache.maven.plugins:maven-surefire-plugin].dependencies.dependency.version' for org.mortbay.jetty.alpn:alpn-boot:jar must be a valid version but is '${alpn.jdk8.version}'. @

mvn clean verify passed locally.

Nice find!

Merging as-is. I need to add ALPN settings for the latest Java 8.


Up to Centrifugo 5.0.1

https://github.com/centrifugal/centrifugo/releases/tag/v5.0.1

Getting warnings on 5.0.1, no warnings on 4.0.2
│ {"level":"info","version":"5.0.1","runtime":"go1.20.5","pid":1,"engine":"memory","gomaxprocs":2,"time":"2023-07-06T01:45:37Z","message":"starting Centrifugo"}                                           │ │ {"level":"info","path":"/centrifugo/config.json","time":"2023-07-06T01:45:37Z","message":"using config file"}                                                                                │ │ {"level":"info","time":"2023-07-06T01:45:37Z","message":"serving GRPC API service on :10000"}                                                                                │ │ {"level":"info","time":"2023-07-06T01:45:37Z","message":"serving websocket endpoints on :8000"}                                                                                │ │ {"level":"info","time":"2023-07-06T01:45:37Z","message":"serving api, admin, prometheus, health endpoints on :9000"}                                                                                │ │ {"level":"warn","key":"CENTRIFUGO_PORT_8000_TCP_PROTO","time":"2023-07-06T01:45:37Z","message":"unknown key found in the environment"}                                                                   │ │ {"level":"warn","key":"CENTRIFUGO_SERVICE_PORT_GRPC","time":"2023-07-06T01:45:37Z","message":"unknown key found in the environment"}                                                                     │ │ {"level":"warn","key":"CENTRIFUGO_PORT_9000_TCP","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                         │ │ {"level":"warn","key":"CENTRIFUGO_PORT_9000_TCP_PORT","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                    │ │ {"level":"warn","key":"CENTRIFUGO_PORT_8000_TCP","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                         │ │ {"level":"warn","key":"CENTRIFUGO_PORT_9000_TCP_PROTO","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                   │ │ {"level":"warn","key":"CENTRIFUGO_PORT_11000_TCP_PROTO","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                  │ │ {"level":"warn","key":"CENTRIFUGO_SERVICE_PORT_UNI_GRPC","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                 │ │ {"level":"warn","key":"CENTRIFUGO_SERVICE_HOST","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                          │ │ {"level":"warn","key":"CENTRIFUGO_SERVICE_PORT_INTERNAL","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                 │ │ {"level":"warn","key":"CENTRIFUGO_PORT_8000_TCP_PORT","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                    │ │ {"level":"warn","key":"CENTRIFUGO_PORT_11000_TCP_PORT","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                   │ │ {"level":"warn","key":"CENTRIFUGO_PORT_9000_TCP_ADDR","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                    │ │ {"level":"warn","key":"CENTRIFUGO_SERVICE_PORT_EXTERNAL","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                 │ │ {"level":"warn","key":"CENTRIFUGO_PORT_11000_TCP","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                        │ │ {"level":"warn","key":"CENTRIFUGO_SERVICE_PORT","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                          │ │ {"level":"warn","key":"CENTRIFUGO_PORT_10000_TCP_PROTO","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                  │ │ {"level":"warn","key":"CENTRIFUGO_PORT_10000_TCP_ADDR","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                   │ │ {"level":"warn","key":"CENTRIFUGO_PORT_11000_TCP_ADDR","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                   │ │ {"level":"warn","key":"CENTRIFUGO_PORT_8000_TCP_ADDR","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                    │ │ {"level":"warn","key":"CENTRIFUGO_PORT_10000_TCP","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}                                                                        │ │ {"level":"warn","key":"CENTRIFUGO_PORT_10000_TCP_PORT","time":"2023-07-06T01:45:38Z","message":"unknown key found in the environment"}

@oleg-smith hello, thanks! I'll suppress the warnings from k8s env vars in next release


Text with html markup not marked

Simple problem:
On some pages, for example search bar display suggestions using highlight, that will translate into html as

Searched terminology

Is it possible to mark terminology and somehow ignore the html?

Have a look at the acrossElements option.


⚠ Samsung has degraded performance

In ec5ee5f, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 3668 ms

Resolved: Samsung performance has improved in c88c839.


Wrong VS Version Shown

Why does the prerequisite list include Visual Studio 2019 and then show the New Project creation in another version of VS?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: a25bf940-8977-fec4-461b-542a9f550fc8
Version Independent ID: 5492c641-af15-64b8-beaa-ddf511be73e6
Content: Tutorial: Get started with Razor Pages in ASP.NET Core
Content Source: aspnetcore/tutorials/razor-pages/razor-pages-start.md
Product: aspnet-core
Technology: aspnetcore-tutorials
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

We haven't updated all the doc.

VS 19 is correct.

Yes, got it going. It just doesn't instill much confidence in a tutorial when the step-by-step guide shows steps which don't look like your screen does. Apart from that, good tutorial.


Allow to configure source paths in configuration file

Closes #154

Codecov Report

Merging #179 (3f2e38a) into main (d3006aa) will increase coverage by 0.22%.
The diff coverage is 87.50%.

:exclamation: Current head 3f2e38a differs from pull request most recent head 31ffc1b. Consider uploading reports for the commit 31ffc1b to get more accurate results

@@            Coverage Diff             @@
##             main     #179      +/-   ##
==========================================
+ Coverage   97.18%   97.41%   +0.22%
==========================================
  Files          25       25
  Lines        1385     1390       +5
==========================================
+ Hits         1346     1354       +8
+ Misses         39       36       -3

Impacted Files
Coverage Δ

robotidy/cli.py
92.25% <87.50%> (+1.74%)
:arrow_up:

robotidy/app.py
94.11% <0.00%> (+1.47%)
:arrow_up:

Continue to review full report at Codecov.

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


Basic support for tracing message processing

This adds a basic implementation for a pluggable message processing tracers.
Support for NewRelic custom instrumentation is included. It requires newrelic_rpm gem and I assume it's provided with Rails application.
Should be fairly easy expandable to other instrumentation sources as well.

I like the idea but the implementation can be simplified. See inline commends.

Thank you!


[API][Web][SIMS-#277]Ministry user views Institution-Detail page

Tried to replicate most of the components from the figma,
TODO code smells are used to remind the changes of components in vuetify3.
Institution details
On the Institution Details Page, the user will see:

[x]  the Institutions 'Designation Status' next to the Institution Name
[x]  The following 'Tabs': Profile, Programs, Locations, Users, Designation, Restrictions, Notes.

Profile

[x] Basic Profile Information Including Legal Operating Name, Institution Name, Type, Regulating Body, Primary Phone Number, Primary Email, Website (Hyperlink to their website) Established Date
[x] Contact Information Including Primary Contact ( First Name / Last Name, Phone Number and email) Legal Authorized Authority Contact ( First Name / Last Name, Phone Number and email).
[x] Mailing Address ( Address 1, Address 2, City, Postal Code, Province, Country)

Created Page

LGTM 👍 added some comments

sorry

i accidentally closeD this PR, reopening the PR

LGTM 👍 good work @guru-aot . Thanks for creating the components which is the foundation for other institution tabs.


Is there a way or a plan to integrate this with 2 way communication for commands?

For example, if I activate my lights via controller by accident - is there a way for the streamdeck to know that my lights are active so that A) the icon changes to show lights are active   and B) I can send the command to turn them off?  Same for if I have my gun out, etc.  I am asking because I believe there is a way to do this type of stuff in MSFS but I did not know if any connected API/interface is available for FiveM.  Thanks!

Hey mate, it is possible in theory but not something that is easily implemented
A second process to read and process the console would be required, as well as the server updating their commands to output a response (eg LIGHTS ON LIGHTS OFF) which would then be read by the plugin and it could update a status
This would need to be developed separately for each command and use case so unfortunately is out of scope of the plugin


Support HTTP/2 in jdisc

HTTP/2 allows more efficient use of connections; client may send multiple requests in parallel over a single HTTP/2 connection. This allows for simpler client implementations (e.g vespa-http-client) and fewer connections overall on our routing layer for hosted Vespa.
Jetty 9.4 already supports running HTTP/1.1 and HTTP/2 over the same connector (using TLS ALPN), although some HTTP/2 functionality may require upgrading Jetty to 10/11.

Vespa jdisc container supports HTTP/2 from 7.425
See documentation and blog post details:

https://docs.vespa.ai/en/performance/http2.html
https://blog.vespa.ai/http2/


In-line styles with nested quotes fails on isValid

In-line styles with nested quotes fail on Cleaner/Jsoup isValid function
I see #988, but it doesn't fix it completely.
For example this will return false, even though it should be true:
Will fail

Looks like the above gets converted to
Will fail
 in copySafeNodes hence returning false instead of true.

Thanks - this doesn't repro in the current HEAD version (didn't try on older versions).
Please open with a testcase if you see a current repro.


The upgrade.json file is not included in the release

Observed behavior
We check this file in the command let the user know if there is an update available, but that file is not currently being included in the releases.

We now use github api to get the latest release, closing now


What's the format of json file of the network structure definition?

In the  "QNN-MO-PYNQ/qnn/src/network/sw/main.cpp"
line 66 to 68:
extern "C" {     void initParameters(unsigned int const batch, unsigned int const threads);     void initAccelerator(char const *networkJson, char const *layerJson);
The json file of network need to be assigned.
But is the format of this json file the same with general deeplearning framework like theano?

Hi, the json format used in the runtime to load the neural network structure has been developed ad-hoc for this. You can see examples of the 2 networks here and here.
Hope this helps


Add git sha to dep table

Closes #108

Will be some conflicts with this which should be reasonably easy to fix.
@dinakar29 - will wait for Adrian to approve before merging in - though you can test this by install this branch of staged.deps in your pipelines

Check on sha matching added (and test added to show it is working)


Testing models

Description
Test coverage for Models and Login and Register routes
Fixes # (issue)
Formated connection object separated the HOST and PORT into different connection object key values
Type of change
Please delete options that are not relevant.

[X] New feature (non-breaking change which adds functionality)

Change Status

[X] Complete, tested, ready to review and merge
[ ] Complete, but not tested (may need new tests)
[ ] Incomplete/work-in-progress, PR is for discussion/feedback

How Has This Been Tested?
Ran test coverage to determine the total % of the backend that has tested
Checklist

[X] My code follows the style guidelines of this project
[X] I have performed a self-review of my own code
[ ] My code has been reviewed by at least one peer
[X] I have commented my code, particularly in hard-to-understand areas
[ ] I have made corresponding changes to the documentation
[X] My changes generate no new warnings
[X] I have added tests that prove my fix is effective or that my feature works
[X] New and existing unit tests pass locally with my changes
[X] There are no merge conflicts

Looks awesome Lesley, thanks for knocking out some tests!
Sent with GitHawk


NodeRecorder: swapped file directory path for URL to support iCloud drive

NodeRecorder: swapped file directory path for URL to support iCloud drive
NodeRecorder still works the same as before when no file directory url is provided. When a file directory url is provided, files are written to this location. I was unable to get it to work with the iCloud documents drive without using the url instead of the path.

Looks good to me.


[Bug]: Inappropriate css: line-height values in Logs

Is there an existing issue for this?

[X] I have searched the existing issues

Description
Wrong line-height value in the console if the value is of numeric type when the Object is expanded
Steps To Reproduce

open the Logs
variable-value is not centered vertically

Public Sample App
No response
Environment
Production
Issue video log
No response
Version
Appsmith Community v1.9.22

still reproducible


error TS2307: Cannot find module 'history'

It seems that something wrong was published into @types/react-router repository, and it triggers the cascade failures of @greenkeeperio-bot tests. Need to investigate before reviewing any of its pull requests. The errors look like this.

The reason is https://github.com/DefinitelyTyped/DefinitelyTyped/issues/11985.


API endpoints take all parameters in a single (required) payload

This approach doesn't really allow us to express what the optional parameters are.

⚠ Disclaimer: this may be just me nitpicking around how we make HTTP requests 😸
To add more context to this issue 👇
This is where we're standing at the moment. Every endpoint follows the approach below.
We accept only one single object in the request body where we expect a number of fields. To keep this simple, let's ignore the nested documents for now. The top-level attributes (e.g. client_public_key, signature, data) are part of a single flat body.

That highlights (some) endpoints could instead make a better use of HTTP expressivity and employ parameters such as query, url, etc. This way, /list would use a path (ie. /list/{job-id}) to return info about a specific job, instead of expecting a body like {..., "id":"<a-job-id>", ....}.
For example, see below how the Estuary API exposes separate parameters. This makes documenting them every easier/nicer!

Will be tackled in #1199. Also see notion for current thoughts.


Add full list of exposed metrics

Also reference them from K8s docs
See #505 for additional endpoints

New labels added by Jan's PR https://github.com/arangodb/arangodb/pull/12505

arangodb_aql_slow_query
arangodb_scheduler_queue_full_failures
arangodb_v8_context_created
arangodb_v8_context_destroyed
arangodb_v8_context_enter_failures
arangodb_v8_context_entered
arangodb_v8_context_exited

Not found in code:

arangodb_agency_agent_read_no_leader
arangodb_agency_agent_read_ok
arangodb_agency_agent_write_hist
arangodb_agency_agent_write_no_leader
arangodb_agency_agent_write_ok

Discovered in code:

Label
Description

arangodb_agency_append_hist
Agency RAFT follower append histogram [ms]

arangodb_agency_commit_hist
Agency RAFT commit histogram [ms]

arangodb_agency_compaction_hist
Agency compaction histogram [ms]

arangodb_agency_local_commit_index
This agent's commit index

arangodb_agency_log_size_bytes
Agency replicated log size [bytes]

arangodb_agency_read_no_leader
Agency read no leader

arangodb_agency_read_ok
Agency read ok

arangodb_agency_term
Agency's term

arangodb_agency_write_hist
Agency write histogram [ms]

arangodb_agency_write_no_leader
Agency write no leader

arangodb_agency_write_ok
Agency write ok

arangodb_intermediate_commits
Intermediate commits

arangodb_load_current_accum_runtime_msec
Accumulated runtime of Current loading [ms]

arangodb_load_current_runtime
Current loading runtimes [ms]

arangodb_load_plan_accum_runtime_msec
Accumulated runtime of Plan loading [ms]

arangodb_load_plan_runtime
Plan loading runtimes [ms]

arangodb_transactions_aborted
Transactions aborted

arangodb_transactions_committed
Transactions committed

arangodb_transactions_started
Transactions started

Static strings:

arangodb_agency_supervision_accum_runtime_msec
arangodb_agency_supervision_accum_runtime_wait_for_replication_msec
arangodb_agency_supervision_failed_server_count
arangodb_agency_supervision_runtime_msec
arangodb_agency_supervision_runtime_wait_for_replication_msec
arangodb_agencycomm_request_time_msec
arangodb_aql_total_query_time_msec
arangodb_dropped_followers_count
arangodb_heartbeat_failures
arangodb_heartbeat_send_time_msec
arangodb_maintenance_action_accum_queue_time_msec
arangodb_maintenance_action_accum_runtime_msec
arangodb_maintenance_action_done_counter
arangodb_maintenance_action_duplicate_counter
arangodb_maintenance_action_failure_counter
arangodb_maintenance_action_queue_time_msec
arangodb_maintenance_action_registered_counter
arangodb_maintenance_action_runtime_msec
arangodb_maintenance_agency_sync_accum_runtime_msec
arangodb_maintenance_agency_sync_runtime_msec
arangodb_maintenance_phase1_accum_runtime_msec
arangodb_maintenance_phase1_runtime_msec
arangodb_maintenance_phase2_accum_runtime_msec
arangodb_maintenance_phase2_runtime_msec
arangodb_scheduler_awake_threads
arangodb_scheduler_num_worker_threads
arangodb_scheduler_queue_length
arangodb_shards_leader_count
arangodb_shards_not_replicated
arangodb_shards_out_of_sync
arangodb_shards_total_count

Found more in StatisticsWorker.cpp, which seems to map statistics to metrics:

Stat
Label
Description

bytesReceived
arangodb_client_connection_statistics_bytes_received_bucket
Bytes received for a request

bytesReceivedCount
arangodb_client_connection_statistics_bytes_received_count
Bytes received for a request

bytesReceivedSum
arangodb_client_connection_statistics_bytes_received_sum
Bytes received for a request

bytesSent
arangodb_client_connection_statistics_bytes_sent_bucket
Bytes sent for a request

bytesSentCount
arangodb_client_connection_statistics_bytes_sent_count
Bytes sent for a request

bytesSentSum
arangodb_client_connection_statistics_bytes_sent_sum
Bytes sent for a request

minorPageFaults
arangodb_process_statistics_minor_page_faults
The number of minor faults the process has made which have not required loading a memory page from disk. This figure is not reported on Windows

majorPageFaults
arangodb_process_statistics_major_page_faults
On Windows, this figure contains the total number of page faults. On other system, this figure contains the number of major faults the process has made which have required loading a memory page from disk

bytesReceived
arangodb_client_connection_statistics_bytes_received_bucket
Bytes received for a request

userTime
arangodb_process_statistics_user_time
On Windows, this figure contains the total amount of memory that the memory manager has committed for the arangod process. On other systems, this figure contains The size of the virtual memory the process is using

systemTime
arangodb_process_statistics_system_time
Amount of time that this process has been scheduled in kernel mode, measured in seconds

numberOfThreads
arangodb_process_statistics_number_of_threads
Number of threads in the arangod process

residentSize
arangodb_process_statistics_resident_set_size
The total size of the number of pages the process has in real memory. This is just the pages which count toward text, data, or stack space. This does not include pages which have not been demand-loaded in, or which are swapped out. The resident set size is reported in bytes

residentSizePercent
arangodb_process_statistics_resident_set_size_percent
The relative size of the number of pages the process has in real memory compared to system memory. This is just the pages which count toward text, data, or stack space. This does not include pages which have not been demand-loaded in, or which are swapped out. The value is a ratio between 0.00 and 1.00

virtualSize
arangodb_process_statistics_virtual_memory_size
On Windows, this figure contains the total amount of memory that the memory manager has committed for the arangod process. On other systems, this figure contains The size of the virtual memory the process is using

clientHttpConnections
arangodb_client_connection_statistics_client_connections
The number of client connections that are currently open

connectionTime
arangodb_client_connection_statistics_connection_time_bucket
Total connection time of a client

connectionTimeCount
arangodb_client_connection_statistics_connection_time_count
Total connection time of a client

connectionTimeSum
arangodb_client_connection_statistics_connection_time_sum
Total connection time of a client

totalTime
arangodb_client_connection_statistics_total_time_bucket
Total time needed to answer a request

totalTimeCount
arangodb_client_connection_statistics_total_time_count
Total time needed to answer a request

totalTimeSum
arangodb_client_connection_statistics_total_time_sum
Total time needed to answer a request

requestTime
arangodb_client_connection_statistics_request_time_bucket
Request time needed to answer a request

requestTimeCount
arangodb_client_connection_statistics_request_time_count
Request time needed to answer a request

requestTimeSum
arangodb_client_connection_statistics_request_time_sum
Request time needed to answer a request

queueTime
arangodb_client_connection_statistics_queue_time_bucket
Request time needed to answer a request

queueTimeCount
arangodb_client_connection_statistics_queue_time_count
Request time needed to answer a request

queueTimeSum
arangodb_client_connection_statistics_queue_time_sum
Request time needed to answer a request

ioTime
arangodb_client_connection_statistics_io_time_bucket
Request time needed to answer a request

ioTimeCount
arangodb_client_connection_statistics_io_time_count
Request time needed to answer a request

ioTimeSum
arangodb_client_connection_statistics_io_time_sum
Request time needed to answer a request

httpReqsTotal
arangodb_http_request_statistics_total_requests
Total number of HTTP requests

httpReqsAsync
arangodb_http_request_statistics_async_requests
Number of asynchronously executed HTTP requests

httpReqsDelete
arangodb_http_request_statistics_http_delete_requests
Number of HTTP DELETE requests

httpReqsGet
arangodb_http_request_statistics_http_get_requests
Number of HTTP GET requests

httpReqsHead
arangodb_http_request_statistics_http_head_requests
Number of HTTP HEAD requests

httpReqsOptions
arangodb_http_request_statistics_http_options_requests
Number of HTTP OPTIONS requests

httpReqsPatch
arangodb_http_request_statistics_http_patch_requests
Number of HTTP PATH requests

httpReqsPost
arangodb_http_request_statistics_http_post_requests
Number of HTTP POST requests

httpReqsPut
arangodb_http_request_statistics_http_put_requests
Number of HTTP PUT requests

httpReqsOther
arangodb_http_request_statistics_other_http_requests
Number of other HTTP requests

uptime
arangodb_server_statistics_server_uptime
Number of seconds elapsed since server start

physicalSize
arangodb_server_statistics_physical_memory
Physical memory in bytes

Request time needed to answer a request <-- what is the unit?
arangodb_client_connection_statistics_[io|queue|request]_time_*
Total time needed to answer a request <-- what is the unit?
arangodb_client_connection_statistics_total_time_*
Time required to send heartbeat <-- add " (ms)"
Intermediate commits <-- is this a counter?


Don't Overflow when printing Thawte Strong Extranet Version

When printing human readable info on the Thawte Strong Extranet extension
the version number could overflow if the version number == LONG_MAX. This
is undefined behaviour.
Issue found by OSSFuzz.

See also #10668 removing support for that.

I'm not sure how reliable it is to search a database of public certs for an extension that was intended for use in extranets.

@kaduk - fixup pushed. Please can you reconfirm?

24 hours has passed since 'approval: done' was set, but as this PR has been updated in that time the label 'approval: ready to merge' is not being automatically set.  Please review the updates and set the label manually.

Pushed. Thanks.


Fail to make -j4 on Centos, all dependencies are installed already

config.mk
.......
USE_BLAS = openblas
ADD_CFLAGS = -L /opt/OpenBLAS/bin
ADD_LDFLAGS = -L /opt/OpenBLAS/lib

openBLAS
[wanghs@db2 OpenBLAS]$ ls /opt/OpenBLAS/
bin  include  lib
[wanghs@db2 OpenBLAS]$ cat /etc/profile
.....
export OPENBLAS_NUM_THREADS=32

error detail
make -j$(nproc)
In file included from /home/wanghs/ocr/mxnet/mshadow/mshadow/tensor.h:16:0,
                 from src/ndarray/./ndarray_function.h:10,
                 from src/ndarray/ndarray_function.cc:8:
/home/wanghs/ocr/mxnet/mshadow/mshadow/./base.h:136:23: 致命错误：cblas.h：没有那个文件或目录
     #include <cblas.h>

ADD_CFLAGS = -I /opt/OpenBLAS/include, CFLAGS is not for bin, but for include head files.

thx