[BUG]Encounter com.azure.storage.blob.models.BlobStorageException Authentication failed

Describe the bug
We're saving images to Azure storage and using azure-storage-blob SDK to download the image. But we encounter this exception from time to time, telling us the 403 authentication failed. When
we retry with a new request, it backs to normal. Attached the stack track blew.
Exception or Stack Trace
00:00.016243347 ERROR c.f.i.log.LogManager - [com.azure.storage.blob.models.BlobStorageException] Status code 403, "AuthenticationFailedServer failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
RequestId:3b6c6db3-201e-0019-462f-f0cc84000000
Time:2020-03-02T01:14:25.3649912ZLifetime validation failed. The token is expired."
com.azure.storage.blob.models.BlobStorageException: Status code 403, "AuthenticationFailedServer failed to authenticate the request. Make sure the value of Authorization header is formed correctly including the signature.
RequestId:3b6c6db3-201e-0019-462f-f0cc84000000
Time:2020-03-02T01:14:25.3649912ZLifetime validation failed. The token is expired."
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Unknown Source)
at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
at com.azure.core.http.rest.RestProxy.instantiateUnexpectedException(RestProxy.java:357)
at com.azure.core.http.rest.RestProxy.lambda$ensureExpectedStatus$3(RestProxy.java:400)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:118)
at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1592)
at reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:317)
at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1592)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:144)
at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114)
at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1592)
at reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:383)
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:55)
at reactor.core.publisher.MonoDefer.subscribe(MonoDefer.java:52)
at reactor.core.publisher.Mono.subscribe(Mono.java:4087)
at reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:457)
at reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:370)
at reactor.core.publisher.InternalMonoOperator.subscribe(InternalMonoOperator.java:55)
at reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:150)
at reactor.core.publisher.FluxMap$MapSubscriber.onNext(FluxMap.java:114)
at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1592)
at reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:317)
at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:123)
at reactor.core.publisher.FluxHandle$HandleSubscriber.onNext(FluxHandle.java:112)
at reactor.core.publisher.FluxMap$MapConditionalSubscriber.onNext(FluxMap.java:213)
at reactor.core.publisher.FluxDoFinally$DoFinallySubscriber.onNext(FluxDoFinally.java:123)
at reactor.core.publisher.FluxFilterFuseable$FilterFuseableConditionalSubscriber.onNext(FluxFilterFuseable.java:330)
at reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1592)
at reactor.core.publisher.MonoReduceSeed$ReduceSeedSubscriber.onComplete(MonoReduceSeed.java:156)
at reactor.core.publisher.FluxMap$MapSubscriber.onComplete(FluxMap.java:136)
at reactor.netty.channel.FluxReceive.terminateReceiver(FluxReceive.java:397)
at reactor.netty.channel.FluxReceive.drainReceiver(FluxReceive.java:197)
at reactor.netty.channel.FluxReceive.onInboundComplete(FluxReceive.java:345)
at reactor.netty.channel.ChannelOperations.onInboundComplete(ChannelOperations.java:363)
at reactor.netty.channel.ChannelOperations.terminate(ChannelOperations.java:412)
at reactor.netty.http.client.HttpClientOperations.onInboundNext(HttpClientOperations.java:556)
at reactor.netty.channel.ChannelOperationsHandler.channelRead(ChannelOperationsHandler.java:91)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:438)
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:328)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:302)
at io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:253)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.handler.ssl.SslHandler.unwrap(SslHandler.java:1475)
at io.netty.handler.ssl.SslHandler.decodeNonJdkCompatible(SslHandler.java:1236)
at io.netty.handler.ssl.SslHandler.decode(SslHandler.java:1273)
at io.netty.handler.codec.ByteToMessageDecoder.decodeRemovalReentryProtection(ByteToMessageDecoder.java:505)
at io.netty.handler.codec.ByteToMessageDecoder.callDecode(ByteToMessageDecoder.java:444)
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:283)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:352)
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1422)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:374)
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:360)
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:931)
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792)
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:483)
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:383)
at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1044)
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
at java.base/java.lang.Thread.run(Unknown Source)
Suppressed: java.lang.Exception: #block terminated with an error
at reactor.core.publisher.BlockingSingleSubscriber.blockingGet(BlockingSingleSubscriber.java:93)
at reactor.core.publisher.Mono.block(Mono.java:1663)
at com.azure.storage.common.implementation.StorageImplUtils.blockWithOptionalTimeout(StorageImplUtils.java:94)
at com.azure.storage.blob.specialized.BlobClientBase.downloadWithResponse(BlobClientBase.java:418)
at com.azure.storage.blob.specialized.BlobClientBase.download(BlobClientBase.java:378)
at app.azure.storage.AzureBlobService.download(AzureBlobService.java:61)
at app.image.service.StorageService.download(StorageService.java:134)
at app.image.service.StorageService.transform(StorageService.java:111)
at app.image.service.StorageService.get(StorageService.java:84)
at app.image.service.ImageService.get(ImageService.java:59)
at app.image.web.ImageWebServiceImpl.get(ImageWebServiceImpl.java:28)
at app.image.web.ImageWebServiceImpl$get$4.execute(ImageWebServiceImpl$get$4.java)
at core.framework.internal.web.controller.InvocationImpl.proceed(InvocationImpl.java:51)
at core.framework.internal.web.HTTPHandler.handle(HTTPHandler.java:99)
at core.framework.internal.web.HTTPHandler.handleRequest(HTTPHandler.java:72)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:376)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:830)
at org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1871)
at org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1451)
... 1 more
00:00.017291156 c.f.i.w.response.ResponseHandler - [response:header] Content-Type=application/json; charset=utf-8
To Reproduce
Steps to reproduce the behavior:
Code Snippet
Add the code snippet that causes the issue.
Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Setup (please complete the following information):

OS: [e.g. iOS]
IDE : [e.g. IntelliJ]
Version of the Library used

Additional context
Add any other context about the problem here.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[ ] Bug Description Added
[ ] Repro Steps Added
[ ] Setup information Added

@mortzheng Thank you for posting this issue. I notice this line in your stack trace: "Lifetime validation failed. The token is expired." Are you using OAuth token credentials to authenticate?

Here's the code snippet:
this.client = new BlobServiceClientBuilder()
.endpoint(this.endpoint)
.credential(new DefaultAzureCredentialBuilder().build())
.buildClient();
We're using DefaultAzureCredential. And i think it should ManagedIdentityCredential, since we're deploy our service on AKS pod and binding aadpodidentity to it. If my understanding is correct, the default credential should be the managed identity.
Just to strength this, it happens from time to time, not every request.

Thanks, @mortzheng for the information.
@g2vinay Can you please comment on the behavior of DefaultAzureCredential and managedIdentityCredential and why they may be causing these transient auth failures?

@joshfree for visibility

@mortzheng Thanks for reporting this issue.
Looking at your use case, it is possible that the requests are getting queued in the netty connection pool while images are being downloaded.
The access token specified in the queued request expires by the time it reaches the server from time to time.
I would recommend that you change the tokenRefreshOffset on your token credential.
You can do this usingtokenRefreshOffset setter on your credential. The default is 2 minutes duration, increase it to 5 minutes / 10 minutes / a value that works for your use case.
This functionality is available only in our latest beta release here: https://search.maven.org/artifact/com.azure/azure-identity/1.1.0-beta.2/jar

@g2vinay Sorry for the late response. I made the changes as you suggested several days ago. And it works for me. I don't see any Authentication failed errors so far. I will continue keep an eye on this for another week. If everything is ok, i will close this ticket. Really thanks for your help!

We are getting same issue. It isn't related with the tokenRefreshOffset, but with concurrency executions. When token is expired and we try to get a new token in multiple threads at the same time, we get the "token expired" error. SimpleCache of credential policy is implemented with ReplayProcess, at some point this is failing (maybe because we are using blocking API) and returning expired token. Is ReplayProcess thread-safe and can be used in multi-thread context?
What we've done as workaround is implementing our own policy (setting a dummy TokenCredential and adding the policy to the builder). We aren't worried about asking for multiple token and using last one in future calls, so we are not controlling concurrency, just getting context each time we check the token is expired.

@rogelio-o we rewrote the SimpleTokenCache to be more resilient to errors during proactive token refreshes. We also replaced ReplayProcess with an atomically referenced MonoProcessor. It's released last week at version 1.1.0-beta.6.


Remove code relying on non-MapBuffer TextLayoutManager

Summary:
These are all either dead, or duplicate code (e.g. for spannable cache). Let's delete it, so we can get rid of the redundant TextLayoutManager that is no longer getting new updates.
Changelog: [Internal]
Differential Revision: D56800381

Merged as https://github.com/facebook/react-native/commit/1499e67b39bc2dc0c27bdc1686062042be4683d2


Bump Golang to 1.15.

This PR pumps Golang version to 1.15, as well as Linux Alpine to 3.12 because there is no other version that comes with Golang 1.15. See here for details: https://hub.docker.com/_/golang?tab=tags&page=1&name=1.15-alpine

Codecov Report

Merging #3222 (8944607) into main (22c0748) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main    #3222   +/-   ##
=======================================
  Coverage   55.84%   55.84%
=======================================
  Files         102      102
  Lines        7222     7222
=======================================
  Hits         4033     4033
  Misses       2552     2552
  Partials      637      637

Continue to review full report at Codecov.

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

Go has just released the v1.16, do we consider to upgrade?

Go has just released the v1.16, do we consider to upgrade?

I feel like that's too fresh from the oven and not properly tested yet. I'd say let's merge v1.15 upgrade first and then move to v1.16 later on.


'Run' new code fails (due to cross-domain issue?)

The 'run' button on the rust front page doesn't work for me (Firefox 34.0.5, OSX).  The status goes to 'running' and it just sits there.  If I open a javascript console, it says that:
Cross-Origin Request Blocked:
    The Same Origin Policy disallows reading the remote resource at http://play.rust-lang.org/evaluate.json.
    This can be fixed by moving the resource to the same domain or enabling CORS.
        evaluate.json

TypeError:
    message is null
        www.rust-lang.org:382

Same here, Firefox 35 on Fedora Linux (same with Epiphany). Leaves a bad impression currently, as if Rust was taking forever to run the program.

I think this is fixed now, thanks for the report!


Question about capsule_fusion

Hello,
Thanks for your great work~
Here I have one question in " https://github.com/JRC1995/BERT-Disaster-Classification-Capsule-Routing/blob/master/Classification/model/layers/capsule_net.py":
What is the meaning of  "D, n_in, n_out, in_dim, out_dim, depth_encoding"?
class capsule_fusion(nn.Module):     def __init__(self, D, n_in, n_out, in_dim, out_dim, depth_encoding=False):

D is the model (hidden state embedding) dimension
n_in is the number of input capsules (it is expected n_in is 1 for variable capsules, or equal to the capsule size in the incoming input shape. The input is expected to be of batch x num_capsules x D shape. num_capsules == n_in if n_in !=1. You can also set n_in as 1 if there is only one capsule )
n_out is the number of output capsules
in_dim is the dimensions for input capsules .
out_dim is the dimensions for output capsules
depth_encoding is usually for layer fusion --- essentially it adds a special "depth embedding" (different embedding for different layers, to give some extra signal of which depth of layer it is).

Thanks for your quick and detailed reply : )


Help: sync /tf topic to another machine cause BufferCore::getLatestCommonTime get wrong time?

Hello, all:
I use multimaster to sync some topics and nodes for two machines, but I found if I sync /tf topic from A to B machine , then the program on A will get wrong time from BufferCore::getLatestCommonTime.
I don't know how it happens, anyone have idea?
Thanks.

Hi,
did you synchronize time between machines A and B?
http://wiki.ros.org/ROS/NetworkSetup#Timing_issues.2C_TF_complaining_about_extrapolation_into_the_future.3F

@atiderko  No, I will try this. But I don't know why /tf topic synced to B machine could cause a problem like this? Does it get some time information from B when register?

Does the multimaster sync node will modify the timestamp of local ros master ?

master_sync does not modify any timestamps or other data or behaviour of ROS communication.
If you synchronize /tf (and also other topics) the sender stay the same and publish tf messages from different hosts. The receiver of /tf get messages with different timestamps.
I do not know if it will cause the BufferCore :: getLatestCommonTime error. It is just a guess!

It seems that two rosnodes A and B are synced to another machine, A publish to /tf topic and B subscribe to /tf topic , so another data connection created on the remote machine?
When  I sync only needed topics, instead of the whole nodes, the problem is gone.


Adding test cases for the new model and operation

Adding test cases for the new model and operation.
Updating test-resource file and variable names

/azp run python - translation - tests

/azp run python - translation - tests

API change check
API changes are not detected in this pull request.

/azp run python - translation - tests

/azp run python - translation - tests

/azp run python - translation - tests

/check-enforcer override


help: extract commits between colon

We use a commits as: label(optional namespace):body structure.
Atm i use a default config that not recognize it and emit as uncategorised
Can you help with pattern matching for this case?
Also will be good if optioanl namespace was present in change too.
As fact i expect a result:
Fixes:
     - (Optional) body
     -  body

// also URL not emit a commit url which was expected
config:

{
    "categories": [
      {
        "title": "## 🚀 Features",
        "labels": ["feature", "feat", "FEAT", "new"]
      },
      {
        "title": "## 🐛 Fixes",
        "labels": ["fix", "FIX"]
      },
      {
        "title": "## 🧪 Tests",
        "labels": ["test"]
      },
      {
        "title": "## 🧪 Tests and some Magic",
        "labels": ["test", "magic"],
        "exclude_labels": ["no-magic"]
      },
	  {
		"title": "## 🔨 Improvements",
		"labels": ["improvements", "enhancement", "impr"]
	  }
    ],
    "ignore_labels": [
      "ignore", "other"
    ],
    "sort": {
      "order": "ASC",
      "on_property": "mergedAt"
    },
    "template": "# Changes since: ${{FROM_TAG_DATE}} to ${{TO_TAG_DATE}}\n\n${{CHANGELOG}}\n\n\nUncategorized\n\n${{UNCATEGORIZED}}\n",
    "pr_template": "- ${{TITLE}}\n   - URL: ${{URL}}"
}

Follwo #965

URL is missing for commitBased mode as that would normally point to the PR url.

I will have a look to fill it with the commit url instead.

@mikepenz  i still not fully undestand what is going,
i try to use a pattern:  https://regex101.com/r/vPYrcr/1
Config:
{
    "categories": [
      {
        "title": "## 🚀 Features",
        "labels": ["feature", "feat", "FEAT", "new"]
      },
      {
        "title": "## 🐛 Fixes",
        "labels": ["fix", "FIX"]
      },
      {
        "title": "## 🧪 Tests",
        "labels": ["test"]
      },
      {
        "title": "## 🧪 Tests and some Magic",
        "labels": ["test", "magic"],
        "exclude_labels": ["no-magic"]
      },
	  {
		"title": "## 🔨 Improvements",
		"labels": ["improvements", "enhancement", "impr"]
	  }
    ],
	"label_extractor": [
		{
		  "pattern": "^(\\w+)\\s*(\\(\\s*.+\\s*\\))?\\s*:\\s*(.+)",
		  "target": "$1",
		  "flags": "gu"
		}
	],
	"transformers": [
		{
			"pattern": "^(\\w+)\\s*(\\(\\s*.+\\s*\\))?\\s*:\\s*(.+)",
			"target": "- $2$3",
			"flags": "gu"
		}
	  ],
    "ignore_labels": [
      "ignore", "other"
    ],
    "sort": {
      "order": "ASC",
      "on_property": "mergedAt"
    },
    "template": "\n# Changes since ${{FROM_TAG}} to ${{TO_TAG}}\n\n${{CHANGELOG}}\n\n\nUncategorized\n\n${{UNCATEGORIZED}}\n",
    "pr_template": "- ${{TITLE}}\n      ${{BODY}}"
}

But on multiline commits it generate invalid result because lable extractor not works as should
Uncategorized
fix(ui): Remove phantom intersection bug. fix(ui): Remove phantom intersection bug.
Not should invert point to layer space when it not intersects plane in valid place

fix: sort bug with player and keyboard panel fix: sort bug with player and keyboard panel
keyboard and player had a same positions, this produce interference, we can's valid sort equal positions

ci: emit body of commit also to changelog ci: emit body of commit also to changelog
v0.0.12-10 v0.0.12-10

for single line comments without body all is ok.

@eXponenta

Commits message is FULL message, that include a title and body

I had a look at this, and it is how the information is retrieved from the API. It is worth to highlight that a lot of the functionality is not available in commitMode as commits lack a lot of the details PRs offer.
The message from the API is offered including the summary - doing some striping of that will most likely corrupt a lot of usecases as in a lot of cases the whole content of a commit message (including the first line) is meant to be one.

You should be able to achieve your extraction though, given that you have the option to do the extraction on specific properties only.
Is this project open source? can I look at the configuration which you did for the above described case?

If you don't want it to be duplicated, you can use only the BODY in the template. (no need to use the TITLE)

Not so open source yet, we want share source after release in January.
Atm we use a this config:
{
    "categories": [
      {
        "title": "## 🚀 Features",
        "labels": ["feature", "feat", "FEAT", "new"]
      },
      {
        "title": "## 🐛 Fixes",
        "labels": ["fix", "FIX"]
      },
      {
        "title": "## 🧪 Tests",
        "labels": ["test"]
      },
      {
        "title": "## 🧪 Tests and some Magic",
        "labels": ["test", "magic"],
        "exclude_labels": ["no-magic"]
      },
      {
        "title": "## 🔨 Improvements",
        "labels": ["improvements", "enhancement", "impr"]
      },
      {
        "title": "## 🛠 Workflow",
        "labels": ["ci", "cd", "workflow", "action"]
      }
    ],
    "label_extractor": [
        {
          "pattern": "^(\\w+)\\s*(\\(\\s*.+\\s*\\))?\\s*:\\s*(.+)",
          "target": "$1",
          "flags": "gu",
          "on_property": ["title"],
          "method": "replace"
        }
    ],
    "transformers": [
        {
            "pattern": "^(\\w+)\\s*(\\(\\s*.+\\s*\\))?\\s*:\\s*(.+)",
            "target": "- $2$3\n",
            "flags": "gu",
            "method": "replace"
        },
		{
            "pattern": "\\n",
            "target": "\n   ",
            "flags": "gu",
            "method": "replace"
        }
      ],
    "ignore_labels": [
      "ignore", "other"
    ],
    "sort": {
      "order": "ASC",
      "on_property": "mergedAt"
    },
    "template": "\n# Changes since ${{FROM_TAG}} to ${{TO_TAG}}\n\n${{CHANGELOG}}\n\n\nUncategorized\n\n${{UNCATEGORIZED}}\n",
    "pr_template": "${{BODY}}"
}

Do you have an update on this topic?
Either a sample repo to reproduce, or this project being possibly open sourced?
Please report back to re-open.


Allow files over a certain size to be excluded

Use RipGrep's --max-filesize feature, allow maximum file size to be specified.

Done in https://github.com/kcowolf/rg-gui/commit/61b3f4cbdd456738403896903d0a95c2010247b1


Add a branding logo to center of AppBar in mobile screen.

The web frontend has a responsive UI BUT it need to add a branding logo (now a FlutterLogo widget) to the center of AppBar, see the following image.

This change has the following effect:

HomeView
BrandView

Hi, I'm not able to navigate to Home Page

Hi, I'm not able to navigate to Home Page

Start a backend server
Add test user

more detail in README


Fixed and added links

@phraenquex @tdudgeon @ConorFWild @Waztom please approve these user guide changes

@mwinokan having approved the PR I now realise the change is all wrong (though it should work for now at least).
Links within the repo should be relative links, not absolute ones.
All http...//... refs should be replaced with relative ones (either from / (root of the repo ) or a relative path from the current file (e.g using ../)

I spoke to @mwinokan today about updating the documentation and examples, and with time in mind for Purple release and limiting first time uploader's frustrations, we should review if this should be left to @tdudgeon and @ConorFWild to complete/catch the code subtleties (as above).


Fix service inconsistencies in enterprise classes

Had to fix a few of the spec tests for this. Also found a typo on one of them, referred to the sensu-enterprise-dashboard as puppet-enterprise-dashboard.

@cwjohnston can you review this? You're the most familiar with the enterprise stuff, I think


Extract CommandBox as a separate UI component

Currently, it is part of the Panel. That makes sense in HubTurbo, but not in this app.

Also, make it full width, similar to status bar


Error with get_device_attributes when the token contains a /

Hi community,
I have multiple devices, one of which has a "/" in its credentials token. I am currently working on an Ansible integration of the ThingsBoard API to generate a dynamic inventory based on the devices contained in TB. The issue is that when I want to retrieve the attributes of my devices, I have a device that has a "/" in its token (retrieved via "device_token = rest_client.get_device_credentials_by_device_id(device_id=device.id).credentials_id"), and this causes the call for attributes ("device_attributes = rest_client.get_device_attributes(device_token=device_token, client_keys="", shared_keys="")") to fail and return a 404 error.
I have tried encoding the token beforehand (e.g. "totototo123456/14==" => "totototo123456%2F14%3D%3D"), but it is not enough because the API cannot decode my token.
from ansible.plugins.action import ActionBase
from ansible.errors import AnsibleError
from tb_rest_client.rest_client_pe import *
from tb_rest_client.rest import ApiException

DOCUMENTATION = r'''
---
module: tb_getDeviceAttributes

short_description: Retrieves the list of devices

version_added: "1.0.0"

description:
    - Retrieves the list of devices with a specific device type
author:
    - Sam Ronvaux
options:
  device_asset:
    description:
    - Asset of device
    type: str
    required: yes
  username:
    description:
    - Username use to access to API
    type: str
    required: yes
  password:
    description:
    - Password use to access to API
    type: str
    required: yes
  url:
    description:
    - URL of the ThingsBoard Instance
    type: str
    required: yes
'''

class ActionModule(ActionBase):
    def run(self, tmp=None, task_vars=None):
        super(ActionModule, self).run(tmp, task_vars)

        if task_vars is None:
          task_vars = {}

        if self._task.args.get('device_asset') is None:
          raise AnsibleError('device_asset is required')

        if self._task.args.get('username') is None:
          raise AnsibleError('username is required')

        if self._task.args.get('password') is None:
          raise AnsibleError('password is required')

        if self._task.args.get('url') is None:
          raise AnsibleError('URL is required')

        with RestClientPE(base_url=self._task.args.get('url')) as rest_client:
          try:
            # Auth with credentials
            rest_client.login(username=self._task.args.get('username'), password=self._task.args.get('password'))

            # Get device by device name
            device = rest_client.get_tenant_device(device_name=self._task.args.get('device_asset'))
            # Get device credentials by device_id
            device_token = rest_client.get_device_credentials_by_device_id(device_id=device.id).credentials_id
            print(f"Device Token: {device_token}")
            # Get attributes
            device_attributes = rest_client.get_device_attributes(device_token=device_token, client_keys="", shared_keys="")
          except ApiException as e:
            raise AnsibleError(e)
          return {'device_attributes': device_attributes}

Hi @Syr4Z, thanks for your interest in ThingsBoard Python REST Client!
Unfortunately, you can't use / in the device token.
If you try to execute this request in Swagger, you will get the same error.


Languages support

Does ocrs support languages other than English?

It can handle other Latin languages to some extent (ie. those that use the same alphabet), but most of the training data is English. Support for other scripts / languages is planned for the future. See https://github.com/robertknight/ocrs/issues/14.


drivers: flash: Refactor drivers to use shared init priority

Refactors all of the on-chip flash drivers to use a shared driver class
initialization priority configuration, CONFIG_FLASH_INIT_PRIORITY, to
allow configuring flash drivers separately from other devices. This is
similar to other driver classes like I2C and SPI.
The default is set to CONFIG_KERNEL_INIT_PRIORITY_DEVICE to preserve the
existing default initialization priority for most drivers.
Driver-specific options for SPI-based flash drivers are left intact
because they need to be initialized at a different priority than on-chip
flash drivers.
Signed-off-by: Maureen Helm<EMAIL_ADDRESS>

This new Kconfig property is dedicated to some drivers (SoC/SoP embedded HW flash controllers mainly). I would reflect that in the name and the help message.

This should be the default property whenever possible, not necessarily only for on-chip flash drivers.

This new Kconfig property is dedicated to some drivers (SoC/SoP embedded HW flash controllers mainly). I would reflect that in the name and the help message.

This should be the default property whenever possible, not necessarily only for on-chip flash drivers.

at45, spi_nor and nordic_qspi_nor have their own priorities (equal 80 by default). I assume reason for that is that these drivers requires initialization of lower drivers before their own initialization happen.
So maybe you can add sentence to the kconfig help for: This initialization priority is used unless the driver implementation doesn't have its own initialization priority


Amazon Linux requires specific service startup parameters

While puppet thinks that the service uses sysv (init.d), logstasth's rpm actually installs the upstart file, so it will never start...
The change is a simple one, so i'm testing it now and putting in a PR in the near feature.

PR Set #366


lvm: performance tweaks (e.g. loop device cache)

Loop-backed LVM storage pools are currently rather slow. This is obviously mostly caused by how LVM itself works but we can do stuff to improve the situation. An obvious candidate is loop-device lookup. In order for LVM loop-backed pools to work we must ensure that the image file is associated with a loop-device that doesn't have the LO_FLAGS_AUTOCLEAR flag set otherwise we will run into problems since we don't mount LVM storage pools. So what we currently do is to use find_associated_loop_device() in lxd/storage_cgo.go on each {mount,umount} call for any {mount,umount}able LXD entity to ensure that the pool is fine. We currently look at /sys/block to not have to parse all of /dev itself. This is already an improvement but still the costs will linearly increase with the amount of block devices available on the system. So we should make sure that we do that lookup only when we really need to. One way is to cache the name of the loop device that we detected before. When another request is issued that would cause a call to find_associated_loop_device() we first check if that loop device still has the requested image file as backing file and only if it doesn't do we look at other loop devices.

https://github.com/lxc/lxd/pull/2993 tries to ensure that StoragePoolCheck() which calls find_associated_loop_device() is only called once during the pool initialization functions. That should decrease unnecessary work by quite a lot.

https://github.com/lxc/lxd/pull/2993 tries to implement loop-device caching.


get-esm-packages not listing any packages

when running
npx rmx-cli get-esm-packages "@visx/scale"

It doesn't give me the list of esm packages, even though it depends on d3, which is famously a causing problem esm package.

Fixed in v0.3.5

That's not currently supported. You still need to supply the initial ESM package. It finds all the ESM dependencies of that package.
Perhaps I'll update it to scan all the packages in your project's package.json.

That's not currently supported. You still need to supply the initial ESM package. It finds all the ESM dependencies of that package.
Perhaps I'll update it to scan all the packages in your project's package.json.

We have a hand-built solution right now that checks all packages in the project's package.json right now. We use that output to create a json file that we then use the remix.config.js, like so:
const esmPackages = require("./esm-packages.json")

/** @type {import('@remix-run/dev').AppConfig} */
module.exports = {
  serverDependenciesToBundle: [
    ...esmPackages
  ],
  serverBuildTarget: "vercel",
  // When running locally in development mode, we use the built in remix
  // server. This does not understand the vercel lambda module format,
  // so we default back to the standard build output.
  server: process.env.NODE_ENV === "development" ? undefined : "./server.js",
  sourceMap: process.env.NODE_ENV === "development",
  ignoredRouteFiles: [".*"]
  // appDirectory: "app",
  // assetsBuildDirectory: "public/build",
  // serverBuildPath: "api/index.js",
  // publicPath: "/build/",
};

Would be neat to see this handy utility do that and optionally spit out a json file or something.


Update Event.php

Sometime it may come multiple messages in one bucket. This fix processing all messages in $data

I see the problem, is it possible to add a test for this behavior ?

Closed in favor of #125


Adding NET 4.8 WinForms Accessibility changes compatibility document.

Adding winforms-accessibility-changes-48.md document which contains the description of accessibility changes introduced in .NET 4.8:

DataGridView control Accessibility changes;
Improvements for screen readers (Narrator);
CheckedListBox control Accessibility changes;
ComboBox control Accessibility changes;
LinkLabel control Accessibility changes;
ProgressBar control Accessibility changes;
PropertyGrid control Accessibility changes;
Tool Strip control Accessibility changes;
Visual cues improvements;

Note: the document is not final version and should be updated with the changes related to Keyboard ToolTip, High contrast changes and other accessibility improvements introduced by WinForms team for .NET 4.8.
//cc @PriyaPurkayastha

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

Need to confirm that the following should (or should not) be added (not sure that these are in the email list but have 4.8 target):
Bug 544592: [Accessibility][Keyboard Navigation - BizTalk Server - Application - Send Port Gorups] Navigation is not cosistent when navigating in forward and backward direction on general window of Send port groups properties.
Change description: Improved ToolStrip keyboard navigation, made the ToolStrip forward and backward navigation consistent.

Need to confirm that the following should (or should not) be added (not sure that these are in the email list but have 4.8 target):

Bug 544471: [Accessibility] DataGridView is reporting cells as always editable via Narrator.
Change description: made announcement for read-only DataGridView TextBox cell consistent: Narrator announces the cell as read-only.

Need to confirm that the following should (or should not) be added (not sure that these are in the email list but have 4.8 target):

Bug 549288: Accessibility: WinForms ListView and DataGridView do not expose the current sort order through UIA.
Change description: The accessibility of DataGridView and ListView has been improved to make sort direction available via UIA: added exposing sort order and sort column via ItemStatus property and column name.

Need to confirm that the following should (or should not) be added (not sure that these are in the email list but have 4.8 target):

Bug 599936: Accessibility:[Narrator]Narrator cannot annouce the ReadOnly Status for DataGridView TextBox column with setting Readonly as true.
Change description: The announcement of DataGridView Read-only TextBox cells is made accessible and clear: editable TextBoxes are announced as 'editable' and read-only TextBoxes are announced as 'read-only'.

Need to confirm that the following should (or should not) be added (not sure that these are in the email list but have 4.8 target):

Bug 508369: Accessibility: [Narrator] Narrator is not announcing the updated value of ComboBox in PropertyGrid.
Change description: Added screen reader announcement for PropertyGrid's ComboBox value changes. Added ComboBox's text field update in response of ComboBox selection changes.

Need to confirm that the following should (or should not) be added (not sure that these are in the email list but have 4.8 target):

Bug 615721: [Accessibility] The Invoke Pattern for DataGridViewCell: Image is not available.
Change description: Added support of Accessibility Invoke pattern to DataGridView Image cell with ability to invoke cell's default action. (in case Image cell is actually an image of a button)

Need to confirm that the following should (or should not) be added (not sure that these are in the email list but have 4.8 target):

Bug 574309: Accessibility: MAS40B: Inspect: Expand/Collapse pattern property is FALSE for 'Type' & ‘Scope’ comboBoxes in 'Project properties node-->Settings page'.
Change description: Made the DataGridView's Combobox expand/collapse state accessible for the customers which use assistive technologies.

Need to confirm that the following should (or should not) be added (not sure that these are in the email list but have 4.8 target):

Bug 564762: [Accessibility] The blue rectangle of selected ListView item should be keeping after tab or mouse to other control.
Change description: Improved ListView accessibility by enabling showing grey rectangle around the selected ListView item when parent ListView is out if focus.

Is this ready to merge, @M-Lipin?

Is this ready to merge, @M-Lipin?

Hello @rpetrusha, I'll ask WinForms team for additional review, but basically it seems to me that this can be merged. Just need final confirmation.

OK. Thanks, @M-Lipin. Let me know when it can be merged.


Mole in a Hole Game

@keshavgbpecdelhi I have created a Mole in a Hole Game. Please accept my PR.

Interesting @Gurmeet-Singh657 🔥


Improve documentation and fix compile error

improve md documentation
fix compile error

can you approve the review so that the merging can be performed automatically


User-Agent headers added to each request

Related to T-135809
To provide information about our API usage we should add User-Agent headers to requests to identify requests from Go-Fivetran and Terraform.
Client.UserAgent method allows to set-up custom User-Agent header - this method will be used by terraform provider.
By default header will be: "User-Agent":"Go-Fivetran/"
changes tested on local environment via examples.

Wouldn't be easier just changing func httpRequest?
https://github.com/fivetran/go-fivetran/blob/main/http_request.go#L19
Missing CHANGELOG

We should pass user-agent value from client somehow to http_request. I think http_request function dont know anything about client, or any other specifics - it's just make http requests.
Will add the changelog

Wouldn't be easier just changing func httpRequest?
https://github.com/fivetran/go-fivetran/blob/main/http_request.go#L19
Missing CHANGELOG

We should pass user-agent value from client somehow to http_request. I think http_request function doesn't know anything about client, or any other specifics - it's just make http requests.
Will add the changelog

Also, how terraform-provider-fivetran will pass user-agent data to go-fivetran? IMO it would be good to have a way to receive custom user-agent data and append that custom value to defaultUserAgent (or something like defaultUserAgent + customUserAgent).

Wouldn't be easier just changing func httpRequest?
https://github.com/fivetran/go-fivetran/blob/main/http_request.go#L19
Missing CHANGELOG

We should pass user-agent value from client somehow to http_request. I think http_request function doesn't know anything about client, or any other specifics - it's just make http requests.
Will add the changelog

Also, how terraform-provider-fivetran will pass user-agent data to go-fivetran? IMO it would be good to have a way to receive custom user-agent data and append that custom value to defaultUserAgent (or something like defaultUserAgent + customUserAgent).

For this purpose - UserAgent method defined at client. When creating client in terraform-provider - you can call client.UserAgent(Go-Fivetran/ terraform-provider) for example.

Wouldn't be easier just changing func httpRequest?
https://github.com/fivetran/go-fivetran/blob/main/http_request.go#L19
Missing CHANGELOG

We should pass user-agent value from client somehow to http_request. I think http_request function doesn't know anything about client, or any other specifics - it's just make http requests.
Will add the changelog

Also, how terraform-provider-fivetran will pass user-agent data to go-fivetran? IMO it would be good to have a way to receive custom user-agent data and append that custom value to defaultUserAgent (or something like defaultUserAgent + customUserAgent).

For this purpose - UserAgent method defined at client. When creating client in terraform-provider - you can call client.UserAgent(Go-Fivetran/ terraform-provider) for example.

You can just override the userAgent field value with UserAgent method. I haven't modified TF-provider (we can make it only after release of go-fivetran)

Wouldn't be easier just changing func httpRequest?
https://github.com/fivetran/go-fivetran/blob/main/http_request.go#L19
Missing CHANGELOG

We should pass user-agent value from client somehow to http_request. I think http_request function doesn't know anything about client, or any other specifics - it's just make http requests.
Will add the changelog

Also, how terraform-provider-fivetran will pass user-agent data to go-fivetran? IMO it would be good to have a way to receive custom user-agent data and append that custom value to defaultUserAgent (or something like defaultUserAgent + customUserAgent).

For this purpose - UserAgent method defined at client. When creating client in terraform-provider - you can call client.UserAgent(Go-Fivetran/ terraform-provider) for example.

You can just override the userAgent field value with UserAgent method. I haven't modified TF-provider (we can make it only after release of go-fivetran)

I see. So, what about changing "User-Agent":    c.userAgent,:
func (c *Client) commonHeaders() map[string]string {
	return map[string]string{
		"Authorization": c.authorization,
		"User-Agent":    c.userAgent,
	}
}

to something like "User-Agent":    defaultUserAgent + ";" + c.userAgent,? Of course with some extra logic to only add a ; if there's a c.UserAgent. WDYT?
Also, I suggest changing c.userAgent to c.customUserAgent; so then we have defaultUserAgent and customUserAgent.


Greenkeeper/aws sdk 2.476.0

Coverage remained the same at 100.0% when pulling 19cb0addf5cdf19a855a783f964965306578a2b9 on greenkeeper/aws-sdk-2.476.0 into 290b7897b16895d20fb6367d5f7f1cfc3d5bc274 on master.


[all] Update Eigen and extend CUDA support

Fixes compilation problems with CUDA 11.3 and later.
See libeigen/eigen!586 for more details.

This PR is for testing and for helping anybody that runs into issues with CUDA 11.3 or 11.4.
However, I would rather wait for the changes to be merged upstream (or at least in CMS) instead of pointing to my branch.

The same changes have been picked up by the CMS externals, so it should be safe to merge this.
I've update the Makefile to use the CMS branch instead of mine.


Introduction to Identity - inconsistent logout

Issue description
Log out scaffolding states:

SignOutAsync clears the user's claims stored in a cookie. Don't redirect after calling SignOutAsync or the user will not be signed out.

Software versions
Check the .NET target framework(s) being used, and include the version number(s).

[x] .NET Core
[ ] .NET Framework
[ ] .NET Standard

Details
Log out scaffolding recommendation on  Identity docs contradicts current Identity code bellow:
        public override async Task<IActionResult> OnPost(string returnUrl = null)
        {
            await _signInManager.SignOutAsync();
            _logger.LogInformation("User logged out.");
            if (returnUrl != null)
            {
                return LocalRedirect(returnUrl);
            }
            else
            {
                // This needs to be a redirect so that the browser performs a new
                // request and the identity for the user gets updated.
                return RedirectToPage();
            }
        }

After scaffolding the Logout page, if returnUrl is null, the result of using Page() instead of RedirectToPage() is that username and Logout button are still visible after logout is made.

Would you mind opening this issues with the "content feedback" button at the bottom of the problem page? It helps us keep track of issues related to docs and gets the attention of the doc owners.

MOved to #10169


.NET Core 2.1 cannot detect many nuget packages anymore after the latest windows 10 update

Describe the bug
After the latest windows 10 automatic update from a few days ago (Version 1083 ( OS Build 17134.706)), my perfectly working asp.net core 2.1 application started throwing errors. It doesn't detect packages like Pomelo Entity Framework Core, Ncrontab etc. After upgrading to .Net Core 2.2 and choosing the framework as .net core 2.2 in the build, the problems went away but still thought I would let you know.
To Reproduce
Try using Pomelo entity framework core or ncrontab in the windows version  (Version 1083 ( OS Build 17134.706)) with .net core 2.1 selected.

Runtime errors? Do you have the exception message?

hi @davidfowl,
Actually it doesn't detect the packages as installed(not sure what this phenomenon is called ;) ). Visual studio doesn't detect usings for those extensions and gives red squigglies.
Here's an example of an error I get when i do dotnet run
Startup.cs(78,29): error CS1061: 'DbContextOptionsBuilder' does not contain a definition for 'UseMySql' and no accessible extension method 'UseMySql' accepting a first argument of type 'DbContextOptionsBuilder' could be found (are you missing a using directive or an assembly reference?)
This error is related to https://www.nuget.org/packages/Pomelo.EntityFrameworkCore.MySql/2.2.0
Also, it doesn't detect Ncrontab (https://www.nuget.org/packages/ncrontab/) either. So maybe some stuff that those packages are not supported with the latest windows update? Visual studio is not showing any squigglies for some other packages though like Bouncy Castle, Newtonsoft Json etc.

Sounds unrelated to windows. That’s a build error, not a runtime one. Are there errors in the error window in visual studio? When you run restore do you see error or failures?

@davidfowl nope, no errors on restore. Since I couldn't even build it, no runtime errors either. Here is a sample project I just created, installing just the Pomelo package which was working fine before the Windows update. Now Visual studio doesn't recognize it.(works ok, if i use netcore2.2 and update the package)
WebApplication1.zip

@jjmew @davkean - this seems like a project system or Roslyn issue.  Can you take a look?

@jjmew @davkean - this seems like a project system or Roslyn issue. Can you take a look?

I am following up with my team

This is not a project-system or Roslyn issue; there's no UseMySql extension method anywhere in scope for the above project. The closest one I found was in the MySql.Data.EntityFrameworkCore package under Microsoft.EntityFrameworkCore.MySQLDbContextOptionsExtensions.UseMySQL (notice the casing is different) which is not anywhere in the package graph.
I'll leave it to the EF folks/ASP.NET/Pomelo.EntityFrameworkCore.MySql folks to answer what the difference is between your existing project and the one above.

@ajcvickers - is this part of the removal of EFCore from the shared framework?

@Pilchie I don't think so, but I will take a look at the repro tomorrow to see if I can see what is going on.

@precogtyrant The package Microsoft.EntityFrameworkCore.Tools.DotNet is obsolete and should be removed. In general you need to be using a consistent set of EF packages, so if there is a 2.0 EF package being used in a 2.1 application, then this is usually an error.

Just a quick update here -
The issue resurfaced with netcoreapp2.2 as well. Someone suggested clearing the nuget cache and after doing that and running dotnet restore it started working again.
Sorry for the trouble, however, this issue is something that a lot of people seem to be facing.


Support more input types

SparseConnectivityTracer currently only works with scalar and array inputs.
Returning the sparsity pattern of a Jacobian requires enumerating index sets for the inputs and outputs. Since this can be done for arbitrarily nested tuples and arrays, we should be able to support them.
The same holds for Hessians, which only require the creation of an index set for the inputs.

Support for inputs from SparseArrays.jl has come up in #131.

Closing in favor of more specific issues like #145 and #147.


[Feature Request] Add option to disable TLS verification of host name

When connecting to endpoints protected with TLS via an IP having an option to disable TLS verification of hostname is very helpful.
SSL certificates do not support wildcards or CIDR for the IP field in the Subject Alternative Name which causes the TLS verification step to fail when connecting to Docker remotes via IP address.
The changes proposed here are the following:

Add an extra command line flag --tls to enable TLS and use the current --tlsverify flag to toggle the TLS verification on and off. Making --tlsverify imply --tls would make this change backward compatible for everyone using --tlsverify today.
Add an extra field tlsverify of boolean type to the external endpoint spec to toggle TLS verification.

The first change would also have the advantage to bring the Portainer CLI in line with Docker's which has --tls and --tlsverify flags.

I'm not sure what is the issue here? I've been able to connect to remote hosts protected via TLS by using the IP address of the node. Could you spare more details here?

I imagine that you had to specify the IP address of the node when you created the SSL certificates. I didn't and when I try to connect to a node with TLS via IP I get an error like: cannot validate certificate for ... because it doesn't contain any IP SANs.
Unfortunately my nodes are dynamic, they come and go all the time, and their IP address is not fixed which prevents me from creating certificates with IP in the Subject Alternative Name.

Exactly, but what's the point of having TLS enabled without the TLS verification?

It allows you to use a TLS connection without verifying the hostname in the process. A valid key and certificate is still required to connect to the server and the data is encrypted, but in the case of a non-static IP or a docker host behind load balancers, having the flag would be greatly appreciated.

Yeah the certificate provided to your docker engine has a list of SAN
Portainer have to join it with one of this names
If this option is impemented, portainer have to set InsecureSkipVerify to true when proxying to docker endpoints :
Ex:
tr := &http.Transport{
  TLSClientConfig: &tls.Config{InsecureSkipVerify: true},
}

Yeah setting the InsecureSkipVerify is exactly the reason I was asking for the command line flag.
@kennyko outlined the reasons for allowing a TLS communication without verifying the host. Yes it would expose you to man-in-the-middle attacks but it still means all communication is encrypted and all client are required the key to communicate with docker.

@kennyko @dedalusj OK, thanks for the details explanation. I agree with it but I'd like to add that disabling hostname verification should be specified as dangerous in the usage docs for the flag.
Anyone of you would be keen on working on a PR for this?

I would love for PR #945 to land soon, if that's what it takes to be able to conditionally disable tls verification. we're blocked by this one.

@gshively11 I'll try to work on #954 ASAP

@deviantony yea i'll try to get to it in the next day or two, thanks!

Having to put out some fires, probably won't get to this until next week sometime, sorry

@gshively11 Ok, I'll ping the other people in the discussion as well.
@dedalusj @kennyko @lioolli mind giving a try to portainer/portainer:pr1173 ?

ping @gshively11
Any update on this?

@deviantony I should be able to get to this later today or tomorrow.

Is there anywhere to grab a release artifact for that PR?  We don't use the portainer images directly, we download the release artifact from github and set it up in our own image. I want to explain why we're doing that, but I don't recall off the top of my head :)

@gshively11 Let me build one for you, I'll ping you here when it's available.

@gshively11
Can you try https://github.com/portainer/portainer/releases/download/1.14.0/portainer-pr1173-linux-amd64.tar.gz ?

I'm getting invalid credentials when I try to login with the pr1173 build.  Using --admin-password.  Confirmed it works as expected with the 1.14.0 release.

Could you try without this option? I'll try to reproduce that bug
On mar. 12 sept. 2017 à 19:57 Grant Shively<EMAIL_ADDRESS>wrote:

I'm getting invalid credentials when I try to login with the pr1173 build.
Using --admin-password. Confirmed it works as expected with the 1.14.0
release.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/portainer/portainer/issues/786#issuecomment-328932896,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AFOyBQHEvwTs-zIfgPVZwSOHgK2jmAokks5shsX6gaJpZM4M38b0
.

--
Anthony Lapenna
https://deviantony.github.io

{
     "Name": "manager-1",
     "URL": "tcp://scrubbed:2376",
     "TLS": true,
     "TLSSkipVerify": true,
     "TLSCACert": "scrubbed",
     "TLSCert": "scrubbed",
     "TLSKey": "scrubbed"
   }

Still getting this in logs (and UI throws errors)
2017/09/12 20:56:25 http: proxy error: x509: cannot validate certificate for <IP_ADDRESS> because it doesn't contain any IP SANs

Is that endpoint config correct for skipping TLS verification, or am I doing something wrong?

@gshively11 are you using the --external-endpoints flag?

@deviantony yes i am, and I'l try to narrow down what might be causing the --admin-password issue on my side

Oh ok, the changes in that implementation did not impact the --external-endpoints feature. I'll add that and release a new artifact for you. I'll ping you here when it's available for testing.

@gshively11 could you give a try to https://github.com/portainer/portainer/releases/download/1.14.0/portainer-pr1173-linux-amd64.tar.gz ?

@deviantony Looks like it works!  Also, the admin password issue, that was my bad.  The help text on the input says admin, and it's just dark enough on my screen to look like the text defaulted to admin (which it seems to do on the release image? that could just be browser autocomplete though).  Might want to make the help text styling lighter to avoid future confusion.  Thanks for getting this change moving!

@gshively11 Perfect ! Thanks for your feedback, I'll merge it.


Package tests (as run by make test-sqlite) do not clean up after themselves

Description
The package tests are not correctly cleaning up after running leading to incorrect reports of errors if make test-sqlite is run again.
--- FAIL: TestPackagePub (0.15s)
    testlogger.go:78: 2022/09/01 17:50:40 ...eb/routing/logger.go:99:func1() [I] [6310e2e0-36] router: completed GET /user/settings/applications for , 200 OK in 1.8ms @ setting/applications.go:24(setting.Applications)
    testlogger.go:78: 2022/09/01 17:50:40 ...eb/routing/logger.go:99:func1() [I] [6310e2e0-37] router: completed POST /user/settings/applications for , 303 See Other in 18.9ms @ setting/applications.go:34(setting.ApplicationsPost)
    testlogger.go:78: 2022/09/01 17:50:40 ...eb/routing/logger.go:99:func1() [I] [6310e2e0-38] router: completed GET /user/settings/applications for , 200 OK in 1.9ms @ setting/applications.go:24(setting.Applications)
    --- FAIL: TestPackagePub/Upload (0.06s)
        testlogger.go:78: 2022/09/01 17:50:40 ...eb/routing/logger.go:99:func1() [I] [6310e2e0-39] router: completed GET /api/packages/user2/pub/api/packages/versions/new for , 401 Unauthorized in 0.2ms @ packages/api.go:34(packages.reqPackageAccess)
        testlogger.go:78: 2022/09/01 17:50:40 ...eb/routing/logger.go:99:func1() [I] [6310e2e0-40] router: completed GET /api/packages/user2/pub/api/packages/versions/new for , 200 OK in 16.7ms @ pub/pub.go:147(pub.RequestUpload)
        testlogger.go:78: 2022/09/01 17:50:40 ...packages/packages.go:161:createPackageAndVersion() [E] [6310e2e0-41] Error inserting package: Package version already exists
        testlogger.go:78: 2022/09/01 17:50:40 ...eb/routing/logger.go:99:func1() [I] [6310e2e0-41] router: completed POST http://localhost:3003/api/packages/user2/pub/api/packages/versions/new/upload for , 400 Bad Request in 16.0ms @ pub/pub.go:160(pub.UploadPackageFile)
        api_packages_pub_test.go:92:
            	Error Trace:	/home/andrew/src/go/gitea/integration_test.go:506
            	            				/home/andrew/src/go/gitea/api_packages_pub_test.go:92
            	            				/home/andrew/src/go/gitea/api_packages_pub_test.go:95
            	Error:      	Not equal:
            	            	expected: 204
            	            	actual  : 400
            	Test:       	TestPackagePub/Upload
            	Messages:   	Request: POST http://localhost:3003/api/packages/user2/pub/api/packages/versions/new/upload
        api_packages_pub_test.go:92: Response: {"error":{"code":"Bad Request","message":"Package version already exists"}}

Gitea Version
d74390ee39d84b24e103a049217817e22dc391d4 (if not earlier)
Can you reproduce the bug on the Gitea demo site?
No
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
make test-sqlite
Database
No response

Are the integration tests intended to run multiple times without cleaning the used directory? I use rm -R -f integrations/gitea-integration-sqlite/ && make test-sqlite to run the tests.


Possible channel map discrepancy ASSY-77 H3 probe

Hi there!
I was trying to use the Spike Interface pipeline and noticed that the AASY-77 H3 channel map I got from probeinterface did not quite resemble the channel maps I received for the same probe from Cambridge NeuroTech. Additionally, the electrode channels that we map on to the omnetics pins do not result in any of the maps presented in the wiring.py file. I was just wondering if you guys had an idea of where I might be going wrong, of where these discrepancies may come from? Any help you could give would be greatly appreciated!
Many Thanks
Ross Folkard
Imported H3 channel map from probeinterface:

The bottom channels appear to be  the channel no. from cambridge Neurotech +1, however this stops at channel 63, where it becomes a bit scrambled (no discernible pattern from what I can see), and then seems to resemble the CN map towards the top of the probe.
H3 channel map from Cambridge Neurotech:

Wiring.py device_channel_indices:

Omnetics pins:

Adaptor alignment:

Example Adaptor-to-Amplifier alignment (how we map our adaptor to our intan2164):

Hi @rf13734.
I think this is a known bug
See this https://gin.g-node.org/spikeinterface/probeinterface_library/issues/1
I think the problem is in the probe mapping json file and not the pathway (wiring.py).
I haven't yet merge the PR on gin because I would prefer to regenerate the entire probe collection (maybe some other probe ahev the same bug) with my own script.
I will try to do it soon.
before this could you download manually the json probe file in this PR : https://gin.g-node.org/spikeinterface/probeinterface_library/pulls/2
Then load it manuall with  probe = read_probeinterface('my_probe_file.json') instead of  no probe = get_probe().
Then use the same path way and check that the PR fix your probem.
Also note that the best debegging is this:
plot_probe(probe,
                with_channel_index=False, with_contact_id=True,
                with_device_index=True,

because contact id will be the "1-based" like cambrige neurotec and device index will be the "0-based" channel index in your intan headstage.
i hope iyt helps.
Sorry for this.

Hi @rf13734.
I think this is a known bug
See this https://gin.g-node.org/spikeinterface/probeinterface_library/issues/1

From what I can tell, it would still not match the channel map from Cambridge Neurotech nor the 0-indexed version of this. Would that still be okay?

I think the problem is in the probe mapping json file and not the pathway (wiring.py).
I haven't yet merge the PR on gin because I would prefer to regenerate the entire probe collection (maybe some other probe ahev the same bug) with my own script.
I will try to do it soon.
before this could you download manually the json probe file in this PR : https://gin.g-node.org/spikeinterface/probeinterface_library/pulls/2
Then load it manuall with probe = read_probeinterface('my_probe_file.json') instead of no probe = get_probe().
Then use the same path way and check that the PR fix your probem.
Also note that the best debegging is this:
plot_probe(probe,
                with_channel_index=False, with_contact_id=True,
                with_device_index=True,

because contact id will be the "1-based" like cambrige neurotec and device index will be the "0-based" channel index in your intan headstage.
i hope iyt helps.
Sorry for this.

#55
@Enakcihc have help me to test and validate this. @Enakcihc : could you comment ?
The mapping which is tricky was also validated by @alejoe91 maybe we did it the wrong.
@rf13734 : could make the logic of pathway again blindly (without reading the doc you have and without our solution) just by following the pathway to check ?
Note that pathway logic do not depend on the probe but on connector only.
Here it is a 2 levels pathway and more error prone.
Could you also contact Thal from cambridge neurotec to check if he has a more recent version ?
I know that the doc in cambridge nerotec used to have an error also (and this is why we also have error here for the probe).

#55
@Enakcihc have help me to test and validate this. @Enakcihc : could you comment ?
The mapping which is tricky was also validated by @alejoe91 maybe we did it the wrong.
@rf13734 : could make the logic of pathway again blindly (without reading the doc you have and without our solution) just by following the pathway to check ?
As far as I understand it, one needs to assign the omnetics pin to the correct electrode contact point on the adaptor, so based on the schema adaptor-omnetics schema from CN, one manually assigns the electode to each inxx, e.g. in0 would receive from electrode 48 (If i remember correctly). From then, for kilosort at least, the channel mp depends on how one writes the bin file: for us we go from in0 to in63, so I think our channel map should be in the order of electrodes by ascending inxx, with the corresponding ycoords of these electrodes. Maybe I'm mistaken?

Note that pathway logic do not depend on the probe but on connector only.
Is it the case that e.g. electrode 36 corresponds to contact 36 on the adaptor?

Here it is a 2 levels pathway and more error prone.
Could you also contact Thal from cambridge neurotec to check if he has a more recent version ?
I have already contacted Tahl to see if he can give any pointers.

I know that the doc in cambridge nerotec used to have an error also (and this is why we also have error here for the probe).
I noticed that  the error was fixed by Aaron Wong, but as far as I can tell, it would still result in a channel map that appears to have some 0-indexed channels, and some other 1-indexed channels?

Also, is the probe.device_channel_indices the inxx layout of the omnetics connector, or is it the connected channel map itself? (hope I'm making sense)
Thanks very much for looking into this, sorry for me being confused by many aspects of this pipeline!

Hi Ross,
Indeed as @samuelgarcia mentioned, this is a two-step connection and is a bit complicated. Especially true is that there are two ways to plug in the omnetics connector between the Intan headstage and the adapter. Right now the connection "ASSY-77>Adpt.A64-0m32_2x-sm>RHD2164" matches the orientation we plugged in:  the headstage with the circuit board elements facing the probe side. In the end, we have a channel map that has the deepest electrode mapping to In26 (0-based).
bottom - 26, 24, 22, 19, 21, ... 42, 44, 41, 39, 37 - top
You may want to verify again with the plot_probe function, enabling both the contact id and device index
import spikeinterface
import probeinterface as pi
probeGroup = pi.read_probeinterface('ASSY-77-H3.json')
probe = probeGroup.probes[0]
probe.wiring_to_device('ASSY-77>Adpt.A64-Om32_2x-sm>RHD2164')
plotting.plot_probe(probe, with_contact_id=True, with_device_index=True)

The image should look something like this

id would be the contact point ID according to the CambridgeNeurotech specs. dev would be the index (0-based) on the Intan board.

Channel map given to kilosort2 is like this:
[chanMap',ycoords']

ans =

           1         940
           2         640
           3         920
           4         660
           5         900
           6         680
           7         880
           8         700
           9         860
          10         720
          11         840
          12         740
          13         820
          14         760
          15         800
          16        1160
          17        1060
          18        1140
          19        1080
          20        1120
          21        1260
          22         960
          23        1240
          24        1220
          25        1040
          26        1020
          27        1100
          28         980
          29        1180
          30        1200
          31         780
          32        1000
          33          40
          34         460
          35         240
          36         220
          37          20
          38         140
          39          60
          40          80
          41         260
          42         280
          43           0
          44         300
          45         160
          46         120
          47         180
          48         100
          49         200
          50         480
          51         440
          52         500
          53         420
          54         520
          55         400
          56         540
          57         380
          58         560
          59         360
          60         580
          61         340
          62         600
          63         320
          64         620

which seems to have the same values as yours, but in order.

@rf13734

channel_index :  is only the order in which the conact are listed. It is not really important.
contact_id : is the manufacturer "name" sometimes 1-based. Sometime this corespond to the omnetics by convinience but not
always
device_channel_indices : is the channel at headstage (or more precisely recording device) level. It is always 0-based.

Hi @Enakcihc
Hi Ross,

Indeed as @samuelgarcia mentioned, this is a two-step connection and is a bit complicated. Especially true is that there are two ways to plug in the omnetics connector between the Intan headstage and the adapter. Right now the connection "ASSY-77>Adpt.A64-0m32_2x-sm>RHD2164" matches the orientation we plugged in: the headstage with the circuit board elements facing the probe side. In the end, we have a channel map that has the deepest electrode mapping to In26 (0-based).

Ahh okay, I have in26 = electrode 60 rather than 43 (the deepest electrode on H3 probe).
I have in46 = electrode 15 - I confirmed with Tahl that this is the preferred way to connect, but I guess it doesn't matter as long as the connections are tracked right?

bottom - 26, 24, 22, 19, 21, ... 42, 44, 41, 39, 37 - top
You may want to verify again with the plot_probe function, enabling both the contact id and device index
import spikeinterface
import probeinterface as pi
probeGroup = pi.read_probeinterface('ASSY-77-H3.json')
probe = probeGroup.probes[0]
probe.wiring_to_device('ASSY-77>Adpt.A64-Om32_2x-sm>RHD2164')
plotting.plot_probe(probe, with_contact_id=True, with_device_index=True)

The image should look something like this

id would be the contact point ID (1-based) according to the CambridgeNeurotech specs. dev would be the index (0-based) on the Intan board.

I see that there is a discrepancy with how we have assigned electrodes to intan pins, would I be right in thinking that for you in46 = electrode 31?
Based on the below schemas, I can only match in46 to electrode 15 or 38, and I can only match in26 to electrode 60 or 21, not 43. Have you maybe got a different headstage amplifier from the one below?

I don't follow.
I think "in14" (intan) is plugged on "ometic 15"  no ?

I don't follow.
I think "in14" (intan) is plugged on "ometic 15" no ?

in14 to omnetic 15 Like this?

Hi @samuelgarcia

I don't follow.
I think "in14" (intan) is plugged on "ometic 15" no ?

in14 to omnetic 15 Like this?

@samuelgarcia I have in14 paired with omnetic /electrode 38 instead.

Hi Ross,
We are using the same Intan headstage, but the channel map for the adaptor seems to be different from yours.
We have  the A64-OM32x2-sm Adaptor from NeuroNexus, with the following channel map.

Maybe you are using an adapter from a different manufacturer?
I also thought of it being a combined channel map (adapter + probe) because the numbers on the samtec connector are identical to those of the H3 probe. However, mapping some of the channels out with our map also does not correspond to the numbers you have.
Assuming everything is correct, I would suggest it to be identified as a different kind of connection.


Reinsert goog.provide for enums in olx.js

A partial revert of #5475 to fix #5564. I don't understand why this should be ok for some custom builds and not for others, but the safest is to put these goog.provides back again. I tried removing manage_closure_dependencies but then I get other errors to do with CartoDB source - sigh.

See my https://github.com/openlayers/ol3/issues/5564#issuecomment-230408577 for an explanation why these problems can occur.

Thanks for the quick fix @probins.

don't know whether it's worth cherry-picking this for a bug-fix release?

yeah I'll wait a bit now to see if no new regressions show up, since this is not a critical one I guess (not many people doing custom builds I think).

I tend to agree with @bartvde that this one does not warrant a bug fix release by itself.


ability custom UI for  auto suggestion in search input

Hi @aminabvaal! Could you please elaborate on the issue? Do you want to customize Nebular search component (discussed here).


Add agent semantic conventions

This is a draft that I am opening to start discussion about agent semantic conventions. We will need input from semconv SIG and from Collector SIG.
Resolves https://github.com/open-telemetry/semantic-conventions/issues/396
Contributes to https://github.com/open-telemetry/opamp-spec/issues/131
Alternate to https://github.com/open-telemetry/semantic-conventions/pull/575 which did not get traction.
Changes
We need a way to record more information about agents than is currently possible using existing semantic conventions. Otel Collector in particular today uses service.name,service.instance.id,service.version attributes to report its own telemetry. These are useful but not sufficient, particularly we are missing the information about which distribution of Otel Collector it is.
The proposed agent.type,agent.version,agent.id conventions are also aligned with ECS: https://www.elastic.co/guide/en/ecs/current/ecs-agent.html
With introduction of this conventions the following attributes change in Otel Collector's own telemetry output:
service.name -> agent.type
service.version -> agent.version
service.instance.id -> agent.id
agent.distro is added as one more property, the equivalent of which did not exist in the past.
Usage
Case 1. Own Telemetry.
The agents will use these attributes in the Resource of the telemetry they about themselves.
Case 2. OpAMP.
These will be used as identifying attributes of the agent in OpAMP.
Merge requirement checklist
I will add changelog/schema after we agree to move forward with this proposal.

[ ] CONTRIBUTING.md guidelines followed.
[ ] Change log entry added, according to the guidelines in When to add a changelog entry.

If your PR does not need a change log, start the PR title with [chore]

[ ] schema-next.yaml updated with changes to existing conventions.

@open-telemetry/collector-approvers @open-telemetry/collector-contrib-approvers @open-telemetry/opamp-spec-approvers @open-telemetry/opamp-go-approvers Please review.

Can you clarify if this should also encompass additional attributes, such as additional metadata related to the collector build or the OS the collector runs on, or is that out of scope and defined elsewhere?

Can you clarify if this should also encompass additional attributes, such as additional metadata related to the collector build or the OS the collector runs on, or is that out of scope and defined elsewhere?

@atoulme For things like OS I think we should use existing conventions, e.g. os.type, etc. That's what OpAMP recommends.
If there are other additional attributes that you would want to record for Collector we should either add them as more agent.* attributes if they are for agents only or suggest them as general conventions if they are applicable to other service types.

@open-telemetry/opamp-spec-approvers @open-telemetry/opamp-go-approvers please take a look and comment.


Fix deprectated constant warnings

This should resolve the errors about the deprecated constants #96

Looks good to me!

Does anyone else have access to approve this besides the repo owner? Not sure if they're still around.

He is around, he commented on one of the other repos, but is very busy, he has said he'll be able to dedicate some time to it soon

Great! Thanks


Generic Resource Search

Resource search and policy playground resource search both return generic resources, closes #55
When a resource is selected, the versions are fetched and you are taken to the first version returned AKA the latest version of that resource

this will change once evaluation history is introduced

Searching in policy playground will give you the list of generic resources, then default to showing all versions in the same drawer. You can narrow down the versions from there using the search bar.
Updates to e2e tests to reflect these changes

This should also close #90

searching for a resource and selecting versions looks great 👍
the only feedback I have is that the policy playground changes make it less obvious exactly how you're supposed to interact with it.

when no policies or resources are selected, it isn't obvious that you need to click the search icon to select one.  I thought the button was more clear.
when a resource / policy is selected, it would be nice if the name of the resource / policy could be displayed along with the policy code and the occurrence data.  especially when you jump to the playground from a resource via the "Evaluate in Policy Playground" button.  without that, it becomes easy to lose context of what you were doing, such as if I switch browser tabs then come back at a later time.

these can be resolved in other PRs, we don't have to block this one.
other than that, everything else looks great!

@mrparkers I appreciate the feedback. I'll leave the comments on my thoughts for this, but I'll bring this up at the UI meeting too because I think others might have some opinions/some of this is future-ey.

when no policies or resources are selected, it isn't obvious that you need to click the search icon to select one.  I thought the button was more clear.

In the future when the code is an editable text area, this would be prepopulated with mock occurrence data and a sample policy. You can edit directly or use the search to pull in real examples. I can definitely add some text though to the button or find a way to make it more obvious that you need to search in the current UI.

when a resource / policy is selected, it would be nice if the name of the resource / policy could be displayed along with the policy code and the occurrence data.  especially when you jump to the playground from a resource via the "Evaluate in Policy Playground" button.  without that, it becomes easy to lose context of what you were doing, such as if I switch browser tabs then come back at a later time.

This one is tricky once the code is editable. If you search and select a policy but then edit the code, should the original policy name still show? If the policy name is removed when the code changes, but you change it back to the original policy code, should the policy name reappear? Same with the occurrence data. I'm not opposed to adding those labels in now since they will not be changing, but in the future it will just be a funky thing to manage in the UI so I thought I would avoid it all together.  Again, definitely up for more discussion, this is just what I was thinking with those changes.


parser: Refactor to move equals methods into the subject struct/ enum

For that first commit, it's probably worth adding that as a test to make sure it doesn't break in the future.

For that first commit, it's probably worth adding that as a test to make sure it doesn't break in the future.

Yeah, have added that now.


feat(RHINENG-10417): rename groups to workspaces

I am working on renaming groups to workspaces and I encountered an unhandled promise error from LOAD ENTITIES

/retest

Closing this because of several refactors. New pr is here https://github.com/RedHatInsights/malware-detection-frontend/pull/120


check_image_recognition _multiple_times func   bug

The log within the dynamic target indicates that each accuracy_val is identical, which seems to be an anomaly.

bug fix

bug fix


Fixes issue with multi-tenancy and default route to use corresponding default route for the selected tenant

Description
There is an issue with multi-tenancy and default routes where the wrong defaultRoute may be utilized instead of the default route of the currently selected tenant.
When multi-tenancy is enabled, ui settings are done per tenant so if there is a tenant selected saved in localStorage it should be used when getting the default route upon login to get the correct corresponding default route.
The current behavior is that login does not include info of the last saved tenant so by default the request will get the default route of the private tenant if the private tenant is enabled.
Category
Bug fix
Issues Resolved

https://github.com/opensearch-project/security-dashboards-plugin/issues/1245

Check List

[ ] New functionality includes testing
[ ] New functionality has been documented
[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

Closing this issue as complete


Search by tag ?

In field Search, there is no result linked to tag

Currently, clicking on an existing tag will display all the projects with that tag. To get a list of projects with a specific tag, the following URL construct should be used:
http://localhost:8080/projects/?tag=mytag
Agreed, there should be a way to more easily search for projects based on their tag.


obj_response not working

I'm trying to work with flask + sijax in a blueprint context, the request is sent to the target callback function 'on_click_test' however the  'obj_response' is not doing any thing, even I added the
 to the page. What could be the reason that request is sent but response not ?

Solved :
I had done:
if g.sijax.is_sijax_request:
g.sijax.register_object(SijaxHandler)
return g.sijax.process_request()
in a separate function to organize my program and I have called it in the view function
that causes an error of producing the response so I have moved that block of code back to the view function and it works just fine but I don't understand why it works now and it wasn't working ( returning a response ) !????!?

Can we see that other code, where you do the register_object stuff?


SP5: Add support for polycolor gradients with custom color positions

Allow to create gradient fill with more than 2 colors.
This PR also fix a typo in enum name GradiantType ==> GradientType.
Example
ScottPlot.Plot myPlot = new();

Coordinates[] points =
{
    new (0, 0.25),
    new (0.3, 0.75),
    new (1, 1),
    new (0.7, 0.5),
    new (1, 0)
};

var poly = myPlot.Add.Polygon(points);

poly.FillStyle = new FillStyle
{
    Color = Colors.Green,
    HatchColor = Colors.Blue,
    Hatch = new Gradient()
    {
        GradientType = GradientType.Radial,
        Colors = new Color[] { Colors.Yellow, Colors.DarkBlue, Colors.GreenYellow, Colors.Purple },
        ColorPositions = new float[] { 0.4f, 0.6f, 0.75f, 1 }
    }
};

poly.LineStyle = new LineStyle
{
    AntiAlias = true,
    Color = Colors.Black,
    Pattern = LinePattern.Dashed,
    Width = 2
};

poly.MarkerStyle = new MarkerStyle(MarkerShape.OpenCircle, 8);
poly.MarkerStyle.Fill.Color = Colors.Gold;
poly.MarkerStyle.Outline.Color = Colors.Brown;

myPlot.SavePng("polycolor.png", 150, 150);

This looks great! Thanks @KroMignon. I was sick for a few weeks and got a bit behind on issues and PRs, but I'm happy to merge this in now. Thanks again!

does this support using Gradient color as a background in my chart ?
maybe something like :
 daysChart.Plot.DataBackground.Color = (System.Windows.Media.Brush)FindResource("greenGradientBrush");


Will not work if node is installed with NVM

To replicate: uninstall any global node.js
Install node 8.9 with NVM and run npm i -g slng
Output:
$ slng <string>
/usr/bin/env: ‘node --harmony’: No such file or directory

Possible solution here: https://github.com/creationix/nvm/issues/786

@phuchle care to checkout the bugfix branch and run npm install -g > npm test and let me know if that solves your issue?


Add support for "originRequest" rules

The problem
When I add originRequest rules to additional_config they got dropped.
What version of Cloudflared has the issue?
4.0.12
What was the last working version of Cloudflared?
No response
What type of installation are you running?
Home Assistant OS
Add-on YAML Configuration
additional_hosts:
  - hostname: mydomain.com
    service: http://<IP_ADDRESS>:3000
    originRequest:
      access:
        required: true
external_hostname: ""
log_level: debug

Anything in the logs that might be useful for us?
DEBUG: Sucessfully created config file: {"tunnel":"ID-HERE","credentials-file":"/data/tunnel.json","ingress":[{"hostname":"mydomain.com","service":"http://<IP_ADDRESS>:3000","originRequest":{"noTLSVerify":true}},{"service":"http_status:404","originRequest":{"noTLSVerify":true}}]}

Steps to reproduce the issue

Apply config:

additional_hosts:
  - hostname: mydomain.com
    service: http://<IP_ADDRESS>:3000
    originRequest:
      access:
        required: true
external_hostname: ""
log_level: debug

Start
Observe the logs for the applied config:

{
  "tunnel": "ID-HERE",
  "credentials-file": "/data/tunnel.json",
  "ingress": [
    {
      "hostname": "mydomain.com",
      "service": "http://<IP_ADDRESS>:3000",
      "originRequest": {
        "noTLSVerify": true
      }
    },
    {
      "service": "http_status:404",
      "originRequest": {
        "noTLSVerify": true
      }
    }
  ]
}

Additional information
No response

We only support the most common configuration options with this add-on. However, you can set up your tunnel as remote managed to use all Cloudflare features.


CSS only floating Labels

Hey I just discovered https://github.com/anydigital/float-label-css
We could implement this in V2, which solves maybe some of the JS-init issues.
Also needs then less code and also no re-initialization of some components and works with only CSS
What do you think?

Is this even foreseen in Material Design?

As far as I can see, this approach doesn't work if there is no placeholder in the input.

Yes..this library was just an example, to show how we can start. I meant to replace the current floating label with a css-only approach.

Yeah, a CSS only solution would be great. I tried to find it some time ago, but no success. There's either a problem with placeholder or required

I would suggest to do it with placeholder shown.
In the meantime other frameworks do it also like this,
because it would also be semantically correct and does not require any JavaScript.
I would suggest to solve issues without JS if there is an easy solution available. Wdyt?

implemented in v2-dev


Zealot's Oath and Mana Reservation calc

i importet my character and noticed 2 things (account is TouhouNerd and character is HardgoreAlice in case for testing)
the Zealot's Oath passive node gives +72 flat Energie Shield Regen in the stats calculation
and i'm using the Prism Guardian shield , Blood Magic and the 50% less mana reserve node behind it in the passive tree, Alpha's Howl helmet and grab all the reduced reservation nodes aswell for the 38% reduced
now in the calculation when socketing auras into the shield the reservation gets rounded up (so Grace 50% becomes 8% when it should be 7% or Purity of Ice 35% becomes 6% but should be 5%)

The flat regen from ZO is from your Stone Golem.
The issue with the rounding on the reservation calculations is something I'm looking into.


Unable to build on https://ci.adoptopenjdk.net/computer/build-packet_esxi-solaris10u11-x64-1

https://ci.adoptopenjdk.net/computer/build-packet_esxi-solaris10u11-x64-1
18:06:03  + ./build-farm/make-adopt-build-farm.sh
18:06:03<EMAIL_ADDRESS>./build-farm/make-adopt-build-farm.sh: not found

https://ci.adoptopenjdk.net/view/Failing Builds/job/build-scripts/job/jobs/job/jdk8u/job/jdk8u-solaris-x64-hotspot/606/console
Oddly the above file exists...! but the machine will repeatedly not find it...
Comparing with https://ci.adoptopenjdk.net/computer/build-inspira-solaris10u11-sparcv9-2
the "/export" filesystem is mounted slightly differently, so wondering if that may have something to do with it?

I've taken the node offline under this issue.

I've taken the node offline under this issue.

/bin/bash is not available on the machine's filesystem therefore the #! at the start of make-adopt-build-farm.sh does not work

/bin/bash is not available on the machine's filesystem therefore the #! at the start of make-adopt-build-farm.sh does not work

I've symlinked /bin/bash -> /usr/bin/bash ... If that doesn't work, someone else can deal with it as I wasn't involved in the setup of this machine.

I've symlinked /bin/bash -> /usr/bin/bash ... If that doesn't work, someone else can deal with it as I wasn't involved in the setup of this machine.

"I've symlinked /bin/bash -> /usr/bin/bash"
That doesn't quite seem right. On Solaris, /bin is a symlink to /usr/bin
ls -l /bin
lrwxrwxrwx   1 root     root           9 Dec 15 13:55 /bin -> ./usr/bin/
which would tend to point to a deeper problem.

"I've symlinked /bin/bash -> /usr/bin/bash"
That doesn't quite seem right. On Solaris, /bin is a symlink to /usr/bin
ls -l /bin
lrwxrwxrwx   1 root     root           9 Dec 15 13:55 /bin -> ./usr/bin/
which would tend to point to a deeper problem.

Agreed @ptribble  - I'm more than a bit worried about what's happened on that system in the past ...

Agreed @ptribble  - I'm more than a bit worried about what's happened on that system in the past ...

Mostly resolved (JDK8 build on the machine). @gdams created another link /bin/sh -> /usr/bin/bash (Ref: https://adoptopenjdk.slack.com/archives/C09NW3L2J/p1611830964042600?thread_ts=1611824089.035900&cid=C09NW3L2J) but it's showing this error very close to the end of the build:
20:54:54  Compiling 240 files for BUILD_SECURITY
20:54:54  Note: Some input files use or override a deprecated API.
20:54:54  Note: Recompile with -Xlint:deprecation for details.

20:54:56  "/export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/jdk/src/share/native/sun/misc/URLClassPath.c", line 58: warning: implicitly declaring function to return int: VerifyFixClassname()
20:54:56  "/export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/jdk/src/share/native/sun/misc/URLClassPath.c", line 60: warning: implicitly declaring function to return int: VerifyClassname()
20:54:56  "/export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/jdk/src/share/native/sun/misc/URLClassPath.c", line 68: warning: implicitly declaring function to return int: free()

20:54:59  CC: stdlibfilt failed for /export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
20:54:59  gmake[2]: *** [lib/CoreLibraries.gmk:322: /export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/build/solaris-x86_64-normal-server-release/jdk/objs/libunpack/zip.o] Error 2
20:54:59  gmake[2]: *** Waiting for unfinished jobs....
20:54:59  CC: stdlibfilt failed for /export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
20:54:59  gmake[2]: *** [lib/CoreLibraries.gmk:322: /export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/build/solaris-x86_64-normal-server-release/jdk/objs/libunpack/unpack.o] Error 2
20:54:59  gmake[1]: *** [BuildJdk.gmk:70: libs-only] Error 2
20:54:59  gmake: *** [/export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src//make/Main.gmk:117: jdk-only] Error 2

Mostly resolved (JDK8 build on the machine). @gdams created another link /bin/sh -> /usr/bin/bash (Ref: https://adoptopenjdk.slack.com/archives/C09NW3L2J/p1611830964042600?thread_ts=1611824089.035900&cid=C09NW3L2J) but it's showing this error very close to the end of the build:
20:54:54  Compiling 240 files for BUILD_SECURITY
20:54:54  Note: Some input files use or override a deprecated API.
20:54:54  Note: Recompile with -Xlint:deprecation for details.

20:54:56  "/export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/jdk/src/share/native/sun/misc/URLClassPath.c", line 58: warning: implicitly declaring function to return int: VerifyFixClassname()
20:54:56  "/export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/jdk/src/share/native/sun/misc/URLClassPath.c", line 60: warning: implicitly declaring function to return int: VerifyClassname()
20:54:56  "/export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/jdk/src/share/native/sun/misc/URLClassPath.c", line 68: warning: implicitly declaring function to return int: free()

20:54:59  CC: stdlibfilt failed for /export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/jdk/src/share/native/com/sun/java/util/jar/pack/zip.cpp
20:54:59  gmake[2]: *** [lib/CoreLibraries.gmk:322: /export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/build/solaris-x86_64-normal-server-release/jdk/objs/libunpack/zip.o] Error 2
20:54:59  gmake[2]: *** Waiting for unfinished jobs....
20:54:59  CC: stdlibfilt failed for /export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/jdk/src/share/native/com/sun/java/util/jar/pack/unpack.cpp
20:54:59  gmake[2]: *** [lib/CoreLibraries.gmk:322: /export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src/build/solaris-x86_64-normal-server-release/jdk/objs/libunpack/unpack.o] Error 2
20:54:59  gmake[1]: *** [BuildJdk.gmk:70: libs-only] Error 2
20:54:59  gmake: *** [/export/home/jenkins/workspace/build-scripts/jobs/jdk8u/jdk8u-solaris-x64-hotspot/workspace/build/src//make/Main.gmk:117: jdk-only] Error 2

I think stdlibfilt calls /bin/sed
But basically, remove the current /bin and replace it with a symlink to usr/bin, and you fix all the errors of this type.

I think stdlibfilt calls /bin/sed
But basically, remove the current /bin and replace it with a symlink to usr/bin, and you fix all the errors of this type.


S3 object metadata not found for bot/none-none

My bot uses Bolt for Java with Spring Boot. Sometimes in my production server logs I see info like this:
c.s.a.b.s.b.AmazonS3InstallationService  :
Amazon S3 object metadata not found (key: bot/none-none, AmazonS3Exception: com.amazonaws.services.s3.model.AmazonS3Exception:
The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID: ...; S3 Extended Request ID: ...; Proxy: null), S3 Extended Request ID: ...)

Can I do anything about it?
I was able to reproduce it. You need to uninstall your bot from a computer but still have it opened from the mobile app.

Hi @gh-gonzo, thanks for sharing this.
Would it be possible to ask you to identify what kind of payload request can cause this? I am guessing that the request pattern may be an Events API one, which does not provide any enterprise_id and team_id, but I am still unsure what it is.
Also, when it happens, do your end-users see any visible errors? Or, did you just find info-level logs like this on the server-side?

I need to think for a while how to get this payload.
I haven't noticed any errors as a user. I just found it in info-level server logs.

Thanks for your response. Good to hear that no end-users are affected by this so far.