Support DN and password for LDAP SASL.

Both DigestMD5 and CramMD5 require DN and password.

If you have any unit or integration tests for LDAP SASL, I'm happy to update them for this patch. I couldn't find any.

Thank you Daniel. The bot here in this case is mainly trying to make sure the changes code lines are executed at least once. What we have atm should cover it.


Add option to configure PreserveTimestamp

Convert Project to SDK style
Update WinSCP version
Add Build.bat for creating connector package
Add configuration setting PreserveTimeStamp

Waiting on feedback from customer


Documentation page for each inference tool

Suggested by @auggiemarignier it would be ideal to have a page for each inference tool that CoFI links to, so that there is information about how to use it, especially the solver parameters (that can be dynamically generated for some tools).
Similar to how we generated all the pages for Epsresso problems with

https://github.com/inlab-geo/espresso/blob/main/espresso_machine/doc_utils/gen_docs.py
https://github.com/inlab-geo/espresso/blob/main/docs/source/_ext/generate_contrib_docs.py

Something to also make sure is in the docs is what attributes are actually saved in InversionResult.  I've been burnt a couple times by just changing the tool and options in my scripts, but forgetting that each tool has different outputs samples, models, sampler etc.
Note to self: I guess there is always the option of just pickling the InversionResult instance...


ValueError: batch_size should be a positive integer value, but got batch_size=0

First of all, thanks for sharing the code.
I run the code following the steps you recommended and got an error when running
python train_lcd.py --config-network=config/network/spherevlad.yaml --config-dataset=config/dataset/PITT.yaml
The error message is as follows:
INFO - 2023-09-25 16:55:20,614 - logger - Namespace(config_dataset='config/dataset/PITT.yaml', config_network='config/network/spherevlad.yaml') INFO - 2023-09-25 16:55:20,614 - logger - Loaded network configuration file config/network/spherevlad.yaml INFO - 2023-09-25 16:55:20,614 - logger - Loaded dataset configuration file config/dataset/PITT.yaml Runing SphereVLAD #params of model: 17376 #trainable params of model: 17376 Using dataset: PITT Load previous pickles Number of training tuples: 1093 Traceback (most recent call last):   File "train_lcd.py", line 118, in <module>     train(cfg, logger, neptune)   File "train_lcd.py", line 44, in train     train_loader = make_data_loader(config, gpu_ids, is_train=True)   File "/home/lanx/Programs/SphereVLAD/dataloader/__init__.py", line 31, in make_data_loader     loader = DataLoader(dataloader,   File "/home/lanx/miniconda3/envs/spherevlad/lib/python3.8/site-packages/torch/utils/data/dataloader.py", line 350, in __init__     batch_sampler = BatchSampler(sampler, batch_size, drop_last)   File "/home/lanx/miniconda3/envs/spherevlad/lib/python3.8/site-packages/torch/utils/data/sampler.py", line 232, in __init__     raise ValueError("batch_size should be a positive integer value, " ValueError: batch_size should be a positive integer value, but got batch_size=0
How to solve this problem, thanks.

Hi
In dataloader/init.py the number of batch size is defined as the multiplication of gpu number of batch size in the yaml file.
Please check the gpu number in the first place by
torch.cuda.device_count()


RELOAD floods opers

Modules with preserve_sym enabled will produce Perl warnings for every time a subroutine is redefined. Unfortunately no warnings 'redefine' cannot be applied because it is reset to normal state by the eval{}. Perhaps a workaround solution would be to temporarily disable all warning notices while reloading, but that could also result in a loss of useful debugging information.
Also, the oper which initiated the reload is sometimes notified that tons of modules have been upgraded to whatever the new IRCd version is. I think this is caused by a separate issue in the UPDATE command which causes disregard of JSON manifests.

It would be nice if RELOAD could take flags for how verbose to be.
Default reply:
*** Reload: k.notroll.net was upgraded from 10.59 to 10.62 successfully (up 51 versions since start)

Default reply when version unchanged:
*** Reload: k.notroll.net was reloaded successfully (up 51 versions since start)

Default reply when module errors occurred:
- FAILED to reload: Channel::ModeSync
- FAILED to reload: Configuration::Set
*** Reload: k.notroll.net was upgraded from 10.59 to 10.62 but encountered 2 errors (up 51 versions since start)

The first flag -v will enable verbosity.
Reply with verbose flag:
- FAILED to reload: Channel::ModeSync
- FAILED to reload: Configuration::Set
- Unloaded: SASL
- Loaded: DNSBL (1.1)
- Upgraded: Channel::Secret (2.4 -> 2.5)
- Upgraded: Base::OperNotices (9.1 -> 9.3)
- 52 modules reloaded and not upgraded
*** Reload: k.notroll.net was upgraded from 10.59 to 10.62 but encountered 2 errors (up 51 versions since start)

The second flag -d for debug will make it super verbose, including Perl warnings and such.
If the server is not the local server, prefix the summary messages with - [server.name].


add support for streaming between Sidecar and java-function-invoker

initial version of streaming support (via Flux) has been implemented


[feat-3853] Enabling kerberos authentication by default

Enabling kerberos authentication by default https://github.com/apache/incubator-linkis/issues/3853

just need to update docs about  https://linkis.apache.org/zh-CN/docs/latest/deployment/deploy-quick


eNATL Pyramid recipe

@jbusecke yeah, I think it would be worth a shot running it. It'll be pulling off that 31 day Zarr store, but that'll be a nice test.

Ah this is failing due to the recipe id naming. See https://github.com/leap-stc/eNATL_feedstock/pull/9#issue-2405245342 for a fix (basically just using dashes instead of underscores). Can you maybe rebase this PR onto #9 to keep things compatible?
Also on a side note, this naming thing is really frigging annoying, and maybe we should push harder upstream. Maybe we should just submit a PR there?

I was running into: TypeError: unsupported operand type(s) for /: 'RequiredAtRuntimeDefault' and 'str' in StoreToPyramid. I drafted a new pangeo-forge-recipes release to include the updated injection specs.


[Proposal] Go wrapper for incomplete runtimes

Issue Ref: None
Description:
This is a proposal for adding a Go wrapper to proxy request to native runtimes. This way the on boarding of new runtimes will be easier since they wouldn't need to handle:

Port customization
Timeout handling
Request logging
Prometheus statistics

This way the Golang wrapper would redirect requests to localhost:8090 in which the native runtime will be listening. The additional delay is insignificant. With this PR the existing Ruby and PHP runtimes support Prometheus statistics and custom ports.
Points of improvement:

The Go and the native daemon are parallel processes. We can fork the native process from the Go routine so we can kill/restart the native daemon in case of errors/timeouts.
The port 8090 is now not eligible. We would need to dynamically choose a free port.

cc/ @deissnerk @murali-reddy
TODOs:

[X] Ready to review
[X] Automated Tests
[ ] Docs

Its good idea to consolidate all cross-cutting concerns in runtimes into one sinle golang wrapper. We have more clean design and has a way to provide the missing functionality to runtimes.
Just to clarify, you are proposing that there will be a single running native language process just the way it is today, except they dont implement all common functionality?

Just to clarify, you are proposing that there will be a single running native language process just the way it is today, except they dont implement all common functionality?

There will be at least two processes: one for the Golang wrapper and another one for the native language. Ideally the native process should be forked from the Golang one to be able to handle termination and restarts but that's not implemented yet. To clarify it: We are not using a sidecar container here for the wrapper (but we could).

@murali-reddy any further comments here?

@andresmgot I haven't had the time to look into the details, but I like the general direction. I could also imagine to have a sidecar instead. Could the sidecar be able to terminate the function by responding (or not responding) to the health check?
Would it be more efficient to use some form of IPC between the two processes?

I could also imagine to have a sidecar instead. Could the sidecar be able to terminate the function by responding (or not responding) to the health check?

Yes, that's a valid option which architecture would be more native but I don't see a way for the sidecar to kill the container with the native process (unless, as you say, the container become irresponsive and doesn't answer the health check).

Would it be more efficient to use some form of IPC between the two processes?

We could use a unix socket to be a bit more efficient but we can tackle that in a different PR. Also the idea here was to keep having the native web servers as simple as possible, I don't know how difficult can be to change them to use a socket (although I don't think it would be much more complicated).

@murali-reddy any further comments here?

No. I like the consolidation. Let start simple as you propose, single container with http interface as IPC.

As the health check goes to the pod network interface, it does not mean that the container for which the health check is configured, also answers the to the health check. What do you think?

AFAIK the container with the health check should answer it. In any case, it would be weird to configure a container a health check pointing to a different container, isn't it?

No. I like the consolidation. Let start simple as you propose, single container with http interface as IPC.

Okay, I will modify it anyway to fork the native process from the Go wrapper so at least termination signals can be properly forwarded.

AFAIK the container with the health check should answer it. In any case, it would be weird to configure a container a health check pointing to a different container, isn't it?

Well, under normal circumstances it may be weird, but I like the idea of isolating the wrapper from the function and as it is forwarding requests to the function, it also knows about its health. It could internally do something like a health check with the function and would in addition be able to have it killed, if it starts misbehaving.

It could internally do something like a health check with the function and would in addition be able to have it killed, if it starts misbehaving.

If I am not wrong it is not possible to generally kill a container from a sidecar (unless something like shared process is enabled in the cluster (but it is not the default). Note that the goal is not to terminate a container that doesn't answer the health check since the kubelet will already do so. The goal is to terminate a process if a request is taking more than N seconds. In any case we will be be returning a timeout response and the container will be eventually killed if it becomes unresponsive.
I will merge this PR with the current approach and open a different issue to split the wrapper into a different container.

@andresmgot we've had something similar to this in OpenFaaS from the beginning called the watchdog. I wonder if there's a way we could collaborate between our projects on this?
https://docs.openfaas.com/architecture/watchdog/
The updated of-watchdog marshals over HTTP to provide the same benefits - timeouts, metrics, healthchecks etc. cc @sebgoa

FYI Riff also use a sidecar with HTTP to talk to a function with the option of pipes, HTTP and gRPC. https://github.com/projectriff/riff/tree/master/function-sidecar
I'm not sure whether there is a measurable difference in using gRPC vs HTTP 1.1 with Keep-Alive over loopback. (cc @markfisher )

Oh, I didn't know that now the watchdog supports an http mode. Indeed it is the same idea. Note that we want to have the possibility to remove the small overhead of adding this go wrapper for runtimes that already supports timeouts, metrics.. etc so we are just adding it for languages like PHP, Ruby or any new ones.
The main problem of using gRPC instead of HTTP is:

It is more complex from a development point of view so it would be more difficult for users to provide new runtimes.
Some languages may not have support for gRPC.
In any case we can still provide an hybrid solution that listens on both HTTP and gRPC endpoints.


v2.x fails with missing git version

Describe the bug
Our builds using this action started failing with the following message:
Step 2/4 : RUN apt-get update && apt-get install --no-install-recommends -y git=1:2.30.2-1 && rm -rf /var/lib/apt/lists/*
   ---> Running in a471eb992ff5
  Get:1 http://deb.debian.org/debian bullseye InRelease [116 kB]
  Get:2 http://deb.debian.org/debian-security bullseye-security InRelease [[48](https://github.com/TBCTSystems/bct-common-licensing-softwarekey/actions/runs/4852448319/jobs/8647443878#step:2:48).4 kB]
  Get:3 http://deb.debian.org/debian bullseye-updates InRelease [44.1 kB]
  Get:4 http://deb.debian.org/debian bullseye/main amd64 Packages [8183 kB]
  Get:5 http://deb.debian.org/debian-security bullseye-security/main amd64 Packages [237 kB]
  Get:6 http://deb.debian.org/debian bullseye-updates/main amd64 Packages [14.6 kB]
  Fetched 8643 kB in 1s (6962 kB/s)
  Reading package lists...
  Reading package lists...
  Building dependency tree...
  Reading state information...
  E: Version '1:2.30.2-1' for 'git' was not found
  The command '/bin/sh -c apt-get update && apt-get install --no-install-recommends -y git=1:2.30.2-1 && rm -rf /var/lib/apt/lists/*' returned a non-zero code: 100

To Reproduce
Use the action, our code as follows, but the error occurs during building the image from the Dockerfile:
- name: 🖼 Export drawio files to png files
      uses<EMAIL_ADDRESS>      with:
        format: png
        transparent: true
        embed-diagram: true
        path: ./docs/drawio/
        output: ./images
        action-mode: all

Expected behavior
Image builds successfully when using action

Thanks for this report, Sometime hardcoded version is not a good idea especially when it's related to an option. 🤦♂

You're welcome. Any update here? We're still failing :/

No update, unfortunately, I didn't have time available to watch during the month of May. I hope to be able to watch it at the beginning of June.


Fix Sync Wait to wait until forest enters follow mode

Summary of changes

Changes introduced in this pull request:

Fixed Sync Wait command to wait until forest enters follow mode

Reference issue to close (if applicable)

Closes #3540
Other information and links

Change checklist

[X] I have performed a self-review of my own code,
[X] I have made corresponding changes to the documentation,
[X] I have added tests that prove my fix is effective or that my feature works (if possible),
[X] I have made sure the CHANGELOG is up-to-date. All user-facing changes should be reflected in this document.

SyncStage has to match the structure of the same name in Lotus. The stage should not be set to Complete before we're in follow mode.

@sudo-shashank Oh, could you add a changelog entry? This fixes a user-visible bug.

@sudo-shashank Oh, could you add a changelog entry? This fixes a user-visible bug.

added


Aurelia Support?

I've been trying unsuccessfully to get instantsearch.js to integrate with the Aurelia (http://aurelia.io) library.  One of the committers for the Aurelia CLI said that instantsearch.js was particularly tricky and asked me to open an issue so they could investigate further. https://github.com/aurelia/cli/issues/593
Is there any example of how to integrate it or would it be possible to provide support for Aurelia?
Thanks

Hi @dnndev thanks for creating an issue 👍
Aurelia is a complete framework and it could be quite tricky to integrate instantsearch.js in it. However you could probably use the lower level library that is used internally by instantsearch.js. This library is called the JS Helper and you can find its documentation here and a few examples with several frameworks here


Revamps the defaults around caching & logging opaque responses

R: @addyosmani @gauntface
Fixes #78
This uses the logging layer implemented in sw-cacheable-response to let the developer know when there's a response that would otherwise be cached, but isn't due to the response code.
It changes the defaults for NetworkFirst and StaleWhileRevalidate to allow for opaque responses with status of 0 to be cached and used. The default for everything else is to require a response status of 200.
One thing that it does not do is add any tests for the various behaviors, since sw-runtime-caching is currently untested 😨  I've got some WIP tests at https://github.com/GoogleChrome/sw-helpers/tree/runtime-caching-test and am fine with holding off on merging this PR until those tests are checked in, and then I'll modify this PR to include additional tests for response codes. Or you could just merge it sooner with the understanding that I'll cover the response code tests in the separate testing PR.
In any case, feel free to review for general feedback in the meantime.

It changes the defaults for NetworkFirst and StaleWhileRevalidate to allow for opaque responses with status of 0 to be cached and used. The default for everything else is to require a response status of 200.

This seems reasonable to me.

One thing that it does not do is add any tests for the various behaviors, since sw-runtime-caching is currently untested 😨 I've got some WIP tests at https://github.com/GoogleChrome/sw-helpers/tree/runtime-caching-test and am fine with holding off on merging this PR until those tests are checked in, and then I'll modify this PR to include additional tests for response codes

Once feedback is addressed, I'm fine with us merging this earlier. Do we have an issue for tracking tests missing there?

The lack of tests is tracked in https://github.com/GoogleChrome/sw-helpers/issues/301

What happens with NetworkOnly? I assume there is no messing with the status code - but wanted to confirm.

My takeaway from the review feedback is that enforcing the "plugin" behavior for the cacheable response check has led to unnecessarily confusing code. I'm going to rethink that approach, letting developers continue to initialize it as a "plugin" when they explicitly create their own RequestWrapper, but providing a saner way to allow loosely-coupled classes within sw-runtime-caching to override the default behavior when needed.

I'm probably missing a lot or prior context - which is probably a sign that we made some decisions and now it's too magical that we can't decypher it from first glance.
Was it a rule that there could only be one of these plugins which the developer could overwrite with a custom implementation of that plugin?
Was there a reason for moving away from using a plugin?

Was it a rule that there could only be one of these plugins which the developer could overwrite with a custom implementation of that plugin?

That's a limitation that's enforced for a certain subset of the lifecycle events, like cacheWillUpdate, yes. There's a runtime error if you set multiple listeners.

Was there a reason for moving away from using a plugin?

We'd still allow the use of a plugin for registering cacheWillUpdate if the developer explicitly chooses to do so.
The nuance here is that there are three different situations that need to be supported cleanly:

The developer explicitly opts-in to defining their own cacheWillUpdate behavior, most likely via passing in a CacheableResponsePlugin into the RequestWrapper constructor.
The developer doesn't define cacheWillUpdate, but we still need a sensible default behavior, and that default behavior is to require a 200 response.
The developer doesn't define cacheWillUpdate, and we want a different default behavior (for the NetworkFirst and StaleWhileRevalidate handlers), which allows for either 0 or 200 responses.

I jumped through some hoops in this PR to minimize the changes to the existing code path the gets executed for case 1, but it ended up making the code paths for 2 and 3 more complicated than they need to be.
My plan is to modify the approach so that specifying a cacheWillUpdate callback can be done as a parameter to RequestWrapper.fetchAndCache() instead of requiring that it's a property of the RequestWrapper itself. I think that should lead to a cleaner code path for 2 and 3.

My plan is to modify the approach so that specifying a cacheWillUpdate callback can be done as a parameter to RequestWrapper.fetchAndCache() instead of requiring that it's a property of the RequestWrapper itself. I think that should lead to a cleaner code path for 2 and 3.

This sounds reasonable to me. I'm going to adopt the Lighthouse chillin label to this PR so we know not to directly merge it but come back to it once you've had a chance to modify the approach based on learnings from the comments thread.

I'm sorry but I'm still really struggling to accept this API.

I'm still not following why you need to pick out a method from a fairly self contained object (i.e. given a request, tell me if I should cache it or not). Can you not just pass around the CacheableResponse object at necessary rather than do the bind dance and then pass around the function?
The order of the three scenarios concerns because it's really not clear what the priority is or should be from the API surface - i.e. should the plugin in the request wrapper really take precedence of over the plugin or response check passed into the fetchAndCache method?
The naming of some of the variables is also confusing at points (i.e. const cacheableResponseCheck = this.cacheableResponseCheck || defaultCacheableResponseCheck || this.defaultCacheableResponseCheck; - which ignores that this.defaultCacheableResponseCheck is a getter).

Maybe changing to:
const cacheableResponseCheck = pluginCachableResponseCheck || cacheStrategyCachableResponseCheck || DEFAULT_CACHABLE_RESPONSE_CHECK would help with the last point.
Then instead of binding everything just go:
const cacheable = cacheableResponseCheck.isResponseCacheable({request, response});

I don't like using DEFAULT_CACHABLE_RESPONSE_CHECK for the default RequestWrapper logic. I'd rather do use a method call that could lazy-instantiate a CacheableResponse instance, since it might never be needed. But instead of using the getter syntax, I could use a method named getDefaultCacheableResponse().
Regarding the order of the three scenarios—that's an order that gives precedence to the developer explicitly setting their own criteria (which would be done via the RequestWrapper constructor), and when the developer doesn't set anything, allows specific handlers to override the default. Allowing a developer to change behavior by configuring RequestWrapper is already what's implicitly being done in sw-lib, and it's not a change to the API surface.
Right now, we're calling .bind() on all of the plugin callbacks that are passed into the RequestWrapper constructor before we save the callbacks for later use. Doing the same thing with the callback that's exposed by CacheableResponse is following that model. (Maybe I snuck that code initially by you, since I'm assuming you object to it on similar grounds?)
What I could do is change the model entirely and refactor the RequestWrapper constructor so that it doesn't save bound functions for any callbacks, but instead saves the context that exposes the methods, and then does a method invocation later on when it's time to use the callbacks. That will give you the syntax you want.
Refactoring all of the plugin callbacks is a significant change, so I'd feel better about landing the sw-runtime-caching tests first in a separate PR, and then revisiting the changes in this PR once we can use the passing tests as a baseline.

@jeffposnick yeah I never noticed that is what you were doing - apologies for missing it.
Writing tests first sound good.
Would it be possible to force plugins to provide a cacheableResponseCheck method that has a default, meaning we only have "2 options for defining a cachableResponseCheck".
1.) Developer sets the cachaeableResponsePlugin on the request wrapper.
2.) Caller of fetchAndCache must pass in a fallback cacheableResponsePlugin and then plugins can either extend a class that defines the default cacheableResponse behavior and extend / override OR each one just HAS to define a default cacheableResponse.

Here's another stab at this 😄
Things that are different since the last review (some of this changes were included in already merged PRs):

Tests for everything in sw-runtime-caching, including testing the new defaults and overrides.
Lifecycle callbacks are now invoked directly on plugin references inside of RequestWrapper, which eliminates the usage of .bind() throughout this PR.
I've adjusted some of the JSDocs per the feedback.
The various possible sources of the effective CacheableResponsePlugin have all been renamed to hopefully clarify where each might be set. (There's also an extensive comment explaining the logic.)

What hasn't changed is the logic for determining what the effective CacheableResponsePlugin will be—it still checks three different sources in a specific order. @gauntface's asked about a different approach in https://github.com/GoogleChrome/sw-helpers/pull/399#issuecomment-291608103, but I don't like the overhead of adding in an additional required parameter to the RequestWrapper constructor when we could properly assume a default. That change would shift complexity onto the API surface with the benefit of (slightly) less complex internal logic.

I believe that @addyosmani's earlier review feedback's been addressed, so I'm going to merge.


6U space centered or offset switch?

My G80-1800 has an offset 6U spacebar which is very uncommon in keysets that are produced today. Will this board accommodate the much more common centered 6U?

Hi, it accepts only 6u offcenter and 7u. The PCB was designed around OG cherry sets, and I had to keep compatibility to a minimum so that I do not have overlapping switches, which increase switch wobble/risk of soldering them crookedly by a lot on a plateless design.
I can see if I get the centered switch squeezed in, but not sure if that'l work out. I thought that 6u offcenter was the more common one to be honest.

Yeah now that I'm looking back through key sets, I'm seeing mostly sets that have both 6U options (when they have any at all), some have a single option that isn't labelled and of course the one that I have (BIIP) only has a centered one. So if centered 6u is more common, it is only slightly so.
I have a 7U space and can live with that. I see your point about the stability of the pcb-mounted switches. I haven't worked on a pcb-mount board in years so I forgot about the caveats.


Read keys from ENV will increase bundle size

Bug report
If we destructure more than one key from process.env, all keys will append to bundle file.
# .env file
REACT_APP_NAME=BEHNAM
REACT_APP_SURNAME=MOHAMMADI

// app
const { REACT_APP_NAME, REACT_APP_SURNAME } = process.env;

What is the current behavior?
// bundle file
var e=Object({NODE_ENV:"production",PUBLIC_URL:"",WDS_SOCKET_HOST:void 0,WDS_SOCKET_PATH:void 0,WDS_SOCKET_PORT:void 0,FAST_REFRESH:!0,REACT_APP_NAME:"BEHNAM",REACT_APP_SURNAME:"MOHAMMADI"}),t=e.REACT_APP_NAME,n=e.REACT_APP_SURNAME;

If the current behavior is a bug, please provide the steps to reproduce.
Just destructure more than 1 key from process.env
const { REACT_APP_NAME, REACT_APP_SURNAME } = process.env;

What is the expected behavior?
// bundle file
var t='BEHNAM',n='MOHAMMADI';

Other relevant information:
webpack version:  4.41.2
Node.js version: 14.16.1
Operating System: macOS
Additional tools: Create React App

@alexander-akait  Thanks, why does this code work?
const { REACT_APP_NAME } = process.env;
const { REACT_APP_SURNAME } = process.env;

@vankop I think we have this issue, I can't find...

@alexander-akait @vankop Thanks a lot, so have you any plan to handle destructure?

It is not easy, but maybe yes

closing in favor of https://github.com/webpack/webpack/issues/14800

Avoid using process.env and destructuring, it is limitation, please use process.env.REACT_APP_NAME and process.env.REACT_APP_SURNAME directly, even more process.env is not safe to use, you can have sensitive data there, not all things can be tree shaking and you can leak your local env.

Hi Alex, Thank you for your effort. But I have doubt regarding the documentation of the web-pack 5. Specially EnvironmentPlugin and DefinePlugin. There it's mentioned we can use process.env clearly.
Additionally, I can access process.env in my configs, whereas in the migration it's written that webpack5 removed process pollyfills. Can you please elaborate on this ?
**VERSION USING**
"webpack": "^5.73.0",

@BradPrit09 in documentation we use directly process.env.ENV_NAME (maybe we should improve docs to avoid misleading here, so feel free to do it).
You can use process.env inside webpack.config.js safely


orWhereHas() requires Closure as an argument

Laravel Version: 5.3.30
PHP Version: 7.0
Database Driver & Version: MySQL 5.7.16

Description:
I'm not sure why orWhereHas() requires Closure as an argument when whereHas() doesn't.
It seems consistent. If there is no argument passed this error is thrown:
TypeError: Argument 2 passed to Illuminate\Database\Eloquent\Builder::orWhereHas() must be an instance of Closure, none given on line 3
You can easily circumvent the issue by putting an empty Closure in:
Model::whereHas('thing)->orWhereHas('other_thing', function($query){})->get();
Is that the desired behaviour?
Steps To Reproduce:
Perform an Eloquent query on a model which has at least two relations. Get a collection of models that has either one relationship or the other using:
Model::whereHas('thing')->orWhereHas('other_thing')->get()
This will result in an error:
TypeError: Argument 2 passed to Illuminate\Database\Eloquent\Builder::orWhereHas() must be an instance of Closure, none given on line 3

Moving the discussion to the PR. Thank you!


Typo fix

Thank you Bilal. I will merge this despite https://mesosphere.slack.com/archives/C07D97YFL/p1509015585000058 and accept risk. However, this project is not amenable to forks. That is because many of the tests use Travis secrets. I can add you as a contributor at your request and then you can create and push branches to the repository directly.


Remove credhub cli ref in docs

Reapplying the docs correction from here #93

Also this https://github.com/pivotal-cf-experimental/kubo-deployment/blob/master/docs/guides/gcp-cf/kubo.tf

Also this https://github.com/pivotal-cf-experimental/kubo-deployment/blob/master/docs/guides/gcp/README.md

I updated references for now.
We use credhub to get k8s certificate for kubectl. We should remove it when BOSH will support getting credentials from cli.


Ensuring users can access the Controller Service and Reporting Tasks lists

NIFI-2501:

Ensuring users can access the controller service list regardless of permissions on the corresponding process group or controller.

reviewing

Hey @mcgilman, going through I found this: If I have write permission to the process group but not read then I do not have the button available to add a new Controller Service.
This also applies to CS and RT in the controller as well.

+1
Visually verified code and did a contrib check build. In a 3 node secure cluster tested various flows of logic regarding mixed access polices in PG, CS, RT and Controller. All worked as expected. Thanks @mcgilman, I will merge it in.


camerad: replace frame stream with replay

I just realized CARLA still uses frame stream. This will need to be moved to visionipc before we can merge this - https://github.com/commaai/openpilot/blob/master/tools/sim/bridge.py#L65.

Can we just add this as a new camera for now? I don't have time to finish #21324, but I'd like to get this merged. This should be the default camera, and frame stream gets built with a new flag.

How about merging #21379 first?  framereader is depends on qt , I had to do some ugly hacks in this PR to make it work.

driver cam temporarily disabled. I don’t have the video file address for it

saved a lot of code after #21379

selfdrive/build release will fail after remove them from release files

Hmm, guess we have to add them to the release files, since we'll delete frame stream anyway.

Let's leave framereader in the replay folder for now. Other than that, this should be good to merge.


Feature : compute md5 and expires query parameters

Hi @Trois-Six ,
Do you plan to add a second capability to this plugin by enabling the use of secure links with md5 and expires query parameters ?
Glad to help if needed.

Hi,
Yes! That's in my list.
Pierre

Done with https://github.com/Trois-Six/plugin-securelink/commit/2473c42ede6fe4bfb66197480303d9c7e236e8c8.


inject SDS volume mount on gateway

https://github.com/istio/istio/issues/9035
merge https://github.com/istio/istio/pull/8488/ from collab-gcp-identity into master

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by:
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: gyliu513
If they are not already assigned, you can assign the PR to them by writing /assign @gyliu513 in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@quanjielin: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-mixer-no_auth-mcp.sh
3aaec5bc6c3acc46c91e65175b471aaf4df6f0f0
link
/test e2e-mixer-no_auth-mcp

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: wattli
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: gyliu513
If they are not already assigned, you can assign the PR to them by writing /assign @gyliu513 in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

/cc @andraxylia for install owner approval.

/lgtm
/approve

[APPROVALNOTIFIER] This PR is APPROVED
This pull-request has been approved by: andraxylia, wattli
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

install/OWNERS [andraxylia]

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@quanjielin: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-mixer-no_auth-mcp.sh
3aaec5bc6c3acc46c91e65175b471aaf4df6f0f0
link
/test e2e-mixer-no_auth-mcp

prow/istio-unit-tests.sh
3aaec5bc6c3acc46c91e65175b471aaf4df6f0f0
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test istio-unit-tests
/test e2e-mixer-no_auth-mcp


Moved some functions

Some functions were specific to OS X, but were defined in the base plugin. I have moved them to the osx plugin:

pman
pcurl
pri

As for pcurl, the osx plugin already had an existing prevcurl function, which was doing the same thing. I've aliased pcurl to simply call prevcurl to avoid breaking existing installations.
As far as I know the open -fa $PREVIEW thing only works on OS X, which means that these functions have only worked on OS X anyway.

:+1:


Is flash blocked?

I thought I had flash working but after a quick test it seems to not load flash objects. My proxy is at sneakysneaky.tk.

No, it's just that flash objects are hard to proxify. You would either have to write a special plugin for it, or you an actual proxy server:
https://github.com/Athlon1600/php-proxy-app#web-proxy-vs-proxy-server


Caculated MD5 is incorrect

Thanks for noticing this. I've added some review comments above.
If you don't have time to amend the commit, I can do it later after work.

It seems like it is agreed that this pull request is a good idea.  I've encountered a situation where it is pretty crucial to a project I am working on.  Is there any chance we can get it added into master with the amended changes?
I'm willing to create a new pull request with the fixes you suggested if that would be preferred.

Oh my bad, this fell out of my radar. I think I should be able to pull this in and publish a patch release tonight. I also have to write a changelog entry for the new release.
I'm also considering updating our stream library to through2 which should improve the overall performance, as well as updating the other outdated dependencies, but I guess this can be done in a future release after this patch.

Thank you for the quick response, this will be a great help.

Rebased, cleaned up and landed the PR here: ddc09b9972f82992ec5b9e5a2cccb7724d5ca191
Added test here: 855ae782e9aebf62075db18a1310b1b2327b2889
Thanks @legege, and sorry for the delay.
p.s. The tests are working fine in<EMAIL_ADDRESS>but the new test is broken on Node 0.10 which does not support Buffer.from. Guess I can switch to the deprecated Buffer constructor overload for backwards compatibility.

Published v1.0.1! :tada: :confetti_ball:
It includes this fix and official support for Node 0.12, 4, 5 and 6. Changelog available here.

Aaaand v1.0.2 released with updated dependencies! :zap:


Paket pack has issues with subfolders

Repro.

clone https://github.com/fsprojects/FsReveal/tree/develop
run build.cmd NuGet

the result is a invalid package (getting server error 500 if I push it) in the temp folder.
If extract the nupkg then there are subfolders in reveal.js folder but package explorer is not showing these files.

@maartenba @mavnn Any ideas what might go wrong?

I'm stuck here since the package Explorer shows no errors and nuget.org is only returning 500 without details.


Update phpunit.xml.dist

Added more configuration to the phpunit config file.

I don't feel it's necessary to add that, tests are working fine. Thanks anyway


Unserialize as array in the example with headers

Else... that won't work as the AMQPMessage class requires the properties argument to be an array.

What's the difference? I don't see it. The result is the same?

The difference is that it's arrays instead of stdClasses, and the AMQPMessage object don't supports stdClass inside the headers for example!

Ah, now I understand! Thanks.


Detect Data Changes failing in Pro incremental refresh on Service

I'm getting an error when I enabled the Detect Data Changes option in the new Pro Incremental refresh feature.  My data source is an Azure SQL Database in North Europe.  Without enabling this feature, incremental refresh works fine in the service when refreshing.  The error I get in the service when refreshing if the Detect Data Changes is enabled (the column I'm using in a different datetime column) is:
Message: Resource name and Location need to match. Resource name: DWIncremental FactPurchase. Location: Polling_36686F87_B3FA_4760_A613_9C6D47A37170.
Cluster URI: WABI-UK-SOUTH-B-PRIMARY-redirect.analysis.windows.net
Activity ID: 86c1f61d-9449-460b-b1c3-af4c2b989a25
Request ID: 0952351a-5ce0-d781-a883-4da446ec2abc
Time: 2020-02-23 21:50:45Z
My Power BI service region is UK South so I'm wondering if the data source needed to be in the same region so I created a SQL Database in UK South but I'm getting the same issue.

Thanks for your comment, @datahai . This looks like a support request or product question rather than documentation feedback. You might find a solution in the Power BI Community, at https://community.powerbi.com. If not, you can get support by going to https://support.powerbi.com.


[Doc Improvement][Teams JS link updates][3862519]

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/concepts/build-and-test/deep-links-execution-handling.md
94
3
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/apps-in-teams-meetings/build-tabs-for-meeting.md
87
27
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/meeting-apps-apis.md
90
43
link
:white_check_mark:

msteams-platform/bots/bot-features.md
90
16
link
:white_check_mark:

msteams-platform/bots/calls-and-meetings/call-notifications.md
86
8
link
:white_check_mark:

msteams-platform/bots/how-to/bots-filesv4.md
80
17
link
:white_check_mark:

msteams-platform/bots/how-to/create-a-bot-commands-menu.md
88
10
link
:white_check_mark:

msteams-platform/concepts/build-and-test/deep-links-execution-handling.md
94
3
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/apps-in-teams-meetings/build-tabs-for-meeting.md
87
27
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/meeting-apps-apis.md
90
43
link
:white_check_mark:

msteams-platform/bots/bot-features.md
90
16
link
:white_check_mark:

msteams-platform/bots/calls-and-meetings/call-notifications.md
86
8
link
:white_check_mark:

msteams-platform/bots/how-to/bots-filesv4.md
80
17
link
:white_check_mark:

msteams-platform/bots/how-to/create-a-bot-commands-menu.md
88
10
link
:white_check_mark:

msteams-platform/bots/how-to/get-teams-context.md
90
6
link
:white_check_mark:

msteams-platform/concepts/build-and-test/deep-links-execution-handling.md
94
3
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/apps-in-teams-meetings/build-tabs-for-meeting.md
87
27
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/meeting-apps-apis.md
90
43
link
:white_check_mark:

msteams-platform/bots/bot-features.md
90
16
link
:white_check_mark:

msteams-platform/bots/calls-and-meetings/call-notifications.md
86
8
link
:white_check_mark:

msteams-platform/bots/how-to/bots-filesv4.md
80
17
link
:white_check_mark:

msteams-platform/bots/how-to/create-a-bot-commands-menu.md
88
10
link
:white_check_mark:

msteams-platform/bots/how-to/get-teams-context.md
90
6
link
:white_check_mark:

msteams-platform/concepts/build-and-test/deep-links-execution-handling.md
94
3
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.

Acrolinx Scorecards
We currently enforce a minimum score of 80.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
Score
Issues
Scorecard
Processed

msteams-platform/apps-in-teams-meetings/build-tabs-for-meeting.md
87
27
link
:white_check_mark:

msteams-platform/apps-in-teams-meetings/meeting-apps-apis.md
90
43
link
:white_check_mark:

msteams-platform/bots/bot-features.md
90
16
link
:white_check_mark:

msteams-platform/bots/calls-and-meetings/call-notifications.md
86
8
link
:white_check_mark:

msteams-platform/bots/how-to/bots-filesv4.md
80
17
link
:white_check_mark:

msteams-platform/bots/how-to/create-a-bot-commands-menu.md
88
10
link
:white_check_mark:

msteams-platform/bots/how-to/get-teams-context.md
90
6
link
:white_check_mark:

msteams-platform/concepts/build-and-test/deep-links-execution-handling.md
94
3
link
:white_check_mark:

More info about Acrolinx
Use the Acrolinx extension, or sidebar, in Visual Studio Code to check spelling, grammar, style, tone, clarity, and key terminology when you're creating or updating content. For more information, see Use the Visual Studio Code extension to run Acrolinx locally.


time decimal separator

Time formating fails when default locale uses coma as decimal separator (ie: es_ES), as stated on issue #12

Perfect, thank you @bmagni-ob!


V0.x pull request

Proposed fix for #50.

Adds an optional parameter to acsys.Connection.request_stream(), called done_fut. This parameter is an unresolved Future. The async generator will monitor this future as well as the reply stream. If the future is canceled, the generator will exit.
DPM._shutdown() now cancels the future that it passes to request_stream().

I'm sharing my testing script in case anyone else wants to try it.
I'm using Python 3.10, but can try other versions if needed.
#!/usr/bin/env python3

"""An example of using asyncio with ACSys to provide data to PyQt."""

import threading
import asyncio
import time

import acsys.dpm

async def read_many(con, thread_context):
    """Read many values from the DPM."""
    async with acsys.dpm.DPMContext(con) as dpm:
        # Add our async context to the thread context.
        # This allows us to close the DPM context when
        # the thread exits without a flag.
        thread_context['daq_task'] = dpm

        await dpm.add_entries(list(enumerate(thread_context['paramlist'])))

        await dpm.start()

        async for evt_res in dpm:
            if evt_res.isReading:
                # We must have a lock before we can write data, otherwise the
                # data could be read at the same time.
                with thread_context['lock']:
                    thread_context['data'][evt_res.tag] = evt_res.data
            elif evt_res.isStatus:
                print(f'Status: {evt_res}')
            else:
                print(f'Unknown response: {evt_res}')

        print('Ending read_many loop')

class Phasescan:
    """A class to handle the phase scan."""

    def __init__(self):
        self.thread_dict = {}

    def _acnet_daq(self, thread_name):
        """Run the ACNet DAQ."""
        # This should be asyncio.run() but it's not supported in Python 3.6.
        event_loop = asyncio.new_event_loop()

        try:
            asyncio.set_event_loop(event_loop)

            # This blocks until the client returns.
            acsys.run_client(read_many, thread_context=self.thread_dict[thread_name])
        finally:
            # Clean up the event loop after the client returns.
            event_loop.close()

    def get_thread_data(self, thread_name):
        """Get the data from the thread."""
        with self.thread_dict[thread_name]['lock']:
            # We must copy the data, otherwise we are reading a reference.
            # Reading the reference could mean that we get the wrong data.
            return self.thread_dict[thread_name]['data'].copy()

    def start_thread(self, thread_name, param_list):
        """Start the thread."""
        print('Starting thread', thread_name)
        daq_thread = threading.Thread(
            target=self._acnet_daq,
            args=(thread_name,)
        )

        self.thread_dict[thread_name] = {
            'thread': daq_thread,
            'lock': threading.Lock(),
            # Initialise a None list the length of the param list.
            # The index of the list is the tag of the parameter.
            'data': [None]*len(param_list),
            'paramlist': param_list
        }

        daq_thread.start()

    async def stop_thread(self, thread_name):
        """Stop the thread."""
        print('Stopping thread', thread_name)

        # Close the DPM context.
        await self.thread_dict[thread_name]['daq_task']._shutdown()
        # Clean up the thread.
        self.thread_dict[thread_name]['thread'].join()

async def main():
    """Run the main loop."""
    pscan = Phasescan()

    pscan.start_thread('pscan', ['M:OUTTMP'])

    for _ in range(3):
        print(pscan.get_thread_data('pscan'))
        time.sleep(1)

    await pscan.stop_thread('pscan')

asyncio.run(main())

Here's my current stack trace.
➜ python pyqt_async.py
Starting thread pscan
[None]
Exception in thread Thread-1 (_acnet_daq):
Traceback (most recent call last):
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/threading.py", line 1009, in _bootstrap_inner
    self.run()
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/threading.py", line 946, in run
    self._target(*self._args, **self._kwargs)
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python-examples/pyqt_async.py", line 53, in _acnet_daq
    acsys.run_client(read_many, thread_context=self.thread_dict[thread_name])
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python/acsys/__init__.py", line 819, in run_client
    return loop.run_until_complete(client_fut)
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/site-packages/nest_asyncio.py", line 81, in run_until_complete
    return f.result()
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/asyncio/futures.py", line 201, in result
    raise self._exception
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/asyncio/tasks.py", line 232, in __step
    result = coro.send(None)
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python/acsys/__init__.py", line 795, in __client_main
    result = (await main(con, **kwargs))
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python-examples/pyqt_async.py", line 14, in read_many
    async with acsys.dpm.DPMContext(con) as dpm:
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python/acsys/dpm/__init__.py", line 813, in __aenter__
    await self.dpm._restore_state()
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python/acsys/dpm/__init__.py", line 361, in _restore_state
    await self._connect(lock)
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python/acsys/dpm/__init__.py", line 390, in _connect
    _, msg = await gen.asend(None)
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python/acsys/__init__.py", line 704, in request_stream
    pending.add(asyncio.create_task(done_fut))
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/asyncio/tasks.py", line 337, in create_task
    task = loop.create_task(coro)
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/asyncio/base_events.py", line 433, in create_task
    task = tasks.Task(coro, loop=self, name=name)
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/asyncio/tasks.py", line 100, in __init__
    raise TypeError(f"a coroutine was expected, got {coro!r}")
TypeError: a coroutine was expected, got <Future pending>
[None]
[None]
Stopping thread pscan
Traceback (most recent call last):
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python-examples/pyqt_async.py", line 105, in <module>
    asyncio.run(main())
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/site-packages/nest_asyncio.py", line 38, in run
    return loop.run_until_complete(task)
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/site-packages/nest_asyncio.py", line 81, in run_until_complete
    return f.result()
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/asyncio/futures.py", line 201, in result
    raise self._exception
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/asyncio/tasks.py", line 232, in __step
    result = coro.send(None)
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python-examples/pyqt_async.py", line 103, in main
    await pscan.stop_thread('pscan')
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python-examples/pyqt_async.py", line 89, in stop_thread
    await self.thread_dict[thread_name]['daq_task']._shutdown()
KeyError: 'daq_task'
Exception ignored in: <function __AcnetdProtocol.__del__ at 0x1063648b0>
Traceback (most recent call last):
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python/acsys/__init__.py", line 164, in __del__
    self.end()
  File "/Users/beau/Projects/fermi/controls/applications/acsys-python/acsys/__init__.py", line 168, in end
    self.transport.close()
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/asyncio/selector_events.py", line 700, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/asyncio/base_events.py", line 745, in call_soon
    self._check_closed()
  File "/Users/beau/.pyenv/versions/3.10.2/lib/python3.10/asyncio/base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed

This wasn't complete, so I'm reverting it and restoring the branch.


Rename Infrastructure.CloudProvider to Platform

Rename the Infrastructure CloudProvider field to Platform in an effort to more
clearly establish the value is not directly mapped to Kubernetes cloud provider
constants. Kubernetes cloud provider names may be derived from the value.
/cc @openshift/sig-network-edge @derekwaynecarr @deads2k @rajatchopra @flaper87 @smarterclayton @abhinavdahiya @staebler

The field name Platform is more synonymous with what installer installs. And clubbing that info into CloudProvider is loss of information.
/approve

ping @smarterclayton @deads2k @knobunc


device lost

vkQueuePresentKHR will get device lost(intel graphic)

您好！您的邮件已收到，我会尽快处理。祝您生活愉快！

VK: Validation Error: [ UNASSIGNED-CoreValidation-DrawState-InvalidImageLayout ] Object 0: handle = 0x185b5ef7b90, type = VK_OBJECT_TYPE_COMMAND_BUFFER; | MessageID = 0x4dae5635 | vkQueueSubmit(): pSubmits[0].pCommandBuffers[0] command buffer VkCommandBuffer 0x185b5ef7b90[] expects VkImage 0x4e4775000000006e[] (subresource: aspectMask 0x1 array layer 0, mip level 1) to be in layout VK_IMAGE_LAYOUT_GENERAL--instead, current layout is VK_IMAGE_LAYOUT_UNDEFINED.


Startup crash on MacOS High Sierra (10.13)

The same app works on Catalina/Big Sur but not on High Sierra.
To repro:

Create a new compose project from Intellij's template
Update to 1.0.0-alpha4-build398 and kotlin 1.5.31
Run ./gradlew packageDmg
Run the app on High Sierra (I used macincloud)

Running with the command export SKIKO_RENDER_API=SOFTWARE && open compose-test.app works though.
Mac's crash report.txt
The Mac's version
10.13.6 (17G14042)
Mac mini (Late 2012)
(What's the min version for compose anyway?)

Could you try it with version 1.0.0? There were a number of fixes for hardware rendering.

Still crashing. :(
The report doesn't say much https://pastebin.com/giUCvah2.

@asapha could you please run your example via './gradlew run' - that might give us more information about the exception in the terminal.

Here's the result
> Task :run
*** Error ***: Skia's Metal backend no longer supports this OS version.
Minimum supported version is MacOS 10.14.
Can't wrap nullptr
Failed to create Skia Metal context!
*** Error ***: Skia's Metal backend no longer supports this OS version.
Can't wrap nullptr
Minimum supported version is MacOS 10.14.
Failed to create Skia Metal context!
Cannot init graphic context
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGSEGV (0xb) at pc=0x00007fff60db4d3b, pid=24665, tid=72963
#
# JRE version: OpenJDK Runtime Environment Temurin-16.0.2+7 (16.0.2+7) (build 16.0.2+7)
# Java VM: OpenJDK 64-Bit Server VM Temurin-16.0.2+7 (16.0.2+7, mixed mode, sharing, tiered, compressed oops, compressed class ptrs, g1 gc, bsd-amd64)
# Problematic frame:
# C  [libobjc.A.dylib+0x6d3b]  objc_retain+0x1b
#
# No core dump will be written. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/user914368/Downloads/compose-highsierra-crash/hs_err_pid24665.log

From the log file:
[...]
C  [libobjc.A.dylib+0x6ea9]  objc_msgSend+0x29
j  org.jetbrains.skiko.redrawer.MetalRedrawer.setVSyncEnabled(JZ)V+0
j  org.jetbrains.skiko.redrawer.MetalRedrawer.redrawImmediately()V+226
j  org.jetbrains.skiko.SkiaLayer.paint(Ljava/awt/Graphics;)V+88
j  androidx.compose.ui.awt.ComposeLayer$ComponentImpl.paint(Ljava/awt/Graphics;)V+12
j  javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+523<EMAIL_ADDRESS>j  javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+318<EMAIL_ADDRESS>j  javax.swing.JLayeredPane.paint(Ljava/awt/Graphics;)V+73<EMAIL_ADDRESS>j  javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+523<EMAIL_ADDRESS>j  javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+318<EMAIL_ADDRESS>j  javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+523<EMAIL_ADDRESS>j  javax.swing.JComponent.paint(Ljava/awt/Graphics;)V+318<EMAIL_ADDRESS>j  javax.swing.JLayeredPane.paint(Ljava/awt/Graphics;)V+73<EMAIL_ADDRESS>j  javax.swing.JComponent.paintChildren(Ljava/awt/Graphics;)V+523<EMAIL_ADDRESS>j  javax.swing.JComponent.paintToOffscreen(Ljava/awt/Graphics;IIIIII)V+72<EMAIL_ADDRESS>[...]

https://pastebin.com/qvcNnnQ9

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


2.1 scanning crash

Hi,
I unzipped 2.1 in the AbracaDABra folder and it worked perfectly well. Then I deleted the ini file to have AbracaDABra rebuild it and start by scanning for muxes. This didn't work and the scanning crashed AbracaDABra after having scanned a few muxes.
Solution: restore my back-upped original ini or start a scan and stop after a few muxes. Then continue building the ini by manually tuning to all muxes one by one.
73
Herman Wijnants
My logblog
BELGIUM editor fmlist.org

You do not have to delete INI to do the rescan - just go to menu - Clear service list. Nevertheless it should not crash, I will try to reproduce this problem on Windows, thanks for reporting.

You do not have to delete INI to do the rescan - just go to menu - Clear service list. Nevertheless it should not crash, I will try to reproduce this problem on Windows, thanks for reporting.

I know :-)  Just trying to break it :-)
73
Herman Wijnants
My logblog
BELGIUM editor fmlist.org

2.1 also crashing when doing a band scan, so not deleting the ini file! Solution: delete the libdabsdr.dll and replace it with the previous one!
73
Herman Wijnants
My logblog
BELGIUM editor fmlist.org

Yes, confirmed. Just had a crash in manual scan. But tried to reproduce it with gdb and a video but did not see it again.
In my case I have a very weak signal in 8A of the same mux which I have locally on 6A. So, it's the same content.

After more than 10 trials, this is a video (crash in minute 1:05) and gdb output:
Bildschirmaufzeichnung vom 15.03.2023, 00:04:38.webm
Allocating 15 zero-copy buffers
	Service: Radio Maria SID = 0xE0A3DD, SCIdS = 0
	Service: ENERGY SID = 0xE0AC51, SCIdS = 0
	Service: 'WELLE 1 SID = 0xE0AD58, SCIdS = 0
	Service: *STEPHANSDOM* SID = 0xE0AC52, SCIdS = 0
	Service: Mein Kinderradio SID = 0xE0AD55, SCIdS = 0
	Service: ERF Süd SID = 0xE0AD24, SCIdS = 0
	Service: #Technikum ONE SID = 0xE0AD2A, SCIdS = 0
	Service: Rock Antenne SID = 0xE0AD27, SCIdS = 0
	Service: jö.live SID = 0xE0AD56, SCIdS = 0
	Service: arabella RELAX SID = 0xE0AD54, SCIdS = 0
	Service: KLASSIK RADIO SID = 0xE0AD53, SCIdS = 0
	Service: * 88.6 * SID = 0xE0AC47, SCIdS = 0
	Service: -AUSTRIA SID = 0xE0A3E0, SCIdS = 0
	Service: Radio Flamingo SID = 0xE0AD5A, SCIdS = 0
	Service: Antenne Österrei SID = 0xE0AD57, SCIdS = 0
	Service: arabella HOT SID = 0xE0AD59, SCIdS = 0
[Thread 0x7fffa4fff640 (LWP 8697) exited]
[New Thread 0x7fffa4fff640 (LWP 8723)]
Allocating 15 zero-copy buffers
*** stack smashing detected ***: terminated

Thread 13 "dabsdr" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffd0ff8640 (LWP 8509)]
__pthread_kill_implementation (no_tid=0, signo=6, threadid=4664814603921077312) at ./nptl/pthread_kill.c:44
44	./nptl/pthread_kill.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt
#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=4664814603921077312) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=4664814603921077312) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=4664814603921077312, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007ffff6042476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007ffff60287f3 in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007ffff60896f6 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff61db943 "*** %s ***: terminated\n")
    at ../sysdeps/posix/libc_fatal.c:155
#6  0x00007ffff613676a in __GI___fortify_fail (msg=msg@entry=0x7ffff61db92b "stack smashing detected") at ./debug/fortify_fail.c:26
#7  0x00007ffff6136736 in __stack_chk_fail () at ./debug/stack_chk_fail.c:24
#8  0x00007ffff7f9d373 in  () at /home/andreas/apps/AbracaDABra/lib/linux_x86_64/libdabsdr.so.2
#9  0x00007ffff7f9b33e in  () at /home/andreas/apps/AbracaDABra/lib/linux_x86_64/libdabsdr.so.2
#10 0x4192ea38410266d4 in  ()
#11 0x41d6fa0b41a2aaf2 in  ()
#12 0xc0dbe89ec1c68a84 in  ()
#13 0xc1bfff5ac092e6f6 in  ()
#14 0x40e795f041f3f252 in  ()
#15 0x41fab3ac41880265 in  ()
#16 0x40b14ed34164c0c3 in  ()
#17 0xc105bf76c19e7118 in  ()
#18 0x41a4131ec1b716cb in  ()
#19 0x419448c241c03682 in  ()
#20 0xbfa88d54c1829678 in  ()
#21 0x40863b3fc18db4e7 in  ()
#22 0x416a335442a836c9 in  ()
#23 0x421381da4298727e in  ()
#24 0x4227dada40a37a2e in  ()
#25 0x41bbf3be416ec8cd in  ()
#26 0x41d356cb4196c8c5 in  ()
#27 0x418d5891c20fb335 in  ()
#28 0xbfa398a0c285d6c0 in  ()
#29 0x4146e85ac127863c in  ()
#30 0x41fd257d423408ff in  ()
#31 0x41d101a6418f7448 in  ()
#32 0xc024b90640043dee in  ()
#33 0xc11306fe4119fb94 in  ()
#34 0x400f0dfec0e75680 in  ()
#35 0xc180ed8ac0bac6c3 in  ()
--Type <RET> for more, q to quit, c to continue without paging--
#36 0x41033db5c168a502 in  ()
#37 0x42318752c2014b56 in  ()
#38 0x40297168c1962fd2 in  ()
#39 0x40e852d6c17c9530 in  ()
#40 0x41e3220ec199c37e in  ()
#41 0xc1698c27c15dfcd0 in  ()
#42 0x4192c7be408786e3 in  ()
#43 0x4239b64841a66d93 in  ()
#44 0x40da43a4c0f437c3 in  ()
#45 0x42366180c181f65d in  ()
#46 0x423c6ed1417af754 in  ()
#47 0xc1bd26ad41ee8acb in  ()
#48 0xc12a012441f97fd6 in  ()
#49 0xc1022aa83ff4fbec in  ()
#50 0xc21f383dc1931574 in  ()
#51 0xc0f1b5074159ea52 in  ()
#52 0x4112f1db40ec1782 in  ()
#53 0x41849cd6c1cc3861 in  ()
#54 0x42589bf2c013602c in  ()
#55 0x41a5dd1e416ff5ea in  ()
#56 0xc2211e92c1a616f2 in  ()
#57 0xc213508ec246189d in  ()
#58 0xc213ac30c1dab2ae in  ()
#59 0xc210ed3341cbf0c5 in  ()
#60 0x416ef8bc421034d1 in  ()
#61 0x4205cf76c0b736e2 in  ()
#62 0x41039df0c13ef5d8 in  ()
#63 0x41265e224166f0eb in  ()
#64 0x412e3cb0c0372386 in  ()
#65 0x413dc3ffc1d5175a in  ()
#66 0x41c3364b3f8b6acb in  ()
#67 0xc0da474441f8a328 in  ()
#68 0xc1d4fc044132a1a1 in  ()
#69 0x416625bbc1b8031c in  ()
#70 0x41ee4e8f416276fc in  ()
#71 0x40f6daf242a5f5b0 in  ()
#72 0x418c54034212ba99 in  ()
--Type <RET> for more, q to quit, c to continue without paging--
#73 0x4216dfc2c244e90a in  ()
#74 0x41aebcd7c1d00921 in  ()
#75 0x41055f434150d678 in  ()
#76 0x41efef664018dbf0 in  ()
#77 0x4247183cc02e1a59 in  ()
#78 0x4212a6c6c0e7736a in  ()
#79 0x4158cc7cc0890936 in  ()
#80 0x3fcae2f840249baa in  ()
#81 0xc0b46402c158b75c in  ()
#82 0x40aed600c075bb95 in  ()
#83 0x41b2f6ee41950cb4 in  ()
#84 0x4093361c41092177 in  ()
#85 0xc1b51ecb410483bb in  ()
#86 0xc11893d3c1309e52 in  ()
#87 0x41d640abc23eed46 in  ()
#88 0x418c0050c1fdc306 in  ()
#89 0xc18eef36c199be7e in  ()
#90 0x40489ce8c18c163f in  ()
#91 0x420e96fec08b6946 in  ()
#92 0x41492066c209804a in  ()
#93 0xc1814501c22ed939 in  ()
#94 0x41309149c1955b67 in  ()
#95 0x421a1cfcc2226e95 in  ()
#96 0xc164d857c1e86df1 in  ()
#97 0xc20a5bfa4195cef6 in  ()
#98 0x41c13ee5c20e644e in  ()
#99 0x40cff7bec29c8190 in  ()
#100 0xc1d737b44179ba42 in  ()
#101 0x41abca06421a0e9c in  ()
#102 0x41a2c4f0c2425d42 in  ()
#103 0xc1c18d96c1bac052 in  ()
#104 0xc0a457c44226b709 in  ()
#105 0x4138d04240e2472c in  ()
#106 0xc1bcb3b0c0a1a0ca in  ()
#107 0xc1c1ae6741db59c4 in  ()
#108 0x411a83bd41ed4562 in  ()
#109 0xbfe1b3244227c239 in  ()
--Type <RET> for more, q to quit, c to continue without paging--
#110 0xc1b4260942513d28 in  ()
#111 0xc190e94142000adb in  ()
#112 0x40574da0421755d0 in  ()
#113 0x421ef4dd4228216e in  ()
#114 0x4185ddadc1190a47 in  ()
#115 0xc1b1e84dc212c20e in  ()
#116 0x40bc0101c07ec56c in  ()
#117 0xbdfdda803f0f5870 in  ()
#118 0xc1bf25c1c19bd5ad in  ()
#119 0x41272e7bc02769f1 in  ()
#120 0x411c077c41719f8e in  ()
#121 0xc1786fc841a1559c in  ()
#122 0x40d4b0ac41977325 in  ()
#123 0x3f43c12ac1a254de in  ()
#124 0xc2389c03c1ff6a38 in  ()
#125 0xc14f4521c061f19d in  ()
#126 0x425d306ac1a5d607 in  ()
#127 0x40e546cbc1b1d366 in  ()
#128 0xc20df25941001f61 in  ()
#129 0x419b8c86c1b0d8d8 in  ()
#130 0x4136844ec2370bfc in  ()
#131 0xc09d673ac1bf6133 in  ()
#132 0x4223212ec215ccea in  ()
#133 0x41b2481bc25a2436 in  ()
#134 0x412c39ddc2317816 in  ()
#135 0x41bcc166c1fe5cde in  ()
#136 0xc17d61ba4188198f in  ()
#137 0x41ba08504219fb41 in  ()
#138 0x428f467bc1f960a9 in  ()
#139 0x3ee24780c25ebf81 in  ()
#140 0xc1bebaa140af100d in  ()
#141 0x41a0c5574107dda8 in  ()
#142 0x41c49881c21d883f in  ()
#143 0x3ebbe0d8c1bb3592 in  ()
#144 0xc1c8ecf3416b82e4 in  ()
#145 0xc0a983ac40ca3869 in  ()
#146 0x41b95d0bc0cc226a in  ()
--Type <RET> for more, q to quit, c to continue without paging--
#147 0x3f7ba210419d4f04 in  ()
#148 0xc051ea2c426acffb in  ()
#149 0x421ae1ac4212a671 in  ()
#150 0x42667706c14dad7d in  ()
#151 0x40715eb03f8bc210 in  ()
#152 0xc215ab2441cbfb50 in  ()
#153 0x40d14c1441a7da1a in  ()
#154 0x4112663c41c074aa in  ()
#155 0xc238070c420fda7d in  ()
#156 0xc1e50dd04218fa3e in  ()
#157 0x41614c33c0d31ba9 in  ()
#158 0x40ca0014c26166db in  ()
#159 0x3fb97af4c1f00801 in  ()
#160 0x41b141e0411ec1b6 in  ()
#161 0x419ff431c109ab2c in  ()
#162 0xc1b5f18ec1f2ac90 in  ()
#163 0xc22db54cc0ce6f4e in  ()
#164 0xc1528c1e4095eb00 in  ()
#165 0xc0f9547ac222facc in  ()
#166 0xc212ed92c25cc2bf in  ()
#167 0xc197fedd3fbcdf08 in  ()
#168 0x41ccb2fe41bd9bd8 in  ()
#169 0x41839d6dc130dba9 in  ()
#170 0xc16937b5c171bb71 in  ()
#171 0x41ac239b41528650 in  ()
#172 0x427664bb41046ddb in  ()
#173 0xbfc862bcc1d2015f in  ()
#174 0xc24183ecc1c21e46 in  ()
#175 0x4028a6fe4098d8ab in  ()
#176 0x41c0a34cc0c1cf45 in  ()
#177 0x4045028cc174de94 in  ()
#178 0x41206306411770e9 in  ()
#179 0x420c2d5b40d44694 in  ()
#180 0x4210d9ce3fb4342e in  ()
#181 0x417778214138d4bc in  ()
#182 0x422bc1fcc01365b9 in  ()
#183 0x42526d3b416e5e21 in  ()
--Type <RET> for more, q to quit, c to continue without paging--
#184 0xc13073954205266a in  ()
#185 0xbfe3fd9cc1a25dd1 in  ()
#186 0x420176b5c1beae43 in  ()
#187 0xc14c2ba841fa48bd in  ()
#188 0xc15baa1641481d2c in  ()
#189 0xc11ada3040fd5e5e in  ()
#190 0xc2699774425dffec in  ()
#191 0xc1f66f4f41d19d59 in  ()
#192 0xc144aa3dc1a8e7eb in  ()
#193 0xc2561cfec18a8302 in  ()
#194 0xc0d22ea4c199aec8 in  ()
#195 0x40f7b21ec1a6aa3d in  ()
#196 0xc253d954c1bff6d0 in  ()
#197 0x4103240cc141bfe0 in  ()
#198 0x427767094185b3ac in  ()
#199 0xc128a8e0c19c20da in  ()
#200 0xc23093c1c2304e49 in  ()
#201 0xc2010e70416d5909 in  ()
#202 0xc17befe641c47db6 in  ()
#203 0x4165dde0c17ce662 in  ()
#204 0xc0d5e7c5c0b91e14 in  ()
#205 0xc1670910414e9fa5 in  ()
#206 0x42234f8841127ed3 in  ()
#207 0x421f7cd4410266bf in  ()
#208 0xc16f8c0cc0c4be84 in  ()
#209 0xc1cc8fd1c171d956 in  ()
#210 0x40748466c049cbe8 in  ()
#211 0x4188ffefc1874bc4 in  ()
#212 0xc129da84c1989c5c in  ()
#213 0xc212ebf4417aefb6 in  ()
#214 0xc19545963ee24820 in  ()
#215 0x40d625dec246f416 in  ()
#216 0x3f224890c25823ac in  ()
#217 0xc14d3264c1512a29 in  ()
#218 0xc1a0219cc091e4ac in  ()
#219 0xc1f689d2c25c2ad2 in  ()
#220 0xc1a730f0c20a5bf2 in  ()
--Type <RET> for more, q to quit, c to continue without paging--q
Quit

This is auto scan, this time the gdb is combined with bt full, crash is at min 0:30.
Bildschirmaufzeichnung vom 15.03.2023, 07:20:16.webm
Allocating 15 zero-copy buffers
	Service: ENERGY SID = 0xE0AC51, SCIdS = 0
	Service: Rock Antenne SID = 0xE0AD27, SCIdS = 0
	Service: jö.live SID = 0xE0AD56, SCIdS = 0
	Service: arabella RELAX SID = 0xE0AD54, SCIdS = 0
	Service: KLASSIK RADIO SID = 0xE0AD53, SCIdS = 0
	Service: * 88.6 * SID = 0xE0AC47, SCIdS = 0
	Service: -AUSTRIA SID = 0xE0A3E0, SCIdS = 0
	Service: Radio Flamingo SID = 0xE0AD5A, SCIdS = 0
	Service: Antenne Österrei SID = 0xE0AD57, SCIdS = 0
	Service: arabella HOT SID = 0xE0AD59, SCIdS = 0
	Service: Radio Maria SID = 0xE0A3DD, SCIdS = 0
	Service: 'WELLE 1 SID = 0xE0AD58, SCIdS = 0
	Service: *STEPHANSDOM* SID = 0xE0AC52, SCIdS = 0
	Service: Mein Kinderradio SID = 0xE0AD55, SCIdS = 0
	Service: ERF Süd SID = 0xE0AD24, SCIdS = 0
	Service: #Technikum ONE SID = 0xE0AD2A, SCIdS = 0
[Thread 0x7fffa4fff640 (LWP 3498) exited]
[New Thread 0x7fffa4fff640 (LWP 3501)]
Allocating 15 zero-copy buffers
[Thread 0x7fffa4fff640 (LWP 3501) exited]
[New Thread 0x7fffa4fff640 (LWP 3517)]
Allocating 15 zero-copy buffers
[Thread 0x7fffa4fff640 (LWP 3517) exited]
[New Thread 0x7fffa4fff640 (LWP 3533)]
Allocating 15 zero-copy buffers
[Thread 0x7fffa4fff640 (LWP 3533) exited]
[New Thread 0x7fffa4fff640 (LWP 3549)]
Allocating 15 zero-copy buffers
[Thread 0x7fffd27fb640 (LWP 3423) exited]
[Thread 0x7fffd1ffa640 (LWP 3424) exited]
[Thread 0x7fffd2ffc640 (LWP 3422) exited]
[Thread 0x7fffd37fd640 (LWP 3421) exited]
[Thread 0x7fffa4fff640 (LWP 3549) exited]
[New Thread 0x7fffa4fff640 (LWP 3567)]
Allocating 15 zero-copy buffers
[Thread 0x7fffa4fff640 (LWP 3567) exited]
[New Thread 0x7fffa4fff640 (LWP 3583)]
Allocating 15 zero-copy buffers
[Thread 0x7fffa4fff640 (LWP 3583) exited]
[New Thread 0x7fffa4fff640 (LWP 3599)]
Allocating 15 zero-copy buffers
*** stack smashing detected ***: terminated

Thread 13 "dabsdr" received signal SIGABRT, Aborted.
[Switching to Thread 0x7fffd0ff8640 (LWP 3426)]
__pthread_kill_implementation (no_tid=0, signo=6, threadid=4704720117865852527) at ./nptl/pthread_kill.c:44
44	./nptl/pthread_kill.c: Datei oder Verzeichnis nicht gefunden.
(gdb) bt full
#0  __pthread_kill_implementation
    (no_tid=0, signo=6, threadid=4704720117865852527)
    at ./nptl/pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = 0x414a860541072e6f

                    old_mask = {__val = {5135414499197818050,<PHONE_NUMBER>72768,<PHONE_NUMBER>741147566,<PHONE_NUMBER>698859242,<PHONE_NUMBER>079163678,<PHONE_NUMBER>408998468,<PHONE_NUMBER>916594508,<PHONE_NUMBER>736415062,<PHONE_NUMBER>354521478,<PHONE_NUMBER>954868098,<PHONE_NUMBER>322076942,<PHONE_NUMBER>891856436,<PHONE_NUMBER>179729939,<PHONE_NUMBER>534316339,<PHONE_NUMBER>757037502,<PHONE_NUMBER>280572640}}
        ret = <optimized out>
#1  __pthread_kill_internal (signo=6, threadid=4704720117865852527)
    at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=4704720117865852527, signo=signo@entry=6)
    at ./nptl/pthread_kill.c:89
#3  0x00007ffff6042476 in __GI_raise (sig=sig@entry=6)
    at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#4  0x00007ffff60287f3 in __GI_abort () at ./stdlib/abort.c:79
        save_stage = 1

--Type <RET> for more, q to quit, c to continue without paging--
                  act = {__sigaction_handler = {sa_handler = 0x42fe000042fe0000, sa_sigaction = 0x42fe000042fe0000}, sa_mask = {__val = {4827295851711692800,<PHONE_NUMBER>329532812,<PHONE_NUMBER>7474898576,<PHONE_NUMBER>3709551615,<PHONE_NUMBER>,<PHONE_NUMBER>916585885,<PHONE_NUMBER>1746446004,<PHONE_NUMBER>700060979,<PHONE_NUMBER>857161604,<PHONE_NUMBER>353548748,<PHONE_NUMBER>956579413,<PHONE_NUMBER>188123784,<PHONE_NUMBER>500531179,<PHONE_NUMBER>069015174,<PHONE_NUMBER>489339165,<PHONE_NUMBER>890553120}}, sa_flags =<PHONE_NUMBER>, sa_restorer = 0x47096e1c46840c61}

                    sigs = {__val = {32, 0,<PHONE_NUMBER>, 0,<PHONE_NUMBER>707292159,<PHONE_NUMBER>707292159,<PHONE_NUMBER>8732840960,<PHONE_NUMBER>8732840960, 0,<PHONE_NUMBER>9414584320,<PHONE_NUMBER>9043487080,<PHONE_NUMBER>533431086,<PHONE_NUMBER>670079005,<PHONE_NUMBER>556183388,<PHONE_NUMBER>4589695,<PHONE_NUMBER>4589695}}
#5  0x00007ffff60896f6 in __libc_message
    (action=action@entry=do_abort, fmt=fmt@entry=0x7ffff61db943 "*** %s ***: terminated\n") at ../sysdeps/posix/libc_fatal.c:155

                    ap = {{gp_offset = 24, fp_offset = 0, overflow_arg_area = 0x7fffd0fef9a0, reg_save_area = 0x7fffd0fef930}}
        fd = <optimized out>
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
#6  0x00007ffff613676a in __GI___fortify_fail
--Type <RET> for more, q to quit, c to continue without paging--
    (msg=msg@entry=0x7ffff61db92b "stack smashing detected")
    at ./debug/fortify_fail.c:26
#7  0x00007ffff6136736 in __stack_chk_fail () at ./debug/stack_chk_fail.c:24
#8  0x00007ffff7f9d373 in  ()
    at /home/andreas/apps/AbracaDABra/lib/linux_x86_64/libdabsdr.so.2
#9  0x00007ffff7f9b33e in  ()
    at /home/andreas/apps/AbracaDABra/lib/linux_x86_64/libdabsdr.so.2
#10 0x3c973280416fc269 in  ()
#11 0x40c94113416fe746 in  ()
#12 0x3d9b9480c08e3c2c in  ()
#13 0xc09dc2a8bf6518f8 in  ()
#14 0xc09c47ba4195c4da in  ()
#15 0xc181b9ed40ce3c95 in  ()
#16 0xc1203efdc14d45aa in  ()
#17 0x40e3e6e2c1091b7a in  ()
#18 0x412cc925c1310064 in  ()
#19 0x4099fa4ac0b7ae90 in  ()
#20 0xc1a5d32bbdf4a360 in  ()
#21 0xc1fd249dc13af625 in  ()
#22 0xc03d32a23fd839a0 in  ()
#23 0x40d0cf624081e76e in  ()
#24 0xc10a24b7c18229f0 in  ()
#25 0xc107f293bfd81462 in  ()

Update: the crash is at 7D.
This channel is used by two different muxes (Slovenia and Italy), but both are too weak.
Bildschirmaufzeichnung vom 15.03.2023, 07:30:18.webm

I fear we were talking about two different versions.
I meant AbracaDABra version and you DABSDR version ...
Because my 1.99.4+ (exec file in different folder under Ubuntu) already uses DABSDR version 2.1.0.

What would you like me to test? An older version of DABSDR?

OK, it makes sense now :-) Then we are aligned, the bug is in DABSDR 2.1. I will release DABSDR binaries soon today and then I would like to ask you to test it with your setup to be sure that I have not overseen anything before release new version of AbracaDABra.

Confirmed, no crash now with 2.1.1 :-)
BTW: What does
RTL-SDR: dropping 1638400 bytes...
RTL-SDR: dropping 1638400 bytes...
RTL-SDR: dropping 1638400 bytes...
RTL-SDR: dropping 1638400 bytes...

mean?

It means a problem. It happens when DABSDR is not able to process the data fast enough. Does it start to happen after update to 2.1.1? If this is the case then there is still some problem :-(

I've tested all three options in the gain control.

The message appears in all 3 cases and mainly in that channel which was crashing before (in my case 7D), but also on some empty channels (= not on all).

Well, synchronization is quite CPU demanding processing, now it needs even more MIPS due to selectivity filter. I am running the app on Ubuntu on >10 years old laptop now and do not see any samples dropping. I am trying all channels and it does not happen.
Do you see high CPU usage when this happens? Maybe some process hanging in the memory? I hate to say that but have you tried to restart the PC?

On a very very weak signal top says, Abra uses more than 100%, on a normal signal (which can be decoded in the end) the value is 10-15 % typically.
Bildschirmaufzeichnung vom 15.03.2023, 14:44:55.webm

Yes, CPU usage is the problem. I assume that you are running Release build. But I do not see such huge difference between channel with signal and without. Does it happen with prebuilt AppImage too?
Do you also have high CPU usage when running from file (the same channel recoded from other tool)?

Qt-DAB: 60% in top on a very weak channel
Then I've made a recording of the same channel and played it (continuously) in Abra.
Bildschirmaufzeichnung vom 15.03.2023, 15:08:18.webm

Version 2.1.1 with fix of this issue has been released, closing.


Update API Types

Fix any breaking changes if this pull request fails to deploy

This was a test.


Empty, transparent frames when capturing from secondary screen

I have a large 4K display with 125% zoom factor as my primary display, and the 1080p laptop display as my secondary.
When I record, I'd like to use the laptop screen, because any time I do screen capture on the 4K display, the resulting image is big and blurry (both using ScreentoGif or when just capturing part of the screen using WIN+SHIFT+S).
But if I record from the secondary screen using ScreenToGif, the result is just a bunch of transparent frames with nothing in them.
Is this a known limitation?
OS: Windows 10

If the Snip and Sketch app also has the same bad result (a blurry image) perhaps there's something wrong with the display adapter of your laptop.
Have you tried to reinstall the graphics driver and restarting your computer?
The only limitation for recording in laptops is that the DirectX capture does not work on secondary screens (DirectX limitation).

Hi @NickeManarin
I was probably a bit unclear in my description... The blurry thing is normal, it happens on all Windows computers when you have 125% scaling. That's why I prefer to take screenshots and recordings on my secondary display, which has no scaling (since it's not a high PPI screen). And it's when I use ScreenToGif on my secondary display that the resulting images are just transparent.

I shot a video using my phone that perhaps shows the problem better:
https://1drv.ms/v/s!AlB0UH0hZbPQieAXA9v5EqJuKYeLOg

@NickeManarin have you had a chance to look at this?

Oh, I just got the new update. The transparent pixels problem is gone! Unfortunately, it doesn't capture the cursor like it does when recording on the primary screen, but it's a step in the right direction!

Ohhh, ok.
I'm going to open a new issue ticket for that.

Ohhh, ok.
I'm going to fix that too :)

Fixed!
It will be available with the next version, 2.28.3.


Fe - Assessment - 2

Drift video: https://video.drift.com/v/abgEVCaM4aKXDRQyJCy9ASLo4wlwfrLh1dH3h99zJAo/

Metric
Value

alert_status
:white_check_mark: OK

bugs
1

code_smells
0

reliability_rating
D (at least 1 Critical Bug)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0

Metric
Value

alert_status
:white_check_mark: OK

bugs
1

code_smells
0

reliability_rating
D (at least 1 Critical Bug)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0

Metric
Value

alert_status
:white_check_mark: OK

bugs
1

code_smells
0

reliability_rating
D (at least 1 Critical Bug)Note: A being best, E being worst

security_rating
A (0 Vulnerabilities)Note: A being best, E being worst

vulnerabilities
0


Add support for streaming hash digest calculation.

Very nice! Could you change the existing hash function to be implemented using this new API? And update its documentation to note the incremental API too.
I've added comment in docs that hash function uses hash_init, hash_update, and digest

We'll also need some examples in the doc comments showing how to use it, as it's a more complex API. Similar to how the stdlib shows examples. Thank you.
I have added one simple example, and one complex example using actor.


config: add default notary configuration

It's not intuitive that Notary config should be in ProtocolConfiguration
section, because Oracle config is in ApplicationConfiguration.

Notary config should be in ProtocolConfiguration

Well, it shouldn't. Move it on to Application please. P2PSigExtensions setting is appropriate for Protocol, but this service part is not.


plugin: json.Unmarshaler type assertion infinite loop from 1.8beta2 to 1.8rc1

Please answer these questions before submitting your issue. Thanks!
What version of Go are you using (go version)?
go version go1.8rc1 linux/amd64
What operating system and processor architecture are you using (go env)?
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/home/fsenart/exp"
GORACE=""
GOROOT="/home/fsenart/tools/exp"
GOTOOLDIR="/home/fsenart/tools/exp/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build256843014=/tmp/go-build -gno-record-gcc-switches"
CXX="g++"
CGO_ENABLED="1"
PKG_CONFIG="pkg-config"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
What did you do?
If possible, provide a recipe for reproducing the error.
A complete runnable program is good.
A link on play.golang.org is best.
// $GOPATH/src/issue/main.go

package main

import (
        "issue/dynamodbstreamsevt"
        "encoding/json"
        "plugin"
)

func main() {
        plugin.Open("plugin.so")

        var x interface{} = (*dynamodbstreamsevt.Event)(nil)
        if _, ok := x.(json.Unmarshaler); !ok {
                println("something")
        }
}

// $GOPATH/src/issue/plugin.go

package main

import "C"

import "issue/dynamodbstreamsevt"

func F(evt *dynamodbstreamsevt.Event) {}

// $GOPATH/src/issue/dynamodbstreamsevt/definition.go

package dynamodbstreamsevt

import "encoding/json"

var foo json.RawMessage

type Event struct{}

func (e *Event) Dummy() {}

test: build
        @./main

build: clean
        @go build -buildmode=plugin -o plugin.so plugin.go
        @go build -o main main.go

clean:
        @rm -rf main *.so

What did you expect to see?
The program should terminate.
What did you see instead?
The program goes into an infinite loop and does not terminate. If you see processor usage with top, you'll notice that the program uses 100% of one processor and never gives up.
Observations
If you change anything the program will terminate !!!

If you change the name dynamodbstreamsevt by anything else, all goes well and the program terminates.
If you change the name Event by anything else, all goes well and the program terminates.
If Event has not at least one method like Dummy, all goes well and the program terminates.
If encoding/json is not imported in the dynamodbstreamsevt package, all goes well and the program terminates.
If encoding/json is not used in plugin.so, all goes well and the program terminates.
If plugin feature is not used, all goes well and the program terminates.

I admit that what I'm saying here seems very very weird, but I even tested in a fresh machine without anything else than the above code and the name dynamodbstreamsevt and Event seem magic!

Above program terminates well with go1.8beta2, so I conclude that this is a regression in go1.8rc1.

@crawshaw

^\SIGQUIT: quit
PC=0x47d65f m=0 sigcode=128

goroutine 1 [running]:
runtime.getitab(0x5320e0, 0x52fc20, 0x1, 0x0)
	/home/fsenart/tools/exp/src/runtime/iface.go:55 +0xcf fp=0xc42004df18 sp=0xc42004de80
runtime.assertE2I2(0x5320e0, 0x52fc20, 0x0, 0x0, 0x0, 0xc4200001a0)
	/home/fsenart/tools/exp/src/runtime/iface.go:294 +0x43 fp=0xc42004df48 sp=0xc42004df18
main.main()
	/home/fsenart/exp/src/issue/main.go:13 +0x5f fp=0xc42004df88 sp=0xc42004df48
runtime.main()
	/home/fsenart/tools/exp/src/runtime/proc.go:185 +0x20a fp=0xc42004dfe0 sp=0xc42004df88
runtime.goexit()
	/home/fsenart/tools/exp/src/runtime/asm_amd64.s:2197 +0x1 fp=0xc42004dfe8 sp=0xc42004dfe0

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
	/home/fsenart/tools/exp/src/runtime/asm_amd64.s:2197 +0x1

rax    0x0
rbx    0x52fc20
rcx    0x5320e0
rdx    0x7034bc00
rdi    0x7b90a0
rsi    0x111
rbp    0xc42004df08
rsp    0xc42004de80
r8     0x7c6520
r9     0x532160
r10    0xc420020050
r11    0x110
r12    0xc420098108
r13    0x1
r14    0x0
r15    0xc420098018
rip    0x47d65f
rflags 0x206
cs     0x33
fs     0x0
gs     0x0
Makefile:2: recipe for target 'test' failed
make: *** [test] Error 2

Shot in the dark (I'm away from my linux machine until tomorrow), would you mind patching in https://golang.org/cl/35117?

@crawshaw I've just applied the patch and it works. Can you please provide a little explanation because I've lost a lot of hours and the patch is so tiny :)

Yay!  Figuring out a test for CL 35117 was on my plate for tomorrow.  You've just done 90% of the work for me...
The explanation is that the itabs (pointers to which are the "type information" word of an interface) are put in linked lists in the runtime.  If the same itab is inserted twice, it can lead to cycles in the linked lists.  When a subsequent lookup operation happens on that linked list, it can run indefinitely.

@randall77 Okkkk. Thx for the explanation, the bug was so tricky for me to spot.
Can you confirm me that the patch will be applied for the next rc or final release, so that I can apply it in my docker image for now to unlock my issue eawsy/aws-lambda-go-shim#2?

Yes, it will be in the next rc.
(It will likely be submitted tomorrow.)

@fsenart : Could you fill out a CLA so I can use your test code?
Follow the instructions at https://golang.org/doc/contribute.html#cla

Done ;)


Added library file for platformio

We need this library file to enable Platformio (http://docs.platformio.org) users to use this library easily.
Library configuration file guideline
http://docs.platformio.org/en/latest/librarymanager/creating.html#register

Thank you for you contribution.


White Screen on Run

I have watched all the videos of you creating this app and was wanting to play with myself, so I have forked the project and downloaded it into CDE. I have the pics from the link in the second video, but when I run the project all I get is a white screen and my camera light is not on so I do not think it is working either. Any help would be great.

Thanks for the report. I believe it probably has to do with how the polymer dependency is being requested. I'll take a look and let you know when it is fixed.


Make Windows Key Menu Activation Optional

Cairo responds to the Window Key press by popping up a menu.
Users may have alternate dedicated keyboard shortcut apps that use the windows key combinations in other ways.
Cairo can interfere with the keypresses of alternate apps so please make an option to disable Cairo keyboard shortcuts.

Please do this, it is ultimately annoying that u cant use it for either snipping tool or clipboard....


Should rotate_sweep treat $fn,$fs,$fa the same as rotate_extrude?

I wanted to see exactly how the built-in rotate_extrude() dealt with $fn when it comes to angles less than 360°, and I noticed that BOSL2 rotate_sweep() is different.
rotate_sweep() calculates the number of segments over the whole revolution, and then constructs a shape using all of them no matter how small the section is:
steps = segs(max_x)

...while OpenSCAD built-in scales with the angle:
fragments = (unsigned int)std::ceil(fmax(Calc::get_fragments_from_r(max_x - min_x, node.fn, node.fs, node.fa) * std::abs(node.angle) / 360, 1));

I think it should scale with the angle, otherwise it adds a lot of unnecessary small polygons, ignoring $fs limits etc. Here's a telling example:
include <BOSL2/std.scad>
$fn=16;
for(i=[1:4]) {
  a = i/4*90;
  right(i*2) {
    rotate_sweep(right(1,circle(r=1,$fn=4)),angle=a);
    fwd(2)
      rotate_extrude(angle=a)
        right(1) circle(r=1,$fn=4);
  }
}

Top row is BOSL2, bottom row is OpenSCAD.
The only reason I'm not changing this myself and submitting a pull request is that I don't know if it will mess up some of the modules that depend on it. If you think this is a good idea I could give it a try, see if it ruins anything.

I think it's a BOSL2 bug.

It's definitely a bug.


Update yaml.py

address formatting issue on line 39 in: "def _add_reference" function causing silent failure post 0.36 update.
Description:
Related issue (if applicable): fixes #
Pull request in home-assistant.github.io with documentation (if applicable): home-assistant/home-assistant.github.io#<home-assistant.github.io PR number goes here>
Example entry for configuration.yaml (if applicable):

Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io

If the code communicates with devices, web services, or third-party tools:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] New dependencies have been added to the REQUIREMENTS variable (example).
[ ] New dependencies are only imported inside functions that use them (example).
[ ] New dependencies have been added to requirements_all.txt by running script/gen_requirements_all.py.
[ ] New files were added to .coveragerc.

If the code does not interact with devices:

[ ] Local tests with tox run successfully. Your PR cannot be merged unless tests pass
[ ] Tests have been added to verify that the new code works.

That's not the fix. Now you're not setting the ref for the other types. Instead the type that is causing errors should be wrapped

I think I addressed it in line with what you pointed out. Please let me know if I missed the mark completely.

Any word on this? Tried to upgrade again today but didn't check here first. Same situation.


Add links and badges

Beats writing code

Fuget link for postgres being broken is likely due to parse issue with +build - e.g. this preview package is shown fine

Thanks @bartelink !


LinAlgError in lobpcg: leading minor not positive definite

I am using scikit-learn to train a spectral clustering model, which calls lobpcg to find the spectral embedings:
lambdas, diffusion_map = lobpcg(laplacian, X, tol=1e-15,
                                largest=False, maxiter=2000)

and I run into following errors:
numpy.linalg.linalg.LinAlgError: the leading minor of order 18 of 'b' is not positive definite.
The factorization of 'b' could not be completed and no eigenvalues or eigenvectors were computed.

The laplacian is a 100 X 100 symmetrical matrix.
X is randomly generated, according to the code in scikit-learn.

Could you provide a short self-contained example which shows the problem? Ideally, it would demonstrate it with scikit-learn being out of the picture.

That should now be fixed in scikit-learn, see https://github.com/scikit-learn/scikit-learn/issues/6489#issuecomment-421422497 and issue can be closed

I am using scikit-learn to train a spectral clustering model, which calls lobpcg to find the spectral embedings:
lambdas, diffusion_map = lobpcg(laplacian, X, tol=1e-15,
                                largest=False, maxiter=2000)

and I run into following errors:
numpy.linalg.linalg.LinAlgError: the leading minor of order 18 of 'b' is not positive definite.
The factorization of 'b' could not be completed and no eigenvalues or eigenvectors were computed.

The laplacian is a 100 X 100 symmetrical matrix.
X is randomly generated, according to the code in scikit-learn.

The issue is that  tol=1e-15 is way too excessive for LOBPCG and cannot be even reached, making LOBPCG to crash. Just use more reasonable tolerance and it should work fine.

this was fixed, closing. thanks all


fix(card): update background to use the same as item

Pull request checklist
Please check if your PR fulfills the following requirements:

[ ] Tests for the changes have been added (for bug fixes / features)
[ ] Docs have been reviewed and added / updated if needed (for bug fixes / features)
[ ] Build (npm run build) was run locally and any changes were pushed
[ ] Lint (npm run lint) has passed locally and any fixes were made for failures

Pull request type

Please check the type of change your PR introduces:

[x] Bugfix
[ ] Feature
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Documentation content changes
[ ] Other (please describe):

What is the current behavior?

Card backgrounds are transparent which causes issues
Issue Number: possibly fixes #19140
What is the new behavior?

uses item background but falls back to the background of the content
this updates it so that the background will not be transparent but white

Does this introduce a breaking change?

[ ] Yes
[x] No

Other information

Hi, thanks for the PR, is there a way i can check this right now before getting merged and released so i can tell you if it fixes the problem ?
Thanks.

@shadoWalker89 Sure! Here is a dev build, but this is based off of our 5.0.0-beta.0 release: 5.0.0-dev.201910161728.77878e2
See the changelog for what is in 5.0 so far: https://github.com/ionic-team/ionic/blob/master/CHANGELOG.md

So this fix will not be included in the ionic 4 ?
Also how can i install the 5 beta version ? I have no clue how to do that.

@shadoWalker89 Sure! Here is a dev build, but this is based off of our 5.0.0-beta.0 release: 5.0.0-dev.201910161728.77878e2
See the changelog for what is in 5.0 so far: https://github.com/ionic-team/ionic/blob/master/CHANGELOG.md

This change will not be reflected in version 4.x?

I think there's some confusion here. This PR is only to update the card background to use the following as the default:
var(--ion-item-background, var(--ion-background-color, #fff)

Prior to this it didn't fallback to the background color of the app. However, it is currently possibly to set it to do this by setting it on the ion-card:
ion-card {
  --background: var(--ion-item-background, var(--ion-background-color, #fff);
}

Whether or not it fixes #19140 was just a possibility but this PR will not be intended to fix that issue, only the issue of it not falling back to the background color. This will go into 5.x as this is not critical (it has a workaround).

@brandyscarney Thank your for your answer and explanation in details. But please could you check out the image problem  that i mentioned in my last answer ? Thanks