[write-fonts] make STAT offset_to_axis_values nullable

Fixes https://github.com/googlefonts/fontc/issues/582
OTS gives a warning that our offset_to_axis_values is != 0 even though the count of axis_values == 0. This fixes it

codegen CI failed.. ok yeah, I cheated. I modified the generated_stat.rs manually and then backfixed the font-codegen stat file 😅
I'll fix it

Thanks @cmyr for the quick help getting un-stuck. I just squashed. Also, can confirm that after applying this patch and building GS locally with fontc, OTS is now happy and no longer throws a warning about non-zero offset to axis value array.


How to select item programmatically after first time loading is over

I have tried several solutions like
pagingViewController.select(index: 0)
pagingViewController.select(pagingItem: PagingIndexItem(index: 0, title: "First Page"), animated: false)

I have tried writing above code in button click event, it works,, but if try same inside delegate method, then it won't work. If I write it while initialising pagingViewController then it works fine.
Please help me out in this situation.

I have tried to place item selection code inside viewWillAppear method, which will be called once user navigate to other screen and come back to same screen when this code is implemented.

Hi @dhaval4gvm! I'm not sure I understand exactly what you mean. Which delegate method are you trying to select it from?

I mean my custom protocol delegate method, but the select is also not work if I try in viewWillAppear, I have a requirement like when I came back to UIViewController where I have pagingViewController implemented, I have to change the selected item to another one, so I have tried in custom protocol also and also tried placing selection statement in viewWillAppear, but it won't work for me.
But if I write same selection statement while configuring pageViewController then it works.

I'm having some troubles reproducing this. Could you provide some minimal example implementation where this is an issue?

@dhaval4gvm any updates on this?


Fixup in README.md

I think there is a protocol conformance missing in the example.

@swift-server-bot test this please


Replace partitions with hardwareProfiles

Rename partitionDefintion to hardwareProfile and add submitArgs as a new property.
The partitionDefinition is a special case of a hardwareProfile where the submission argument for that profile using Slurm's sbatch would be "--partition=name_of_partition". Making a more general hardwareProfile accomodates several use cases.
At OSC our Pitzer cluster has 7 node types and instead of specifying the partition users must use constraints to specify whether they want a 40 core node (installed 2018) or 48 core Pitzer (installed 2020 as part of the Pitzer expansion). We can create a hardware profile like:
  "batchSystem": {
    "jobManager": "SLURM",
    "hardwareProfiles": [
      "name": "48 core",
      "description": "Pitzer expansion standard compute node",
      "submitArgs": [
        "--constraint=48core"
      ]
    ]

When requesting a GPU on Pitzer OSC users must use the --gpus-per-node=1. We give users the option to use --gres=vis which will start up an X server in the background. The hardwareProfile definition can accomodate these cases as well.
  "batchSystem": {
    "jobManager": "SLURM",
    "hardwareProfiles": [
      "name": "48 core vis",
      "description": "Pitzer expansion standard compute node",
      "submitArgs": [
        "--constraint=48core",
        "--gres=vis"
      ],
      "computeQuotas": {
        "maxGPUsPerJob": 2
      }
    ]

If submitArgs string has a space in it, this string may need to be split by the Gateway using a shell split strategy like shlex.split to ensure splitting a string surrounded by quotes does not occur, so that these arguments could be safely used with libaries like popen which may expect a sequence of arguments and may handle proper shell escaping of the arguments if passed as a sequence/array. Or each array item could be prefixed with the batch scheduler appropriate script directive (i.e. #SBATCH or #PBS or #$).
The submitArgs would differ based on the scheduler used (since arguments for qsub look different than arguments for sbatch). This may be a benefit or a drawback depending on your perspective.
One drawback is the added complexity to the original use case where the hardwareProfile is just a partition. In this case, you now have to add submitArgs with "--partition=name_of_partition".
A Gateway could use this information several ways when building a web form for job submission:

present a dropdown of hardware profiles for users to choose from
present fields such as nodes, gpus, memory and based on user settings, choose the appropriate profile

In both cases, the Gatway would have less responsibility for determining the variety of submission arguments required in addition to basic arguments like --nodes= and --ntasks-per-node=.

Another drawback is that a hardware profile on Pitzer that referred to a standard compute node, omitting the constraint 40core or 48core, would be a profile that would actually encompass multiple node types with multiple CPU counts (the 2018 Pitzer nodes have 40 cores and the 2020 Pitzer nodes have 48 cores). In this case, if a user specifies 48 cores they will definitely get the 2020 Pitzer node, but if the user specifies 40 cores they may get 2018 or 2020 Pitzer node, whichever is available sooner.
So to get the end result for the gateway, I might define cpuCount in nodeHardware (and even memory in node hardware) to be that of the 2020 Pitzer node, but it would technically be inaccurate.
Does that mean that nodeHardware should actually be an array instead of an object so it could accommodate multiple node types?

The last two commits (8590f6520c9f06cbdad0295e1bffc603b9d51774 213631c84f6f573041651646365ac6a558a1395c) may be slightly controversial.
Summary:

port was already present in connectionDefinition so just added host - this seems to serve the purpose of the discussed serviceHost servicePort and its shorter (and we use just "host" in other places); if you feel that both should be renamed to serviceHost and servicePort that's fine with me
proxyHost and proxyPort could still serve a purpose in case of accessing via bastion host
useProxy seemed redundant - if proxyHost and proxyPort are not present, don't use it, if present, use it?


Cables model update

Node id should be the foreign key for nodes and not also their from-to timestamps

solved in the last 4 commits, as of this one 71aaddbfb795201b1950cff191ec1471c605e27e


feat: pass through response headers on the server

fetchProxyHeaders option currently defaults to ['cookie'] - so by default a set authentication cookie is passed through
see related

https://github.com/drunomics/nuxtjs-drupal-ce/pull/127
https://github.com/drunomics/lupus-nuxt-kickstart/pull/318/files
https://axios.nuxtjs.org/options#proxyheaders (library which was used in nuxt2)

we should to make sure we also pass through response headers to the client as needed / wanted. We probably want to introduce a new configuration option for that.

Use cases:

cache-headers - allow passing through cachability
Set-Cookie - pass through cookie when session is created

https://github.com/drunomics/nuxtjs-drupal-ce/blob/2.x/src/runtime/composables/useDrupalCe.ts#L82
This is were the request is made.
Response headers can be set by middleware<EMAIL_ADDRESS>I guess we could define a global server-only middleware that takes care of pass through of response headers: https://nuxt.com/docs/guide/directory-structure/middleware#ordering-global-middleware
But we need to make the  the headers available somewhere. Could we make the whole response object available via our composable? Then our server middleware could respect a new setting and pass through a couple of configured response headers.

that's implemented now.


Create "no sync version" once bug fix is in place

[x] Create no sync version
[x] test
[x] release

Target make sshnp WAY faster

@gkc created in #187 and @cconstab has tested

Complete


Receiving Invalid Transaction: Transaction is outdated at start up

When starting the worker, I'm quite often getting an error  Invalid Transaction: Transaction is outdated from the node:
MU-RA server listening on ws://<IP_ADDRESS>:3494
[+] RPC direction invocation server listening on wss://<IP_ADDRESS>:2094
    [Enclave] Create attestation report successful
[>] Register the enclave (send the extrinsic)
[<] Extrinsic got finalized. Hash: Some(0xbf24093eadee6e08925b7546519d62dfb0fef60daf4fcac157bd753da2d62500)

light client is synced until block: 53
Last finalized block number: 60

[+] Found 7 block(s) to sync
[2021-10-29T07:13:20Z ERROR ws::handler] WS Error <Custom(Extrinsic("extrinsic error code 1010: Invalid Transaction: Transaction is outdated"))>
Synced 60 out of 60 finalized parentchain blocks

Debug logs before & after error:
[2021-12-30T16:05:49Z INFO  integritee_service] Were the first validateer to be registered, syncing parentchain blocks until the one we have registered ourselves on.
[2021-12-30T16:05:49Z DEBUG itc_parentchain_block_importer::block_importer] Import blocks to light-client!
[2021-12-30T16:05:49Z DEBUG itc_parentchain_light_client] Syncing finalized block without grandpa proof. Amount of unjustified headers: 1
[2021-12-30T16:05:49Z DEBUG itc_parentchain_light_client::io] backup light client state
[2021-12-30T16:05:49Z DEBUG itc_parentchain_light_client::io] Seal light client State. Current state: LightValidation { num_relays: 1, tracked_relays: {1: RelayInfo { last_finalized_block_header_number: 1, current_validator_set: [(<wasm:stripped>, 1)], current_validator_set_id: 0 amount of transaction in tx_inclusion_queue: 0 }} }
[2021-12-30T16:05:49Z DEBUG itp_stf_executor::executor] Update STF storage upon block import!
[2021-12-30T16:05:49Z DEBUG integritee_service::ocall_bridge::bridge_api] Requesting WorkerOnChain OCall API instance
[2021-12-30T16:05:49Z DEBUG integritee_service::ocall_bridge::worker_on_chain_ocall]     Entering ocall_worker_request
[2021-12-30T16:05:49Z DEBUG itp_stf_state_handler::file_io] read encrypted state with hash 0xa5ada7547eba11bc5a27e792761eb9e67e25e0571ac887927a0500aaf822a0b3 from ./shards/9wQfu3QCMArE1f1GBtGxzauagQvizsKBrNHeR191chpP/state.bin
[2021-12-30T16:05:49Z DEBUG itp_stf_state_handler::file_io] State loaded from ./shards/9wQfu3QCMArE1f1GBtGxzauagQvizsKBrNHeR191chpP/state.bin with size 1506B, deserializing...
[2021-12-30T16:05:49Z DEBUG itp_stf_state_handler::file_io] new encrypted state with hash=[174, 191, 107, 58, 164, 197, 247, 56, 137, 98, 31, 249, 173, 127, 48, 215, 174, 102, 210, 23, 80, 213, 245, 14, 15, 228, 234, 144, 80, 97, 62, 86] written to ./shards/9wQfu3QCMArE1f1GBtGxzauagQvizsKBrNHeR191chpP/state.bin
[2021-12-30T16:05:49Z DEBUG itp_stf_executor::executor] No shards are on the chain yet
[2021-12-30T16:05:49Z DEBUG itc_parentchain_indirect_calls_executor::indirect_calls_executor] Scanning block 1 for relevant xt
[2021-12-30T16:05:49Z DEBUG itc_parentchain_light_client] Syncing finalized block without grandpa proof. Amount of unjustified headers: 2
[2021-12-30T16:05:49Z DEBUG itc_parentchain_light_client::io] backup light client state
[2021-12-30T16:05:49Z DEBUG itc_parentchain_light_client::io] Seal light client State. Current state: LightValidation { num_relays: 1, tracked_relays: {1: RelayInfo { last_finalized_block_header_number: 2, current_validator_set: [(<wasm:stripped>, 1)], current_validator_set_id: 0 amount of transaction in tx_inclusion_queue: 0 }} }
[2021-12-30T16:05:49Z DEBUG itp_stf_executor::executor] Update STF storage upon block import!
[2021-12-30T16:05:49Z DEBUG integritee_service::ocall_bridge::bridge_api] Requesting WorkerOnChain OCall API instance
[2021-12-30T16:05:49Z DEBUG integritee_service::ocall_bridge::worker_on_chain_ocall]     Entering ocall_worker_request
[2021-12-30T16:05:49Z DEBUG itp_stf_state_handler::file_io] read encrypted state with hash 0xaebf6b3aa4c5f73889621ff9ad7f30d7ae66d21750d5f50e0fe4ea9050613e56 from ./shards/9wQfu3QCMArE1f1GBtGxzauagQvizsKBrNHeR191chpP/state.bin
[2021-12-30T16:05:49Z DEBUG itp_stf_state_handler::file_io] State loaded from ./shards/9wQfu3QCMArE1f1GBtGxzauagQvizsKBrNHeR191chpP/state.bin with size 1506B, deserializing...
[2021-12-30T16:05:49Z DEBUG itp_stf_state_handler::file_io] new encrypted state with hash=[164, 73, 53, 208, 45, 188, 225, 140, 198, 129, 153, 230, 121, 231, 202, 223, 192, 34, 182, 243, 151, 228, 181, 20, 92, 176, 77, 231, 16, 60, 174, 211] written to ./shards/9wQfu3QCMArE1f1GBtGxzauagQvizsKBrNHeR191chpP/state.bin
[2021-12-30T16:05:49Z DEBUG itp_stf_executor::executor] No shards are on the chain yet
[2021-12-30T16:05:49Z DEBUG itc_parentchain_indirect_calls_executor::indirect_calls_executor] Scanning block 2 for relevant xt
[2021-12-30T16:05:49Z DEBUG itc_parentchain_light_client] Syncing finalized block without grandpa proof. Amount of unjustified headers: 3
[2021-12-30T16:05:49Z DEBUG itc_parentchain_light_client::io] backup light client state
[2021-12-30T16:05:49Z DEBUG itc_parentchain_light_client::io] Seal light client State. Current state: LightValidation { num_relays: 1, tracked_relays: {1: RelayInfo { last_finalized_block_header_number: 3, current_validator_set: [(<wasm:stripped>, 1)], current_validator_set_id: 0 amount of transaction in tx_inclusion_queue: 0 }} }
[2021-12-30T16:05:49Z DEBUG itp_stf_executor::executor] Update STF storage upon block import!
[2021-12-30T16:05:49Z DEBUG integritee_service::ocall_bridge::bridge_api] Requesting WorkerOnChain OCall API instance
[2021-12-30T16:05:49Z DEBUG integritee_service::ocall_bridge::worker_on_chain_ocall]     Entering ocall_worker_request
[2021-12-30T16:05:49Z DEBUG itp_stf_state_handler::file_io] read encrypted state with hash 0xa44935d02dbce18cc68199e679e7cadfc022b6f397e4b5145cb04de7103caed3 from ./shards/9wQfu3QCMArE1f1GBtGxzauagQvizsKBrNHeR191chpP/state.bin
[2021-12-30T16:05:49Z DEBUG itp_stf_state_handler::file_io] State loaded from ./shards/9wQfu3QCMArE1f1GBtGxzauagQvizsKBrNHeR191chpP/state.bin with size 1506B, deserializing...
[2021-12-30T16:05:49Z DEBUG itp_stf_state_handler::file_io] new encrypted state with hash=[251, 229, 152, 127, 177, 149, 140, 137, 167, 130, 80, 40, 162, 219, 141, 72, 221, 210, 63, 99, 189, 226, 171, 128, 31, 30, 237, 104, 220, 134, 49, 240] written to ./shards/9wQfu3QCMArE1f1GBtGxzauagQvizsKBrNHeR191chpP/state.bin
[2021-12-30T16:05:49Z DEBUG itp_stf_executor::executor] No shards are on the chain yet
[2021-12-30T16:05:49Z DEBUG itc_parentchain_indirect_calls_executor::indirect_calls_executor] Scanning block 3 for relevant xt
[2021-12-30T16:05:49Z DEBUG integritee_service::ocall_bridge::bridge_api] Requesting WorkerOnChain OCall API instance
[2021-12-30T16:05:49Z DEBUG integritee_service::ocall_bridge::worker_on_chain_ocall] Enclave wants to send 3 extrinsics
[2021-12-30T16:05:49Z ERROR ws::handler] WS Error <Custom(Extrinsic("extrinsic error code 1010: Invalid Transaction: Transaction is outdated"))>
[2021-12-30T16:05:49Z DEBUG itc_parentchain_light_client::io] backup light client state
[2021-12-30T16:05:49Z DEBUG itc_parentchain_light_client::io] Seal light client State. Current state: LightValidation { num_relays: 1, tracked_relays: {1: RelayInfo { last_finalized_block_header_number: 3, current_validator_set: [(<wasm:stripped>, 1)], current_validator_set_id: 0 amount of transaction in tx_inclusion_queue: 3 }} }
*** Subscribing to events
[+] Subscribed to events. waiting...

Interesting. I have never observed this.

Hm. Maybe it's an local error only. @echevrier @mullefel do you also see such an error or is it only me?
(I'm using most recent node and worker on master branch)

I don't think I've seen it before, but I haven't run the worker with a node for a while now.

I'm not sure, but I think I had it once.

I can confirm the bug, I get it every time I start the worker. But the worker runs afterwards.

I'm not getting this error anymore, seemed to have been solved somewhere along the lines. 🎉

Actually it's not solved - Jenkins is still getting it.
Discovery: Error only pops up when multiple parentchain blocks are synced. Probably a ParentchainBlock Confirmation problem.

@haerdib was this ever solved?

No, this has not yet been solved.

This should be solved by https://github.com/integritee-network/worker/pull/1033.

@haerdib Can you please check if this is solved?

I confirm, the error message is gone. Thanks a lot! 🥳


Fix the size and position of Navbar

The navigation bar other than index.html shows glitch due to change in code.

Since @hhvyas You have done it a great one in index.html, assigning it to you to fix it in other pages too.


Ingress: appends trailing dot to hostnames

This makes Ingress work with the Google provider. We should standardize either way. For now, I chose to add the dot before passing it onwards.

👍 just a minor thing that we have to probably do it for services as well

For reference: for now, we settle to require the trailing dot. So Service annotations have to provide it, otherwise it's undefined behaviour. Ingress rule's hosts don't allow the trailing dot so we inject it there.


Unable to fetch principal info on freshly provisioned cluster

Issue
After deploying a simple cluster with Elemental I have this issue in Cluster Members:

I'm also unable to deploy an application with Helm Chart in Apps/Charts, I have a blank screen like this:

After some checks I found these errors in rancher's logs:
# kubectl logs -f -n cattle-system -l app=rancher
2022/12/20 09:30:47 [ERROR] error syncing 'c-m-2qhcwxfr/creator-cluster-owner': handler mgmt-auth-crtb-controller: users.management.cattle.io "system:admin" not found, requeuing
2022/12/20 09:30:55 [ERROR] error syncing 'p-kntm9/creator-project-owner': handler mgmt-auth-prtb-controller: users.management.cattle.io "system:admin" not found, requeuing
2022/12/20 09:30:55 [ERROR] error syncing 'p-hdt27/creator-project-owner': handler mgmt-auth-prtb-controller: users.management.cattle.io "system:admin" not found, requeuing

Looks like a permission/owner issue.
I found a workaround to this issue: go to local cluster, More Resources, Cluster Provisioning, Clusters, then select your newly created cluster (cluster-k3s in my case)  then Edit Config. In Cluster Configuration select Member Roles: you can see the Unable to fetch principal info error but you can also (re)add your admin user as a owner:

You can then delete the bad one. All will now work as expected. In fact it will work even if you keep the bad owner but in that case the Cluster Members list will be empty.
How to reproduce this issue
Install the componment in this order:

K3s (or RKE2)
CertManager (latest version)
Rancher Manager v2.7.0
Elemental Operator (DEV version, v1.1.0-x)
Elemental UI plugin

Then create the diffents Kinds from the CLI (I used kubectl apply -f):

Cluster (K3s, only one node)
MachineRegistration
Selector

Then download the registrationUrl file and add it in a DEV ISO, then provisioned a node in the cluster.
I added elemental-support logs if this can help (before and after changing the cluster's owner).
after_changing_owner-k3s-rancher-2022-12-20T121008+0100.tar.gz
before_changing_owner-k3s-rancher-2022-12-20T120717+0100.tar.gz
NOTE: I also tried to add the UI plugin BEFORE configuring/provisioning the cluster with Elemental but this didn't change anything.

This happens with k3s and RKE2 ?

This happens with k3s and RKE2 ?

Yes, I just tested and it happens if you try to provisioned K3s or RKE2. It also happens if Rancher Manager is installed ontop of K3s or RKE2 (the user who initialy had this issue installed RM ontop of RKE2).
And the workaround works also on RKE2 provisioned cluster.

Did you use YAML files to create resources or you made it totally in the UI?

All YAML

All YAML

This issue happens with the UI.

I just checked and I still have the issue on Rancher Manager 2.7.0 with the latest version of elemental-operator.

I doubt there is an issue with Elemental here, probably it is not even a Rancher issue. About week ago I spent some time reproducing it and trying to debug it and I do believe we are missing some RBAC resources or simiar when creating a rancher cluster from a YAML using kubectl, after some attempts I could figure exactly what was missing. Rancher does not document cluster creations from yaml files anywhere I could find and, to my eyes, rancher-client is there for this reason, to allow rancher usage from the command line without having this sort of gitches. I have no experience with rancher-client, probably we should give it a look and try document our command line usage by using it rather than using kubectl. I am not very happy with the idea, but probably this is the way to avoid this sort of glitches and follow common and documented rancher practices.
My take on this issue is that we should reconsider our docs and do not document ourselves how to create rancher resources or, at most, reproduce some already documented procedure if this is direct and simple enough to prevent linking users to somewhere else.
Also the quick start guide should be reconsidered as soon the UI is in place. Shouldn't it be based on the UI? How are we going to document the UI?
@agracey @aalves08  do you envision the UI documentation?

I did another round of attempts to sort this out with some more satisfying results. I followed instructions from slack channel (kudos to @MbolotSuse ) to actually set kubectl to login as a rancher user (rancher token as auth method) and seams to better result. The error message is gone and the default user is included. At the end I believe the easier is to configure kubectl with the autogenerated kubeconfig for the local cluster (downloading it or copying it to clipboard already generates a token, it can be done by the top icons on cluster dashboard).
If all CRDs are then created using the autogenerated kubeconfig the resulting cluster was including the default member like a cluster created from the UI. However, at least in my env, I could not manage to install any chart from the UI. Probably this is problem on my setup, I did pile of different tests and my env pretty much resource limited (2GB per node)... Trying to install did not produce any error, but clicking install to any chart just resulted in an empty page with no feedback.
@ldevulder I am not sure this is the behavior you also saw in the past. Would you mind giving a try using the autogenerated kubeconfig to create all crds from yamls as in the quick start guide? I'd like to ensure another pair of eyes have the same behavior.

nice investigation!
so, if I understand it correctly, the issue seems that the user in the kubectl config we use (the one from the rancher cluster) is missing some auth on the resources created in the elemental cluster.
My wild guess would be that we miss a Role in the generated elemental cluster, which should be created by Rancher when deploying the cluster via rancher agent's plans 🤔

@ldevulder I can confirm that despite using the kube config from the local cluster to create a cluster from a yaml I cannot install any workload from the UI, something fails in that case. However if I edit the config of the created cluster as suggested in the workaround of this issue I can install workloads again without issues 🤷🏽♂  Feels something else is missing to be fully compatible with the UI when creating CRDs using the kubectl command line tool 🤔 Gonna try to debug it again, since we are slightly further now I can see something else.

I wonder if it would be different using the rancher cli? Direct API access to the rancher cluster is technically not supported so we may be running up against unintended consequences of their design.

Moving to blocked for now.
We need to better understand Rancher provisioning.
There's also the question if we should add UI documentation to elemental.docs.rancher.com (and eventually drop the command line instructions 🤔 ) /cc @agracey

UI documentation task: https://github.com/rancher/elemental-docs/issues/57

Might be unsupported 🤔

Latest fix in: https://github.com/rancher/elemental/pull/751.


Add NORA Summer School, Norway

Please follow the (MM/DD) date format for 2023 summer schools, and add the city (not only the country). If it is known also add the price

Updated!
There are three tracks in the summer schools. They happen in different cities. Added them.

It might be worth noting somewhere that the dealine for the first track has already passed (March 15th).

Moved the position of the summer school and added Track 1 deadline.


Install linter automatically.

By using atom-package-deps you are able to install linter automatically on activation. This will allow new Atom users to install only your package and nothing else, removing one step from the installation process.
Please see AtomLinter/linter-ruby#38 for example.

Quick question - does this mean the user has to manually install atom-package-deps for this to work?

Nope!
On Sun, Sep 6, 2015, 4:27 AM Husam Hebaishi<EMAIL_ADDRESS>wrote:

Quick question - does this mean the user has to manually install
atom-package-deps for this to work?
—
Reply to this email directly or view it on GitHub
https://github.com/hebaishi/linter-gcc/issues/6#issuecomment-138063778.

Sounds good! I'll try to make the changes at some point this week.

Added
require("atom-package-deps").install("linter-gcc");

to my activate function and it just gave an error saying atom-package-deps could not be found. I thought atom-package-deps was a core package. I've removed it for now.

atom-package-deps isn't a core package. It's a Node Package Manager module, created by @steelbrain, much like the atom-linter module, to install a list of package dependencies.

Gotcha... I've added atom-package-deps to the dependences list, and put linter in the package-deps but it still won't linstall linter. Am I doing something wrong?

@hebaishi Just a side note that it doesn't install anything if it's already installed

Got it working! Small error in the package manifest. Working brilliantly now! Thanks a lot @steelbrain for the amazing work! I love the progress bar!


option to toggle editor window on/off

Requesting a feature to toggle the editor window on/off.  MarkPad would then act as a viewer for rendered markdown.
Avoid letting a user toggle both views off. If preview is off, and editor is toggled off, preview would then be toggled on.
Maybe save the toggle state of the views between runs of MarkPad. May help for a user that only uses one of the views.

@mcdon-ron  Can I try to  fix this issue?


Add JakobDev.jdDesktopEntryEdit

[x] Have you signed the Contributor License Agreement?
[x] Have you checked that there aren't other open pull requests for the same manifest update/change?
[x] This PR only modifies one (1) manifest
[x] Have you validated your manifest locally with winget validate --manifest <path>?

[x] Does your manifest conform to the 1.4 schema?

Note: <path> is the name of the directory containing the manifest you're submitting.

Microsoft Reviewers: codeflow:open?pullrequest=https://github.com/microsoft/winget-pkgs/pull/112743&drop=dogfoodAlpha

What exactly are the issues?

Automatic Validation ended with:

2023-07-21 08:22:39.340 [FAIL] D:\a_work\1\s\external\pkg\src\AppInstallerCommonCore\DODownloader.cpp(289)\WindowsPackageManager.dll!00007FFB5D5F1EFD: (caller: 00007FFB5D5F27D0) Exception(1) tid(260) 80072EE2  2023-07-21 08:23:17.957 [FAIL] Installer failed security check. Url: https://sourceforge.net/projects/jddesktopentryedit/files/1.2/jdDesktopEntryEdit-1.2-WindowsInstaller.exe/download Result: 0x80004005

@stephengillie The download and install works without a problem for me, so you should retry

/AzurePipelines run

@wingetbot waivers Add Validation-Unapproved-URL

Ping @stephengillie

/azp run


[C++] An Error Occured While Reading Parquet File Using C++ - GetRecordBatchReader -Corrupt snappy compressed data.

Hi All
When I use Arrow Reading Parquet File like follow:

auto st = parquet::arrow::FileReader::Make(
                    arrow::default_memory_pool(),
                    parquet::ParquetFileReader::Open(_parquet, _properties), &_reader);
arrow::Status status = _reader->GetRecordBatchReader({_current_group},_parquet_column_ids, &_rb_batch);
_reader->set_batch_size(65536);
_reader->set_use_threads(true);
status = _rb_batch->ReadNext(&_batch);

status is not ok and an error occured like this:

IOError: Corrupt snappy compressed data.

When I comment out this statement

 _reader->set_use_threads(true);

The program runs normally and I can read parquet file well.
Program errors only occur when I read multiple columns and using _reader->set_use_threads(true); and a single column will not occur error
The testing parquet file is created by pyarrow，I use only 1 group and each group has 3000000 records.
The parquet file has 20 columns including int and string types
you can create a test parquet file using attachment python script
In my case,I read 0,1,2,3,4,5,6 index columns
Reading file using C++,arrow 7.0.0 ,snappy 1.1.8
Writting file using python3.8 ,pyarrow 7.0.0
Looking forward to your reply
Thank you!
@pitrou
@westonpace
Environment: C++,arrow 7.0.0 ,snappy 1.1.8, arrow 8.0.0
pyarrow 7.0.0 ubuntu 9.4.0  python3.8,
Reporter: yurikoomiga
Original Issue Attachments:

test_std_02.py

Externally tracked issue: https://github.com/apache/arrow/issues/13186
Note: This issue was originally created as ARROW-16642. Please see the migration documentation for further details.

SnappyCodec::Decompress() called from SerializedPageReader::DecompressIfNeeded() fails if input_len == 0
It happens if all values in column are NULLs.

diff --git a/cpp/src/arrow/util/compression_snappy.cc b/cpp/src/arrow/util/compression_snappy.cc
index 731fdfd13..b862c6a24 100644
--- a/cpp/src/arrow/util/compression_snappy.cc
+++ b/cpp/src/arrow/util/compression_snappy.cc
@@ -43,6 +43,9 @@ class SnappyCodec : public Codec {
  public:
   Result<int64_t> Decompress(int64_t input_len, const uint8_t* input,
                              int64_t output_buffer_len, uint8_t* output_buffer) override {
+    if (!input_len) {
+      return 0;
+    }
     size_t decompressed_size;
     if (!snappy::GetUncompressedLength(reinterpret_cast<const char*>(input),
                                        static_cast<size_t>(input_len),

Could you open a pull request with a test?

IIRC, levels are compressed together with values. If all values are NULLs, it must have definition levels encoded and compressed. In any case, the compressed length should not be 0. The fix itself looks reasonable to me.


cmd/cover: support branch coverage

As of Go version 1.11, the cover tool only supports statement coverage, but not branch coverage.
It would be nice if branch coverage would be supported, too.
Only those branches that are visible from the source code should be covered. For example, in the following code, whether or not the checks for len(s) and s[0] are combined by the optimizer, that should not affect the branch coverage.
Example: switch
fun Switch(s string) bool {
    switch s {
    case "yes", "yeah", "yippieh":
        return true
    case "no", "never", "nope":
        return false
    }
    panic(s)
}

Workaround for the switch case:
fun Switch(s string) bool {
    switch s {
    case "yes": return true
    case "yeah": return true
    case "yippieh": return true
    case "no": return false
    case "never": return false
    case "nope": return false
    }
    panic(s)
}

Example: boolean shortcut operators
fun And(a, b bool) bool { return a && b }
fun Or(a, b bool) bool { return a || b }

Currently, there is a single checkpoint for each of the above functions, just before the return statement.
Workaround for the && case:
func And(a, b bool) bool {
	Checkpoint()
	ok := true
	if !a {
                Checkpoint()
                ok = false
	} else {
		Checkpoint()
		if !b {
                        Checkpoint()
			ok = false
		} else {
			Checkpoint()
		}
	}
	return ok
}

//go:noinline
func Checkpoint() {}

This workaround is much longer than the original a && b and is therefore not likely to appear in any human-written source code.
In the case of boolean operations, checkpoints for code coverage should also include the else branches, even if omitted. When visualizing them using code highlighting, they would be invisible (because the code for them is empty), but a marker in the side bar could mention %d of %d branches covered.
The current documentation of the cover source code doesn't mention whether it was an intentional decision to support only statement coverage or whether it was omitted because of low priority.
See this Stack Overflow question.

@ianthehat, do you know who owns cmd/cover? I don't see an entry in https://dev.golang.org/owners/.

Previous issues have been handled by @robpike .

Not sure, you could make an argument for compiler, tools or open source teams owning that one.
I don't think we have an existing owner or expert right now.
@andybons we should probably take the time to make sure that /owners/ is complete and has owners for everything that is not deprecated

It was a consequence of the design, not deliberate and not accidental. I think it's fine and would prefer to leave things as they are. The simplicity of the current implementation is worth a lot.

Thank you for sharing your views. I agree that the current code is really simple to read and understand (although it's of course a difficult topic), which makes a really good starting point for third-party products to implement the branch coverage.

I see the argument for not doing it, but I've wanted this in the past. Perhaps a more powerful coverage tool could exist in the x/tools repository.

Wouldn't the instrumentation pass need to run after the compiler has linearized the expressions?  I don't see how that could be a standalone tool.

@mvdan, @dgryski I have extended junhwi/gobco in a pull request so that it does everything I want for now.


Implement ECDH-1PU envelope

Add encrypter and decrypter for ECDH-1PU to did-jwt. alg = ECDH-1PU+XC20PKW, enc = XChacha20Poly1305

possibly this relates to did-jwt#169


(.gitignore) Add workaround for atom fuzzy-finder index: https://github.com/atom/fuzzy-finder/issues/65

Assigned to @simong for review

I accidentally pushed this fix to master with a README.md change. I've followed up on this here: https://github.com/oaeproject/Hilary/commit/9711b11eb93583a9b73a03be8fb326a937dd5463


Initial support for Reactive API

Fixes #520
Fixes #458 (for non-reactive binders)
Adds spring-cloud-stream-reactive module.
Introduces support for declarative @StreamListener and @Input and @Output annotated parameters.
Add StreamListenerArgumentAdapter and StreamListenerResultAdapter for wrapping bindable inputs
and outputs when passing arguments to declarative @StreamListener.
Adds support for using reactive types (Flux/Observable) with traditional binders.
Introduce FluxSender and ObservableSender for handling multiple streaming outputs per method.
Ensure that errors are caught and logged.

squashed and merged as https://github.com/spring-cloud/spring-cloud-stream/commit/08d65a92bb76591e7e88047f58e9ed0fe329584c


Outlier 3-px error value in last batch of validation set

When I use finetune.py to train, when the code reach the last batch of validation set, if I set validation batch size to 3 (which can't divide validation set size), the last batch validation error (3-px error) is very large compared to all the previous validatioin error. Why is it happen? Thanks.
batch size setting:
TestImgLoader = torch.utils.data.DataLoader(     DA.myImageFloder(test_left_img, test_right_img, test_left_disp, False),     batch_size=2, shuffle=False, num_workers=4, drop_last=False)
result image (see iter 13, use your pretrained KITTI2015 model):

But when i use batch_size=2, which can divide validation set size, the result is normal. (use your pretrained KITTI2015 model)

And when i use my own trained model, the situation even worse in both validation batch_size=2 and 3.
Iter 0 3-px error in val = 0.979
Iter 1 3-px error in val = 0.495
Iter 2 3-px error in val = 2.987
Iter 3 3-px error in val = 1.483
Iter 4 3-px error in val = 1.028
Iter 5 3-px error in val = 0.730
Iter 6 3-px error in val = 2.347
Iter 7 3-px error in val = 2.339
Iter 8 3-px error in val = 3.413
Iter 9 3-px error in val = 1.755
Iter 10 3-px error in val = 1.139
Iter 11 3-px error in val = 15.801
Iter 12 3-px error in val = 1.836
Iter 13 3-px error in val = 0.706
Iter 14 3-px error in val = 2.358
Iter 15 3-px error in val = 0.646
Iter 16 3-px error in val = 1.741
Iter 17 3-px error in val = 2.123
Iter 18 3-px error in val = 1.530
Iter 19 3-px error in val = 33.141
Another question: how much the training batch size will affect the result? batch_size=12 will do much better than batch_size=2?

@mzy97
I thought it's normal because we used 40 images to valid.
While batch size is 3, the last iteration only contained 1 image pair, and the error can not be averaged with other "good performance image pairs".
We suggest the training batch size can be set to 8~16.
In our experiments, yes, batch size =12 is much better than batch size =2.

@JiaRenChang
Very glad to see your reply.
But in your code to calculate validation error, i can't see why this "bad average" happens.
This code will let the last batch_size=1. And the dimension of pred_disp and true_disp variable in my test is (1,368,1232).
TestImgLoader = torch.utils.data.DataLoader(     DA.myImageFloder(test_left_img, test_right_img, test_left_disp, False),     batch_size=3, shuffle=False, num_workers=4, drop_last=False)
This code will get the right number of total not-zero point- len(index[0]).
index = np.argwhere(true_disp > 0)
And this code should work nomarlly.
1 - (float(torch.sum(correct)) / float(len(index[0])))
Can you tell me more detail about what things happened in code which lead to this behaviour?
Thank you!

@mzy97
index = np.argwhere(true_disp > 0)
This code line finds all the valid pixels in a batch.
If batch_size = 3, the len(index[0]) indicates the number of valid pixels in these three image pairs.


Data Entry content parser crashes on mal-formatted input

When updating Data Objects, DataEntry#write_content creates the content column in a very specific format according to the display_type of the associated data_field. The information is retrieved and parsed by DataEntry#data_fields_with_contents method, called in various views of data_objects.
However, if the display_type of a data_field in some data_type gets changed (i.e. updated), the parser will try to parse the data_entry content with respect to the new data_field display_type, and this can potentially lead to crashes.
This commit fixes the issue by checking more cases and catching errors. It should be cherry-picked into the Shifts3 as well.

Done! PR #443


cannot get all services by service search function

I want to get all  the services by dubbo-admin Service Search function,but what I get is only 25 services of all the total 420 services. the picture is below:
cannot get all the services
My dubbo-admin is run on the lastest develop branch。

It may be a FE‘s bug since the ServiceController.searchService method's Pageable.size is 20 not  -1.

Pageable does not support a negative number

@heyudev   so if i want to get all the 240 services, the Pageable.page must be 0,and the Pageable.szie must be 240.


Update slurm_cluster_info.json

updated worker_bin_path to match install path
added section to connect workers to master in the install script

approving this PR, but this branch is super old and may never be merged into main


Transaction Page - Unbilled Project - Get Possible Amount

When Manually billing for Project
EasyCloudBooks should help on Billing details instead of giving 1 Rs Billing for Project, Possible Price should come up
This is also needed when Service Have default Price, instead of 1 rs give Service Default Price
Initiated By @vinpahilwani
Verified by @mitulpanch


Three bugs in zify

See Zulip.

Just tested, and these all seem to be fixed by now! Can anyone else replicate?

Agreed!
For a partial record of when this happened, on 367e5e6965fa4a8bdc99c511f07d6de4a5623d3b (from March 8) the first two bugs are still there and the third has already been fixed.


Code loses keypresses when busy

While writing TypeScript in Code, sometimes my keypresses get lost if Code is busy e.g. updating its language services. I end up with the start and end of the word I'm typing, with the middle bit missing. Collegues of mine have the same issue, especially on slower computers.  I would expect code to hang for a while maybe, but then type the word in its entirety.
OS: Windows 7 Professional
Code: 0.10.6

Interestingly I have seen this too but only since a few days, I wonder if something changed here that could have an impact.
For example: I do see it very bad when running Win10 in parallels with NVDA enabled, but I am not sure if NVDA maybe just eats some keys. Also my system is very slow then.
On Mac however I also experience this and there my machine does not seem to be under heavy load.
@alexandrudima fyi

@bpasero I have made a change last week that caused some inputs to be missed, but this was only on master until a1bd50f63fd8185a13495ff3d4c67396109e4e71 which now fixes it. So nothing I can think of regarding 0.10.6

@alexandrudima ok good, I will report back if I still get it.

I want to try the following to validate that the changes in a1bd50f63fd8185a13495ff3d4c67396109e4e71 also address this issue:

write a program that computes Fibonacci numbers over and over again, keeping a core busy :)
launch it many times
try to type in VSCode
if I don't lose characters, I'll consider this fixed.

I have just tried running the following script 6 times until I got 100% CPU in task manager:
var n = 0;
for (var i = 0; i < Math.pow(2,32); i++) {
    if (i % 10000000 === 0) {
        console.log(i, n);
    }
    n = (n + i) % 133337;
}

Then I changed the source code of the editor to render all the lines all the time (to slow things down further). Typing was lagging a bit, but it did not lose keypresses. I thin a1bd50f fixed the problem.

Verified by Alex (by reading the comments)


Wrong SQL comment highlighting

There's a bug in highlighting SQL comment. If I use Prism on that code:
-- AND k.field1 IS NOT NULL AND k.field2 IS NOT NULL
it generates the following HTML:
-- AND k.field1 IS NOT NULL AND k.field2 IS NOT NULL
The second part of the comment is being highlighted as a regular SQL code (I believe that the whole comment should be greyed out).
edit: I think that 'NULL' keyword in a comment makes the highlighting wrong, comments without 'NULL' keyword are fully colored in grey

I can't reproduce your issue on the Test page.

Please reopen this issue if there is more to it.


Set width for error message box

@fofr Once I completed all the missing fields I could still see this box:

Can we hide it once there are no errors?


Add internal pg type 'name' info on pg_catalog.pg_type

Summary of the changes / Why this improves CrateDB
Checklist

[x] User relevant changes are recorded in CHANGES.txt
[x] Touched code is covered by tests
[x] Documentation has been updated if necessary
[x] CLA is signed

Why do we need this? Adding a name type implies that it can be used which isn't the case right now.


ParametricStudy.save() has a side effect of silently changing the study file path.

🔍 Before submitting the issue

[X] I have searched among the existing issues
[X] I am using a Python virtual environment

🐞 Description of the bug
When ParametricStudy.save() is called and the file_name parameter does not match the current study file name (which is stored in the file_name attribute), the study is saved to file_name and the file_name attribute is set to the new file name. This is an undocumented side effect.
📝 Steps to reproduce
from ansys.additive.core.parametric_study import ParametricStudy

study = ParametricStudy("study-file")
print(study.file_name)
study.save("new-study-file")
print(study.file_name)

💻 Which operating system are you using?
Windows
📀 Which ANSYS version are you using?
24.2
🐍 Which Python version are you using?
3.9
📦 Installed packages
n/a

Closed by #302


add<EMAIL_ADDRESS>

Here is the support for highs 1.8.1
Please add the tag for unstable ref.

Hello @bazelbuild/bcr-maintainers, modules without existing maintainers (highs) have been updated in this PR. Please review the changes.

@bazel-io skip_check unstable_url

please fix the check failures.

Done
Laurent Perron | Operations Research | @.*** | (33) 1 42 68 53
00
Le lun. 25 nov. 2024 à 21:02, Xùdōng Yáng @.***> a
écrit :

please fix the check failures.
—
Reply to this email directly, view it on GitHub
https://github.com/bazelbuild/bazel-central-registry/pull/3240#issuecomment-2498922444,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACUPL3L2TCD5L4WE56G4HXL2CN67FAVCNFSM6AAAAABSI7Y6CKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDIOJYHEZDENBUGQ
.
You are receiving this because you authored the thread.Message ID:
@.***>


Upgrade to istanbul-lib-instrument

Upgrade loader to use istanbul-lib-instrument to be future prove.
It also adds support for ES6, so the isparta loader is not needed anymore

Also pass the intermediate source map to the instrumenter that can be used to remap the coverage report to the original source. Requires istanbuljs/istanbul-lib-instrument#23.
Fixes #22, #7, karma-runner/karma-coverage#109,

so should we wait for https://github.com/istanbuljs/istanbul-lib-instrument/pull/23 first? I'm ready to merge this and bump new major version.

I would wait some days in the hope that they accept the change. If not, then I will split the change into two pull requests. Thx for your fast responses!

please split this into 2 PRs 👍

I removed the source map support from this branch. Second pull request follows tomorrow....


auth.get_last_response_xml() has user data and auth.logout() is logging-out , but auth.process_response() is None and auth.is_authenticated() is False

Hello,
I am building an app which is similar to Flask structure (I am not using any framework, but I am using werkzeug) so I am following the  Flask sample here
I have my saml_settings working properly (I guess) because I can redirect for my IDP and my IDP is redirecting to my assertionConsumerService endpoint.
But when handle the POST in my assertionConsumerService endpoint,  I cannot retrieve the SAML AttributeStatement (the data idp is sending back to me)
In auth = OneLogin_Saml2_Auth(http_fields, self.saml_settings)
my auth.process_response() is None and my auth.is_authenticated() is False
However in my SAML Tracer tool I can see the attributes there in the POST.
and If I do auth.get_last_response_xml() I also got the xml response with all the attributes (name, surname, email of the user).
So If I am getting back data somehow from the IDP why the authentication is False and the process_response() is None?
My auth.logout() is also working fine (logging out the user)

my auth.process_response() is None and my auth.is_authenticated() is False
That means that you failed to validate the SAMLResponse.

If you print auth.get_last_error_reason() you will get the reason why it was invalidated.
auth.get_last_response_xml() will retrieve the XML of the SAMLResponse, independent of the result of the validation process; it is also used to inspect what was retrieved for debugging purposes.


Switch to updated Spike version

This commit switches to an updated Spike version with support for ePMP.
I suspect that this PR won't pass CI because the updated Spike version is not yet available on the tool NAS. I just created a new ibex-cosim-v0.3 tag for that new version. ~Related to that I just realized that I probably made mistake when rebasing as I replaced previous call we had to get_max_xlen() with get_xlen(). I only discovered now that get_max_xlen() has been moved to isa_parser.h within Spike. I need fix this.~ This is now done.
This is related to #1579.

Thank you both, I've now fixed the lint error. Let's see if CI passes.

Cool, CI is passing now. Should we merge this?

The argument for enabling bisecting across the version boundary convinced me @rswarbrick . I've now added a similar switch. By default, we continue to use ibex-cosim-v0.2 for the moment. Feel free to merge this if you're happy with it. I will be OoO for the rest of the week.

Thanks for doing this, Pirmin. I'm not completely sure about the ifdef though: the MSTATUSH_GVA symbol is defined for ot-v0.2 and not for ot-v0.1. To do the same thing, I think you'd need to find a preprocessor symbol that's defined for ot-v0.3 but not for ot-v0.2. If this isn't possible, never mind. But we could always add a version header to our Spike fork for future situations like this.

Ah, I simply thought MSTATUS_GVA was something you added and wasn't aware it's something defined by Spike. I'll need to have a look if there is something similar for ot-v0.3. What is definitely working is to add a -DMSECCFG_GVA argument for the used simulator in dv/uvm/core_ibex/yaml/rtl_simulation.yaml. But it would be much better if this was defined by Spike already.

I've now identified another define that can be found in v0.3 but not in v0.2 and updated the PR accordingly. Successfully tested in CI (still using v0.2) and locally (using v0.3).


npm run start doesn't seem to work

What did you do?
typed npm run start into the console
What did you expect to happen?
either a console message saying what port it was running on, or a browser window to open onto the documentation site
What actually happened?
the following console output
><EMAIL_ADDRESS>start /home/tim/work/react-foundation-docs
> webpack-dev-server --inline --progress --colors --history-api-fallback --config webpack/development.js

 10% building 1/1 modules 0 activeℹ ｢wds｣: Project is running at http://localhost:8080/
ℹ ｢wds｣: webpack output is served from /
ℹ ｢wds｣: Content not from webpack is served from /home/tim/work/react-foundation-docs
ℹ ｢wds｣: 404s will fallback to /index.html
ℹ ｢wdm｣: Hash: 5db21b72fd3e0e3a8e74
Version: webpack 4.32.2
Time: 4137ms
Built at: 09/18/2020 17:13:45
                      Asset       Size  Chunks             Chunk Names
app.5db21b72fd3e0e3a8e74.js   5.18 MiB     app  [emitted]  app
                 index.html  448 bytes          [emitted]
Entrypoint app = app.5db21b72fd3e0e3a8e74.js
[0] multi (webpack)-dev-server/client?http://localhost ./src/main.js 40 bytes {app} [built]
[./node_modules/loglevel/lib/loglevel.js] 7.68 KiB {app} [built]
[./node_modules/querystring-es3/index.js] 127 bytes {app} [built]
[./node_modules/react-dom/index.js] 1.33 KiB {app} [built]
[./node_modules/react/index.js] 190 bytes {app} [built]
[./node_modules/strip-ansi/index.js] 161 bytes {app} [built]
[./node_modules/url/url.js] 22.8 KiB {app} [built]
[./node_modules/webpack-dev-server/client/index.js?http://localhost] (webpack)-dev-server/client?http://localhost 9.26 KiB {app} [built]
[./node_modules/webpack-dev-server/client/overlay.js] (webpack)-dev-server/client/overlay.js 3.59 KiB {app} [built]
[./node_modules/webpack-dev-server/client/socket.js] (webpack)-dev-server/client/socket.js 1.05 KiB {app} [built]
[./node_modules/webpack/hot sync ^\.\/log$] (webpack)/hot sync nonrecursive ^\.\/log$ 170 bytes {app} [built]
[./node_modules/webpack/hot/emitter.js] (webpack)/hot/emitter.js 75 bytes {app} [built]
[./src/components/app/app.js] 400 bytes {app} [built]
[./src/main.js] 224 bytes {app} [built]
[./src/main.scss] 1.25 KiB {app} [built]
    + 486 hidden modules
Child html-webpack-plugin for "index.html":
     1 asset
    Entrypoint undefined = index.html
    [./node_modules/html-webpack-plugin/lib/loader.js!./src/main.html] 580 bytes {0} [built]
    [./node_modules/lodash/lodash.js] 530 KiB {0} [built]
    [./node_modules/webpack/buildin/global.js] (webpack)/buildin/global.js 472 bytes {0} [built]
    [./node_modules/webpack/buildin/module.js] (webpack)/buildin/module.js 497 bytes {0} [built]
ℹ ｢wdm｣: Compiled successfully.

It didn't drop back to the prompt so something is still running but not using any CPU.
note that npm run dist followed by npm run serve works fine so this isn't a showstopper
What versions of relevant language, framework and this module are you using?
node 12.18.3, npm 6.4.6, commit hash 63c935b1 (sept 8 2020), ubuntu 18.04

Thanks, fixed in https://github.com/digiaonline/react-foundation-docs/pull/48.


ex.progress

The original component is able to show only percents, but how about a mode with customizable progress bar?

https://github.com/dokwork/lualine-ex/pull/28


Cron Inputs can get stuck with open head commits.

We now cleanup open head commits if we find them in cron pipelines.


Netty on Android: DnsNameResolverTimeoutException

Expected behavior
When running the following code in an AsyncTask on Android, a DnsNameResolverTimeoutException is thrown. However when I run it on a desktop Java VM, it works fine.
    EventLoopGroup group = new NioEventLoopGroup();
    try {
        DnsNameResolver resolver = new DnsNameResolverBuilder(group.next())
                .channelType(NioDatagramChannel.class)
                .nameServerProvider(
                        new SingletonDnsServerAddressStreamProvider(
                                new InetSocketAddress(req.nameserver, 53)))
                .build();
        try {

            Future<AddressedEnvelope<DnsResponse,
                    InetSocketAddress>> future2 =
                    resolver.query(new DefaultDnsQuestion(
                            req.host, req.dnsRecordType));
            AddressedEnvelope<DnsResponse,
                    InetSocketAddress> ae =
                    future2.syncUninterruptibly().getNow();
        // ... more code that is never reached ...
        } finally {
            resolver.close();
        }
    } finally {
        group.shutdownGracefully();
    }

The request class:
public static class DnsLookupRequest {
    String host = "google.com";
    String nameserver = "<IP_ADDRESS>";
    DnsRecordType dnsRecordType = DnsRecordType.ANY;
}

The Exception is: "DnsNameResolverTimeoutException: [/<IP_ADDRESS>:53] query timed out after 5000 milliseconds"
What is causing this exception and how to fix it?
Netty version
4.1.36
JVM version (e.g. java -version)
Android 7.0 (24) / Desktop: Oracle JDK1.8.0_152

I am not an android expert... This means that you did not receive a dns response within 5000 ms... Is it even allowed to use UDP on android to random servers ?

No response from the reporter... let me close it


Rename installing vela-core from vela install to vela system init

vela install is better reserved for installing apps like vela install xxx-app.
Installing/upgrading/uninstalling vela-core as k8s plugin would be better renamed to vela system init/update/uninstall.

what about keep vela install as the old way and use vela deploy xxx-app for this intention？
vela install --upgrade
vela uninstall

First-level command line should be app centric.
Installing core runtime is system level details and should go under system

Also look at waypoint https://www.waypointproject.io/docs/getting-started
A lot of CLI tools use init to do "system init" work. We should rename install to init absolutely.
Current init should be renamed to app init or just app.

@hongchaodeng  I noticed waypoint  uses waypoint install to install server, just like our vela install. Cureently vela init is app init.

Let's leave this issue for next phase. I am fine to have vela install for now and it's easy to rename it whenever we decide to make install cmd for sth else.

Cureently vela init is app init.

That's the issue. Most tools will use the init to initialize system. Just like Waypoint, Helm, etc.
I would suggest to rename app init to vela app init or vela up -i.

I don't have strong opinions on this. If you stick to existing ideas I'm fine with it.


attach weave during builds?

Hi quick question
is there a way to attach weave network to containers started with docker build . ?

I'm not sure I quite understand - you want to be able to access the weave network whilst commands in a Dockerfile are running?
I don't think this is straightforward, and we've certainly never tried.  The docker build runtime is not set up like a regular Docker container, and there is quite a debate about extending it, e.g. at https://github.com/docker/docker/pull/9176.

hacked up implementation can be found here https://github.com/anandkumarpatel/weave

If this seems like a feature you would like I can clean it up. I have a use case for this. we have certain services which expose files which should only be accessible in a weave network. would also help with things like rake db migrate which require access to a db during build process.

Have you tried running a build via the weave proxy? I wonder whether that would automatically attach build containers to the weave network.

@rade  just tried it now, no dice. from the docs http://docs.weave.works/weave/latest_release/proxy.html#setup
Usage
When containers are created via the weave proxy, their entrypoint will be modified to wait for the weave network interface to become available. When they are started via the weave proxy, containers will be automatically assigned IP addresses and connected to the weave network. We can create and start a container via the weave proxy with

it looks like it only modifies entrypoint which is not available during a docker build.

I note that the argument over at https://github.com/docker/docker/pull/9176 is still raging.
Your approach of watching the Docker build output is ingenious, if somewhat fragile.  Maybe we can extend the proxy in similar spirit, so it does work during build?
Why modify the Dockerfile?  If it only ever works under weave, why not put the wait-for-ethwe stuff in plain sight?

@bboreham agreed, super fragile. just following linux philosophy to use output stream of one program into another :) so hopefully it wont change much. one edge case is when that line appears in the output of someones RUN  step.

Maybe we can extend the proxy in similar spirit, so it does work during build?

I am not familiar with weave proxy but it should be possible if it has access to the build stream, if it does not then I am not sure how to get the context (ip/subnet to put each build step in)

Why modify the Dockerfile? If it only ever works under weave, why not put the wait-for-ethwe stuff in plain sight?

It was just some suger incase users did not know how to wait for ethwe, it can be removed. and put in some documentation.

This feature was added by Docker in https://github.com/docker/docker/pull/27702