Crashed node red when powering on give device

Hi. When using power on node, I do get the following error and node red stops:
Nov 11 17:08:39 raspimain Node-RED[434]: 11 Nov 17:08:39 - [red] Uncaught Exception:
Nov 11 17:08:39 raspimain Node-RED[434]: 11 Nov 17:08:39 - [error] TypeError: Cannot read properties of undefined (reading 'devicesArray')
Nov 11 17:08:39 raspimain Node-RED[434]:     at setPowerNode._inputCallback (/home/pi/.node-red/node_modules/govee-lan-control/dist/node-red/setPower.js:12:24)
Nov 11 17:08:39 raspimain Node-RED[434]:     at /usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:210:26
Nov 11 17:08:39 raspimain Node-RED[434]:     at Object.trigger (/usr/lib/node_modules/node-red/node_modules/@node-red/util/lib/hooks.js:166:13)
Nov 11 17:08:39 raspimain Node-RED[434]:     at setPowerNode.Node._emitInput (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:202:11)
Nov 11 17:08:39 raspimain Node-RED[434]:     at setPowerNode.Node.emit (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:186:25)
Nov 11 17:08:39 raspimain Node-RED[434]:     at setPowerNode.Node.receive (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/nodes/Node.js:485:10)
Nov 11 17:08:39 raspimain Node-RED[434]:     at Immediate.<anonymous> (/usr/lib/node_modules/node-red/node_modules/@node-red/runtime/lib/flows/Flow.js:831:52)
Nov 11 17:08:39 raspimain Node-RED[434]:     at processImmediate (node:internal/timers:478:21)
Nov 11 17:08:40 raspimain systemd[1]: nodered.service: Main process exited, code=exited, status=1/FAILURE

I get the same message does not matter if i use set color, power, brightness :(

Same. If I use a timestamp to trigger it crashes nodered with a " Service Node-RED exited with code 1 (by signal 0)"
If I try and use a boolean it crashes with " Service NGINX exited with code 0 (by signal 0)"


Nothing much, a spell mistake in readme.md

Nothing much! There is a spell mistake in the word "integrate" in Official Releases para, "GitHub Actions" sentence:
DevSkim is also available as a GitHub Action to itegrate with the GitHub Security Issues pane.

Thanks for pointing out the typo! I opened a pr with that fix. https://github.com/microsoft/DevSkim/pull/628


fix(deps): Updating minimal-slp-walet

:tada: This PR is included in version 1.9.3 :tada:
Your semantic-release bot :package::rocket:


Adding Postman sort

This sorting type is comparable to the bucket sort, but it does use the hierarchical structure of elements

Cool, I've never heard of Postman sort, thank you 👍


Don't Merge! PR real time test for target branch full build

Docs Build status updates of commit 6ee09ce:
:clock10: Full build: the average full build time is 6 min(s) 9 sec(s), this is based on the last 30 build(s) for this repository.

Docs Build status updates of commit 6ee09ce:
:warning: Validation status: warnings

File
Status
Preview URL
Details

docs-ref-conceptual/testing.md
:warning:Warning
View (azure-cli-latest) View (azure-cli-2017-03-09-profile) View (azure-cli-2018-03-01-hybrid)
Details

docs-ref-conceptual/testing.md

[Warning] Missing attribute: title. Add a title string to show in search engine results.
[Warning] Missing attribute: title. Add a title string to show in search engine results.
[Warning] Missing attribute: title. Add a title string to show in search engine results.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Can you publish 0.12.0?

I saw that you recently merged support for 0.48 and bumped the version to 0.12, however it doesn't yet appear to be available. My org just upgraded the ktlint version and I've unfortunately had to disable this plugin until it gets updated :(

I would also be interested in an imminent release. Apparently, Ktlint has changed trailing commas to be mandatory starting with version 0.48.x, which is currently inconsistent with the behavior of the plugin.

This version is now submitted to Jetbrains! Also bumped up to 0.48.2, and added a new IDE version support so wanted to do a fair amount of testing 😅 definitely gets more difficult as ktlint starts to have significantly more API churn

Thank you very much, looking forward to trying it out!

Same! I don't know if it's possible, but allowing the user to select a version/specify a path to a locally installed ktlint might allow you to not need to release at the same cadence as ktlint

@bandersongit Good idea, I was thinking the same when I discovered the versions of plugin and CLI tool were out of sync.


Don't log Websocket errors

^

Attempt to reconnect X number of times if the connection was dropped.

error sending client ws, Error: not opened
Adding this comment so it shows up in search

happens same with me on ionic run android

I'm still getting websocket errors on 0.0.48.
Here is a sample:
error opening ws message: {"category":"console","type":"log","data":["DEVICE READY FIRED AFTER",6244,"ms"]}
OR
error opening ws message: {"category":"console","type":"log","data":["Cannot retrieve
            item",{"code":2,"source":"Native","exception":null}]}

Same on 1.0.0

Same error occured
error opening ws message: {"category":"console","type":"log","data":["DEVICE READY FIRED AFTER",4397,"ms"]}

Here is my configuration
Cordova CLI: 6.5.0
Ionic Framework Version: 2.0.0
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
Ionic App Scripts Version: 1.0.0
ios-deploy version: 1.9.1
ios-sim version: 5.0.12
OS: macOS Sierra
Node Version: v7.5.0
Xcode version: Xcode 8.2.1 Build version 8C1002

facing the same issue, any solutions for this yet?


Error when running scrcpy with MediaPad T1

[x] I have read the FAQ.
[x] I have searched in existing issues.

Environment

OS: Windows 11
scrcpy version: 1.24
installation method: Windows release
device model: Huawei MediaPad T1 8.0 Pro
Android version: 4.4.4 H Kitkat

Describe the bug
Enabled USB Debugging, Connected my tablet to my PC and launched scrcpy 1.24. Shows the same error everytime I run scrcpy. When I connected my tablet it showed "Do you allow this computer with this key to connect with USB Debugging?" I pressed Yes but it still didn't work. I also put the USB Option as Device File Manager so I could access the files on my PC and that worked but not scrcpy.
`scrcpy 1.24 <https://github.com/Genymobile/scrcpy>
C:\Users\User\Desktop\Files\PC Tools\s...ped. 20.2 MB/s (41159 bytes in 0.002s)
adb.exe: error: closed
ERROR: "adb reverse" returned with value 1
WARN: 'adb reverse' failed, fallback to 'adb forward'
open: Permission denied
open: Permission denied
Aborted
ERROR: Server connection failed
Press any key to continue . . .`

Scrcpy requires Android 5.

Scrcpy requires Android >= 5.

so when android 4 support?


Documentation:  make function argument sections consistent

Please select a category the issue is focused on?
Function Documentation
Let us know where something needs a refresh or put your idea here!
tester feedback:
Comparing for example https://pharmaverse.github.io/admiralonco/test/reference/derive_param_bor.html#arguments with https://pharmaverse.github.io/admiralonco/test/reference/derive_param_confirmed_bor.html#arguments we got the feedback:
the "Arguments" documentation is not same across all functions: for eg "derive_param_bor" had provided if the parameter is required or not. but if we look into consistency across all references to provide permistted values, optional or not, defualt values.
also see https://github.com/pharmaverse/admiraldev/issues/72 from admiral.
we should include the useful PERMITTED VALUES and DEFAULT VALUES sections in all functions. around REQUIRED/OPTIONAL part this is still being discussed at admiral dev team and i will add here the decision.

Waiting for decision from admiral core team on the issue mentioned above - and a programming strategy update.

The admiralonco functions are superseded by derive_extreme_event(). I would not expect that we develop them further. Thus I am closing this issue.


bug:  AttributeError: 'dict' object has no attribute 'schemas'

Describe the bug
thank you for this amazing tools. just tried running what's in the documentation
openllm start facebook/opt-1.3b

To reproduce

install the latest openllm pip install openllm
openllm start facebook/opt-1.3b

Logs
ubuntu@ewd-pmtools:~$ openllm start facebook/opt-1.3b --port 9333
vLLM is not available. Note that PyTorch backend is not as performant as vLLM and you should always consider using vLLM for production.
To disable these warnings, set 'OPENLLM_DISABLE_WARNING=True'
Tip: run 'openllm build facebook/opt-1.3b --serialization legacy' to create a BentoLLM for 'facebook/opt-1.3b'
Traceback (most recent call last):
File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
exec(code, run_globals)
File "/home/ubuntu/.local/lib/python3.8/site-packages/bentoml/__main__.py", line 4, in <module>
cli()
File "/home/ubuntu/.local/lib/python3.8/site-packages/click/core.py", line 1157, in __call__
return self.main(*args, **kwargs)
File "/home/ubuntu/.local/lib/python3.8/site-packages/click/core.py", line 1078, in main
rv = self.invoke(ctx)
File "/home/ubuntu/.local/lib/python3.8/site-packages/click/core.py", line 1688, in invoke
return _process_result(sub_ctx.command.invoke(sub_ctx))
File "/home/ubuntu/.local/lib/python3.8/site-packages/click/core.py", line 1434, in invoke
return ctx.invoke(self.callback, **ctx.params)
File "/home/ubuntu/.local/lib/python3.8/site-packages/click/core.py", line 783, in invoke
return __callback(*args, **kwargs)
File "/home/ubuntu/.local/lib/python3.8/site-packages/bentoml_cli/utils.py", line 362, in wrapper
return func(*args, **kwargs)
File "/home/ubuntu/.local/lib/python3.8/site-packages/bentoml_cli/utils.py", line 311, in wrapper
return func(*args, **kwargs)
return func(*args, **kwargs)
File "/home/ubuntu/.local/lib/python3.8/site-packages/click/decorators.py", line 33, in new_func
return f(get_current_context(), *args, **kwargs)
File "/home/ubuntu/.local/lib/python3.8/site-packages/bentoml_cli/utils.py", line 290, in wrapper
return func(*args, **kwargs)
File "/home/ubuntu/.local/lib/python3.8/site-packages/bentoml_cli/env_manager.py", line 122, in wrapper
return func(*args, **kwargs)
File "/home/ubuntu/.local/lib/python3.8/site-packages/bentoml_cli/serve.py", line 260, in serve
serve_http_production(
File "/home/ubuntu/.local/lib/python3.8/site-packages/simple_di/__init__.py", line 139, in _
return func(*_inject_args(bind.args), **_inject_kwargs(bind.kwargs))
File "/home/ubuntu/.local/lib/python3.8/site-packages/bentoml/serve.py", line 286, in serve_http_production
svc = load(bento_identifier, working_dir=working_dir)
File "/home/ubuntu/.local/lib/python3.8/site-packages/bentoml/_internal/service/loader.py", line 374, in load
svc = import_service(
File "/home/ubuntu/.local/lib/python3.8/site-packages/simple_di/__init__.py", line 139, in _
return func(*_inject_args(bind.args), **_inject_kwargs(bind.kwargs))
File "/home/ubuntu/.local/lib/python3.8/site-packages/bentoml/_internal/service/loader.py", line 137, in import_service
module = importlib.import_module(module_name, package=working_dir)
File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 975, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 671, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 848, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/ubuntu/.local/lib/python3.8/site-packages/openllm/_service.py", line 94, in <module>
openllm.mount_entrypoints(svc, llm)
File "/home/ubuntu/.local/lib/python3.8/site-packages/openllm/entrypoints/__init__.py", line 11, in mount_entrypoints
svc = module.mount_to_svc(svc, llm)
File "/home/ubuntu/.local/lib/python3.8/sit
svc = module.mount_to_svc(svc, llm)
File "/home/ubuntu/.local/lib/python3.8/site-packages/openllm/entrypoints/openai.py", line 113, in mount_to_svc
return append_schemas(svc, schemas.get_schema(routes=app.routes, mount_path='/v1'))
File "/home/ubuntu/.local/lib/python3.8/site-packages/openllm/entrypoints/_openapi.py", line 610, in append_schemas
svc_schema = svc_schema.asdict()
File "/home/ubuntu/.local/lib/python3.8/site-packages/bentoml/_internal/service/openapi/specification.py", line 281, in asdict
return bentoml_cattr.unstructure(self)
File "/home/ubuntu/.local/lib/python3.8/site-packages/cattrs/converters.py", line 238, in unstructure
return self._unstructure_func.dispatch(
File "<cattrs generated unstructure bentoml._internal.service.openapi.specification.OpenAPISpecification>", line 11, in unstructure_OpenAPISpecificati
on
File "/home/ubuntu/.local/lib/python3.8/site-packages/cattrs/converters.py", line 960, in unstructure_optional
return None if val is None else _handler(val)
File "<cattrs generated unstructure bentoml._internal.service.openapi.specification.Components>", line 3, in unstructure_Components
AttributeError: 'dict' object has no attribute 'schemas'

Environment
openllm, 0.4.12 (compiled: False)
Python (CPython) 3.8.10
Ubuntu 20.04.6 LTS
System information (Optional)
No response

I'm fixing this and will be release in 0.4.14

https://github.com/bentoml/BentoML/issues/4290

This is now released. I have ignore cattrs version that breaks our validation logic

thank you @aarnphm , version 0.4.14 works fine
for those who experience the same issue
this will uninstall cattrs version  23.2.0
pip uninstall cattrs

and then upgrade the Openllm
pip install --upgrade openllm==0.4.14

Hi @aarnphm  this is still an issue for me in version 0.4.14.
I tried with a fresh install using pip install --upgrade openllm==0.4.14
and got the same error trying:
openllm start TheBloke/zephyr-7B-beta-AWQ --backend vllm --quantize awq

I think I will need to create a release for bentoml. Let me do that

Hey there can u try again?

Hi @aarnphm ,
I did a pip --force-reinstall and then it worked. Thanks!


Do not remove objects composed of only Symbols as keys

Fixes https://github.com/nunofgs/clean-deep/issues/70
This can be considered a breaking change, so I would consider doing a major bump.

Closing this as it doesn't work because transform only iterates enumerable keys that are strings. This would require more changes, so I opted out and resolved the problem differently.


Rivers worldsynth

We already calculated rivermap and lakemap but then we used an ad-hoc routine to draw rivers, with questionable results.
This patch is built on top of #167
See images in #119

This will improve the results of world generation so much!
The code reminds me a little bit of what irrigation.py looked like before I replaced its core with numpy code - I guess that drawing the rivers and lakes is kind of a slow process? I wouldn't know how to improve it, I'm just curious.

thumbs up just need new blessed images?

it seems so. I will commit the new blessed images and merge then.

Blessed images updated, tests restarted

rebasing on master and then restarting tests


General: IxoTx should be StdTx

For this, the pubKey will have to be added to IxoSignature. This will allow IxoSignature to become StdSignature and thus IxoTx can become StdTx.

This will have to be done alongside #76 given that StdTx will be registered in Cosmos SDK, in contrast with IxoTx.

Closed by #147


Empty credentials in Twilio debugger from iOS

I am trying to initiate a call from iOS then it's connecting for 2-3 sec and getting disconnected after that and in Twilio debugger we are getting "Empty Credentials", do you have nay idea regarding the same.

Hey @yatindma,
If I understand your question then I think the best place to discuss is in: https://github.com/twilio/voice-quickstart-ios/issues/342


Refactor _on_combo_changed() and _on_focus_out() methods to eliminate duplicate code

I've selected for refactoring 35 lines of code which are duplicated in 2 file(s) (1, 2).

See also issues #205 and #208.


How to uncover interaction importance for higher order interactions (3,4,5 etc)

Like xgbfi. Is there an equivalent ?

That is not implemented at the moment. But I am working on stuff that would support that, no ETA yet.

Hmm, if there is something you think a semi-descent programmer can help you with, let me know.

Thanks! I'll reach out if find a chunk that would be easy to hand off.

@thatlittleboy Label enhancing I believe. This would be actually an interesting feature for real-world use.


firebase_auth build warnings in xcode

Personally, I'm a fan of a clean build. Broken window theory and all.
firebase_auth v0.14.0

@lookfirst
The issue at https://github.com/flutter/flutter/issues/37230 has been closed and moved here. Future collaboration on this issue will be done here.

@lookfirst how's it now? As I see 1st warning was fixed here https://pub.dev/packages/firebase_auth#01402.
What about the second one?

firebase_auth=/flutter/.pub-cache/hosted/pub.dartlang.org/firebase_auth-0.14.0+5/

@BondarenkoStas remove the invalid tag please.

Hey 👋
Our rework of the firebase_auth plugin as part of the FlutterFire roadmap was published over a week ago with a ton of fixes and new features. Please could you try the new version and see if this is still an issue for you? If it is then please submit a new up to date GitHub issue.
For help migrating to the new plugins please see the new migration guide: https://firebase.flutter.dev/docs/migration


Add Annotation-instance-wise mask in Dump Annotation

Currently, the MASK ZIP 1.0 groups all annotations of the same label type into the same colour. It would be nice to be able to generate segmentation maps from the drawn labels where each annotation (i.e. each Object in the Right hand side panel in the labelling UI) would come in a different colour.
This feature would be useful for the following use cases

Instance/Panoptic Segmentation
When one would like to distinguish the same label, but with different attributes

Hi , Is there any update on the issue?

@rsnk96 , @zhiltsov-max , I believe the issue was fixed. Now you can download segmentation and instance segmentation at the same time. I will close the issue. Don't hesitate to reopen it if you think that the current solution doesn't work for you.


replace datasets with button click

hi first of all i am sorry but i having hard time understanding your documentation, i don't know if it is my lack of javascript knowledge or experience or what but.... as i have using another javascript plugin for my works like summernote, select2, or even a whole framework like bootstrap are a way more easier to understand
i find your documentation is hard to me to understand and do what i want or what you promised in the front page (like mix chart between bar and line, i have no idea how to do that)
so back to the main question, i just want to ask another simple question that supposed to be in your documentation or maybe i miss it somewhere...
How to replace datasets in chart by clicking a button? so i have several different datasets that have the pretty much same parameter (x and y) but different value and use...
and from your github master folder i found example folder that have a code (which have some error like referencing js file to a non exist folder) is a way to randomize a dataset....
so i think is there any way to change datasets to another dataset on the fly? or maybe recreating chart with button click?

@t0n1zz the reason the samples reference non existent files is because we removed built versions from source control. Our feeling was that if the repository will be cloned, a build will be required.
To build Chart.js:
npm install
gulp build

Once that's done, you will be able to use the samples. The Line sample has a 'change data object' button. This button replaces the entire data object attached to the chart.

oh it works... thank you...  how about changing title ? i tried this but it is not working....
config.options = {
            title: {
                display: true,
                text: 'Pertumbuhan Anggota 2'
            }
        };

That should work for setting the title, but you need to do it before you create the chart.
To add bars and lines on the same chart, you can follow https://github.com/chartjs/Chart.js/blob/master/samples/combo-bar-line.html
To do numeric formatting, you can do
options: {
  scales: {
    yAxes: [{
      ticks: {
        callback: function(tick, index, ticksArray) {
          // return string for tick here
        }
      }
    }]
  }
}

oh then how to do it? hmmm maybe i will explain what i want to do with chart js....
so i want to use chart js to show mutliple datasets (which is already answered by you... thank you so much) and thats mean i will have a different chart title for each dataset and that's all will be just by a click of button since i just want to render or display one chart in my page but can show multiple datasets...  it is already done now.
then what i want to do next is i want to show a different type of charts based on datasets and what i discovered is if is like this
var config = {
    type: 'bar',
    data: data
}

and then in my button
$('#totalanggota').click(function () {
        config.type = 'line';
        config.data = data_totalanggota;
        window.anggota_chart.update();
});

then i will be show a line chart but i see it is a little different then a normal chart....
see this is the chart that using above code

and this is the chart that declaring from start as a line chart

as you can see the first image is like having a wrong x position for the line chart... so how to fix it?
and next question is how to configure the tooltips? to make it show a formated number? and maybe is it possible to make the tooltips always shown and don't need for hovering into that to make tooltips visible?

It appears that this issue is outdated and is not an issue with Chart.js.


Random 502 errors with Caddy 0.9.1 in reverse proxy mode, no load

1. What version of Caddy are you running (caddy -version)?
Caddy 0.9.1 (+e8e5595 Mon Aug 29 16:15:56 UTC 2016)
2. What are you trying to do?

It's running under supervisord:
[program:caddy]
command=/path/caddy/caddy
directory=/path/caddy

5. What did you expect to see?
No errors
6. What did you see instead (give full error messages and/or log)?
Today I upgraded caddy from 0.8.3 to 0.9.1. Subsequently during the day I got complaints from users saying they received 502 errors. The errors happened on both the www.utiliz.co and admin.utiliz.co sites. There was never any significant load, maybe 1-2 concurrent users.  Retrying immediately always worked fine. There is no problem at all with the back end server (to confirm it was not a load issue I slammed the site with 500 concurrent users via boom and did not get any 502s at all.) I never saw any 502 errors when using 0.8.3.
This is the pattern of 502s during the day today.
30/Aug/2016:15:25:11 +0000 [ERROR 502 /ic/checkout/ordersummary] unreachable backend
30/Aug/2016:15:25:11 +0000 [ERROR 502 /checkout/save] unreachable backend
30/Aug/2016:15:25:11 +0000 [ERROR 502 /favicon.ico] unreachable backend
30/Aug/2016:15:25:17 +0000 [ERROR 502 /features] unreachable backend
30/Aug/2016:16:10:58 +0000 [ERROR 502 /login/action] unreachable backend
30/Aug/2016:16:10:58 +0000 [ERROR 502 /login/action] unreachable backend
30/Aug/2016:16:10:59 +0000 [ERROR 502 /favicon.ico] unreachable backend
30/Aug/2016:16:11:03 +0000 [ERROR 502 /] unreachable backend
30/Aug/2016:22:37:07 +0000 [ERROR 502 /users] unreachable backend
30/Aug/2016:22:37:07 +0000 [ERROR 502 /] unreachable backend
30/Aug/2016:22:37:08 +0000 [ERROR 502 /favicon.ico] unreachable backend
31/Aug/2016:00:27:12 +0000 [ERROR 502 /checkout] unreachable backend
31/Aug/2016:00:27:18 +0000 [ERROR 502 /checkout] unreachable backend
31/Aug/2016:00:27:19 +0000 [ERROR 502 /checkout] unreachable backend
7. How can someone who is starting from scratch reproduce this behavior as minimally as possible?
I don't know, it seems random.
For now I am downgrading back to Caddy 0.8.3, which is disappointing.

I'm affected by this too. One odd thing is that I get this:
https://i.imgur.com/4JJlkzy.png
In the 502 responses, there's a weird non-request, followed by the 502. This doesn't hit the backend at all. It looks like a race condition, to me.

This also seems to only happen over HTTPS, or that's how I've managed to reproduce it. Possibly because HTTP is faster.

This error occurs when the backend returns a non-success status code or some other error happens.
Will look into it later when I have a chance; someone else is welcome to help out!

I added a one-second delay to the view, and Caddy sometimes returns within 40ms with a 502, sometimes waits the full second and returns the response. Maybe something is making it think that the timeout was much less than it was?
@mholt It's not a non-success status code, as the request doesn't hit the backend at all (there's nothing in the log.

Also, this happens to me with both Ruby and Python backends, on two unrelated servers.

It also never happens with cURL, whereas it happens 90% of the time on the same request with Firefox. Combined with the fact that it only happens over TLS, I'd suspect session resumption or HTTP/2.

@mholt my backend server isn't returning an error code. Something else is going on.

@kmanley That'd be helpful! Thanks. Try printing backendErr here: https://github.com/mholt/caddy/blob/a12230419611951692ee0bb5cd407e6e884be2c2/caddyhttp/proxy/proxy.go#L146
If you want to print it only when it's non-nil, try moving the print statement down after the nil check.

@mholt do you want me to build a the 0.9.1 tag or head?

@mholt in fact would there be any downside to just including that change in head?

Head, please.

Okay I'm running the custom build that prints backendErr in my prod environment now, will let you know what I find out.

Error was not triggered yesterday but it has happened twice this morning. In both cases backendErr is "net/http: request canceled"
Is that helpful info?

Yes, that's good to know. Thanks! Hmm, so why is the request being canceled...

I guess the next step will be for me to add debug printing to ReverseProxy.ServeHTTP

Haven't had a chance to deploy a new version with more debug printing, but have seen more of the same errors. Some are the same as above: "net/http: request canceled" But now I'm also seeing "net/http: request canceled while waiting for connection"  The machine is idle when this happens and the backend is up and working fine.

I'm also running into this. Running caddy in a docker container acting as a front end for a go server. Caddyfile:
www.url.com url.com {
  tls<EMAIL_ADDRESS>  gzip
  proxy / localhost:3000 {
    transparent
  }
}

It is not intermittent for me. If you need some debugging output I can help out. Here are the logs.
http://www.jackzampolin.com
http://jackzampolin.com
https://www.jackzampolin.com
https://jackzampolin.com
05/Sep/2016:17:17:29 +0000 [ERROR 502 /] unreachable backend
05/Sep/2016:17:17:39 +0000 [ERROR 502 /] unreachable backend
05/Sep/2016:17:17:39 +0000 [ERROR 502 /favicon.ico] unreachable backend
05/Sep/2016:17:17:40 +0000 [ERROR 502 /] unreachable backend
05/Sep/2016:17:17:40 +0000 [ERROR 502 /favicon.ico] unreachable backend
05/Sep/2016:17:17:41 +0000 [ERROR 502 /] unreachable backend
05/Sep/2016:17:17:42 +0000 [ERROR 502 /favicon.ico] unreachable backend
05/Sep/2016:17:17:42 +0000 [ERROR 502 /] unreachable backend
05/Sep/2016:17:17:42 +0000 [ERROR 502 /favicon.ico] unreachable backend```

This is happening for me as well, when I click on link on the page and right away click another link. Chrome cancels the first request and continue with a second one. Nginx sends a 499 response, then caddy marks proxy upstream as down and I have to wait 10 seconds to get proper response again. I tried to set max_fails to 0 but requests then took about 3 seconds to respond. I went with fail_timeout 2s for now.
I have Caddy 0.9.1 configured as proxy to an nginx server.
# nginx log
web_1        | <IP_ADDRESS> - - [06/Sep/2016:18:17:49 +0000] "GET /?page=6 HTTP/1.1" 499 0 "https://site.com/?page=7" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"

@mochja that's a different issue; if your backend returns an error then caddy marks it unreachable, that's working as designed. @jackzampolin if it's not intermittent for you then your backend is likely also returning an error status.
The issue described in here is random (or at least seems to be random) and the backend is not returning an error status.

@kmanley Okay so that part with ngnix is different, but it has to do something with request canceling. @mholt user can easily cancel a request in chrome.

Having similar issue using Caddy(9.1, debian) as reverse proxy for elixir/erlang app.

If I explicitly declare http version, it works fine.
If I use standard https rerouting, it crashes because of lack of Connection header (though it reaches the server in my case)
If I manually add proxy_header Connection upgrade it works fine, but https seems to be off(address contains it, but no lock in address bar).

I've seen issue with websocket preset, but it has been closed and supposedly working.

Current workaround is to disable http2 -http2=false

Just to follow up, I still see this once a day or so. I instrumented ServerHTTP and the error happens in Roundtrip. I'm not convinced all the comments on this thread are the same issue as what I'm seeing. What I see are completely random cancelations when the backend is under no load.

I see the same, and the backend never even gets contacted.

We have also encountered this problem this morning. In our case it seems caddy decides the backend is down when it returns lots of 404s.
We then set the proxy max_fails property to 0 because we considered this false positives. We then started seeing errors like this:

sep 09 09:38:52 vcs caddy[7902]: fatal error: concurrent map read and map write
sep 09 09:38:52 vcs caddy[7902]: goroutine 15786038 [running]:
sep 09 09:38:52 vcs caddy[7902]: runtime.throw(0xa24c1d, 0x21)
sep 09 09:38:52 vcs caddy[7902]: /usr/local/go/src/runtime/panic.go:566 +0x95 fp=0xc42be28cb8 sp=0xc42be28c98
sep 09 09:38:52 vcs caddy[7902]: runtime.mapaccess2_faststr(0x9d96e0, 0xc44cd5aa20, 0xa16536, 0xa, 0xc42be28dd8, 0x1)
sep 09 09:38:52 vcs caddy[7902]: /usr/local/go/src/runtime/hashmap_fast.go:306 +0x52b fp=0xc42be28d18 sp=0xc42be28cb8
sep 09 09:38:52 vcs caddy[7902]: net/http.(*Request).write(0xc4200cc3c0, 0xca4b80, 0xc437bb7700, 0x0, 0x0, 0x0, 0x0, 0x0)
sep 09 09:38:52 vcs caddy[7902]: /usr/local/go/src/net/http/request.go:506 +0x530 fp=0xc42be28e58 sp=0xc42be28d18
sep 09 09:38:52 vcs caddy[7902]: net/http.(*persistConn).writeLoop(0xc439791600)
sep 09 09:38:52 vcs caddy[7902]: /usr/local/go/src/net/http/transport.go:1644 +0x1ac fp=0xc42be28fa8 sp=0xc42be28e58
sep 09 09:38:52 vcs caddy[7902]: runtime.goexit()
sep 09 09:38:52 vcs caddy[7902]: /usr/local/go/src/runtime/asm_amd64.s:2086 +0x1 fp=0xc42be28fb0 sp=0xc42be28fa8
sep 09 09:38:52 vcs caddy[7902]: created by net/http.(*Transport).dialConn
sep 09 09:38:52 vcs caddy[7902]: /usr/local/go/src/net/http/transport.go:1058 +0x50e
sep 09 09:38:52 vcs caddy[7902]: goroutine 1 [semacquire, 2 minutes]:
sep 09 09:38:52 vcs caddy[7902]: sync.runtime_Semacquire(0xc4200fe1bc)
sep 09 09:38:52 vcs caddy[7902]: /usr/local/go/src/runtime/sema.go:47 +0x30
sep 09 09:38:52 vcs caddy[7902]: sync.(*WaitGroup).Wait(0xc4200fe1b0)
sep 09 09:38:52 vcs caddy[7902]: /usr/local/go/src/sync/waitgroup.go:131 +0x97
sep 09 09:38:52 vcs caddy[7902]: github.com/mholt/caddy.(*Instance).Wait(0xc42019e5b0)
sep 09 09:38:52 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddy.go:379 +0x2f
sep 09 09:38:52 vcs caddy[7902]: github.com/mholt/caddy/caddy/caddymain.Run()
sep 09 09:38:52 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddy/caddymain/run.go:106 +0x28d
sep 09 09:38:52 vcs caddy[7902]: main.main()
sep 09 09:38:52 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddy/main.go:13 +0x1b
sep 09 09:38:52 vcs caddy[7902]: goroutine 5 [syscall, 2 minutes]:
sep 09 09:38:52 vcs caddy[7902]: os/signal.signal_recv(0x0)
sep 09 09:38:52 vcs caddy[7902]: /usr/local/go/src/runtime/sigqueue.go:116 +0x157
sep 09 09:38:52 vcs caddy[7902]: os/signal.loop()
sep 09 09:38:52 vcs caddy[7902]: /usr/local/go/src/os/signal/signal_unix.go:22 +0x22
sep 09 09:38:52 vcs caddy[7902]: created by os/signal.init.1
sep 09 09:38:52 vcs caddy[7902]: /usr/local/go/src/os/signal/signal_unix.go:28 +0x41
sep 09 09:38:52 vcs caddy[7902]: goroutine 6 [select, 2 minutes]:
sep 09 09:38:52 vcs caddy[7902]: github.com/mholt/caddy/caddytls.maintainAssets(0xc42000a900)
sep 09 09:38:52 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddytls/maintain.go:47 +0x498
sep 09 09:38:52 vcs caddy[7902]: created by github.com/mholt/caddy/caddytls.init.1

(I have so far been unable to find a simple testcase that produces this problem)
After a while it ended up eating 100% cpu and spamming thousands of these errors:

> sep 09 09:47:54 vcs caddy[7902]: goroutine 14702054 [sleep, 9 minutes]:
> sep 09 09:47:54 vcs caddy[7902]: time.Sleep(0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /usr/local/go/src/runtime/time.go:59 +0xe1
> sep 09 09:47:54 vcs caddy[7902]: github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP.func1(0xc42021c770, 0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:157 +0x2b
> sep 09 09:47:54 vcs caddy[7902]: created by github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:159 +0x44e
> sep 09 09:47:54 vcs caddy[7902]: goroutine 15021495 [sleep, 9 minutes]:
> sep 09 09:47:54 vcs caddy[7902]: time.Sleep(0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /usr/local/go/src/runtime/time.go:59 +0xe1
> sep 09 09:47:54 vcs caddy[7902]: github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP.func1(0xc42021c770, 0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:157 +0x2b
> sep 09 09:47:54 vcs caddy[7902]: created by github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:159 +0x44e
> sep 09 09:47:54 vcs caddy[7902]: goroutine 14621905 [sleep, 9 minutes]:
> sep 09 09:47:54 vcs caddy[7902]: time.Sleep(0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /usr/local/go/src/runtime/time.go:59 +0xe1
> sep 09 09:47:54 vcs caddy[7902]: github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP.func1(0xc42021c770, 0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:157 +0x2b
> sep 09 09:47:54 vcs caddy[7902]: created by github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:159 +0x44e
> sep 09 09:47:54 vcs caddy[7902]: goroutine 15094623 [sleep, 9 minutes]:
> sep 09 09:47:54 vcs caddy[7902]: time.Sleep(0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /usr/local/go/src/runtime/time.go:59 +0xe1
> sep 09 09:47:54 vcs caddy[7902]: github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP.func1(0xc42021c770, 0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:157 +0x2b
> sep 09 09:47:54 vcs caddy[7902]: created by github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:159 +0x44e
> sep 09 09:47:54 vcs caddy[7902]: goroutine 14763055 [sleep, 9 minutes]:
> sep 09 09:47:54 vcs caddy[7902]: time.Sleep(0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /usr/local/go/src/runtime/time.go:59 +0xe1
> sep 09 09:47:54 vcs caddy[7902]: github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP.func1(0xc42021c770, 0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:157 +0x2b
> sep 09 09:47:54 vcs caddy[7902]: created by github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:159 +0x44e
> sep 09 09:47:54 vcs caddy[7902]: goroutine 15109933 [sleep, 9 minutes]:
> sep 09 09:47:54 vcs caddy[7902]: time.Sleep(0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /usr/local/go/src/runtime/time.go:59 +0xe1
> sep 09 09:47:54 vcs caddy[7902]: github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP.func1(0xc42021c770, 0x2540be400)
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:157 +0x2b
> sep 09 09:47:54 vcs caddy[7902]: created by github.com/mholt/caddy/caddyhttp/proxy.Proxy.ServeHTTP
> sep 09 09:47:54 vcs caddy[7902]: /tmp/custombuild_6597_179179303/src/github.com/mholt/caddy/caddyhttp/proxy/proxy.go:159 +0x44e
> sep 09 09:47:54 vcs caddy[7902]: goroutine 15322344 [sleep, 9 minutes]:

I realise this isn't exacly a stellar report and I'll see if i can get some better info.

Aside from any bugs there may be, I think it should be possible to disable the health checking. When there is only one backend it should probably be disabled by default.

@martijnve Your issue may be a duplicate of #1045.

That seems to be true sorry. Shall I remove the logs or do they add some new info?

@kmanley Does this still happen if you disable HTTP/2? (-http2=false)

@mholt at your suggestion I disabled http/2 in my prod environment, will monitor for several days and report back. Thanks for the idea.

I tried v0.9.1 with -http2=false and I'm getting less 502 errors but still the problem is there. I tried with v0.9.0 and everything is fine there. This is very important issue because websocket are not working correctly on v0.9.0.

@mholt I am running in production with -http2=false; I did get one spurious 502 today but the underlying error was different. It came from ServeHTTP and the error was EOF.

Just chiming in in case this helps. I had the same issue and putting "max_fails 0" in the proxy directive fixed it for me.

0.9.2 did not fix this issue, but -http2=false still helps

Just wanted to stop by and mention that we appear to be getting these occasional 502's for a few internal services we run (but not all of them) including a python index (pypicloud) and Sentry.
Just upgraded to 0.9.2 so not sure if still happening, but above comment seems to answer that ;(

I just merged #1135 which drastically changes the logic regarding some of these parameters, and improves error reporting. I'm going to close this issue now in light of that, and would ask that all who have experienced this issue to pull the latest Caddy and try again -- note the changes in that PR may require a few minor changes to your Caddyfile for proper failover handling. (See the PR description for details.)
Also, unless a correlation can be exhibited between the 502 errors and the concurrent map accesses, I am treating them separately and will confine this issue to the 502 errors; we'll handle the issue with concurrent map accesses in another issue.
The changes will also go out with Caddy 0.9.3, so if you're not able to build from source, just wait for that release (coming any day now). Thank you!


resprite canisters

meh

good sprites, but why is the PR description empty?

looks weird

glurpy
no need

They are the same with some extra shades to make them look more shiny I'm just wondering if this is a better fit for the game's aesthetics than the current ones.

dont forget hueshifting and softening outlines


Example Pull Request

Example of the action in action (no pun intended)

No label was added, so the action will increment the path

The label version:minor was added. The minor version has been incremented

The label version:major was added. The major version has been incremented

The label version:minor was re-added. The minor version was incremented instead


Global middleware

Welcome!

[X] Yes, I've searched similar issues on GitHub and didn't find any.
[X] Yes, I've searched similar issues on the Traefik community forum and didn't find any.

What did you expect to see?
After the last version update, cross-namespace references have been disabled by default. While this is a good idea for security, it would be great if some middleware could be flagged as global/re-usable. That way the security still blocks references to services in other namespaces and most of the middleware in other namespaces, but select middleware can be allowed to be referenced.
Example:
Create a single middleware that redirects http to https and have multiple routers in multiple namespaces references the middleware.

@ldez I gave a specific use case, but what about any other middleware where someone wants to write it once and reuse it without granting the ability to access services in other namespaces?

@JasonN3 IngressRoute resources are able to reference middlewares that can be defined by any other provider.
So, for instance, you can totally define a middleware with the file provider and reference it from an IngressRoute.
With cross-provider references, there is no namespace constraint applied.
Does it make sense for your use case?

That does make sense, but it means you'll have to manage the middleware in two separate ways: your preferred provider for app specific configurations and a separate provider for global configurations. There's currently a bug where you can reference something in another namespace by defining it as a cross-provider reference even if it's still in the same provider, but hopefully that gets fixed at some point since it currently defeats the purpose of allowCrossNamespace=false.
The point of this feature request was to allow someone to still use a single management system (CRDs in my case) while still being able to create global resources that can be reused across namespaces and without disabling the security of blocking access to resouces in most other namespaces.
Example setup of what I'm proposing:
main config:
allowCrossNamespace: false
globalResourcesNamespace: traefik-resources

global middleware:
apiVersion: traefik.containo.us/v1alpha1
kind: Middleware
metadata:
  name: test-redirectscheme
  namespace: traefik-resources
spec:
  redirectScheme:
    scheme: https

ingressroute:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: ingressroute
  namespace: someapp
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`example.net`)
      kind: Rule
      services:
        - name: s1
          port: 80
      middlewares:
        - name: test-redirectscheme
          namespace: traefik-resources

The security constraint for references would then become "namespace == current_namespace or namespace == global_namespace" instead of just "namespace == current_namespace".

Hello @JasonN3,
I do understand the solution your are proposing, it is pretty clear.
Thus, i think i need more insights to better understand your use case.
You could achieve what you wants by limit each instance of Traefik to two namespaces and allow cross namespace. One namespace would be the namespace specific to that Traefik instance (a tenant), and the other would be the shared namespace in which you would declare your common resources (middleware).
WDYT?

That would result in a lot of management overhead especially in larger environments. Depending on how many apps you have or how you break out your namespaces, you would end up with a lot of Traefik instances. In addition, you wouldn't be able to share a kubernetes service across the apps so it could potentially result in a lot of IPs/ports being used just for Traefik. It also would remove the ability to route based on the url path since the backend services may be in multiple namespaces.


doc turning off css import in ember-cli-build

I dug this up from https://github.com/aexmachina/ember-notify/issues/29
It's a feature worth documenting. As a new user I was looking for this specifically, because I've been given a prototype with css but no logic, and it looks like this tackles the hard parts (like turning off for tests).

Thanks!


LA-377 Update rsoprivatecloud/openstack-ops SHA

This change brings in updates to how the support key for Nova is
managed which should address failures being seen in testing. This SHA
update also pulls in other changes.
Issue: LA-377

recheck_cit_trusty_leapfrogupgrade_swift

recheck_cit_trusty_leapfrogupgrade_swift

recheck_cit_trusty_leapfrogupgrade_swift

recheck_cit_trusty_leapfrogupgrade_swift

We need another vote...


docs(responsive docs): intro examples now responsive

:tada: This PR is included in version 1.8.0 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Parsley's pattern attribute handling doesn't match the HTML5 spec

The HTML5 spec states the following for the pattern attribute:

The compiled pattern regular expression, when matched against a string, must have its start anchored to the start of the string and its end anchored to the end of the string.
Note: This implies that the regular expression language used for this attribute is the same as that used in JavaScript, except that the pattern attribute is matched against the entire value, not just any subset (somewhat as if it implied a ^(?: at the start of the pattern and a )$ at the end).

Parsley doesn't anchor the regexp it reads out of a pattern attribute so patterns which would result in a failure with raw HTML5 browser validation start allowing values through once Parsley is included.
See test case: http://jsfiddle.net/9kg8g9w0/3/
If Parsley only used it's own attributes (data-parsley-pattern) then I think this differing behaviour would be fine. Since it's pulling from HTML5 validation properties I'd personally expect its behaviour to match that of a HTML5 validation on the same property.

I agree, at least for "standard" regex.
Parsley also extends regex by accepting a full pattern (e.g. "/hello/i"). These could remain unanchored?
v2.1/3.0 would be a good occasion for this.

Agreed, there should probably be some way of specifying a full pattern as well. I'm wondering if it should only be allowed via a parsley specific attribute though?
My thinking; if it's specified in the pattern attribute and the page ends up falling back to HTML5 validation (say, Parsley doesn't load or JS is disabled) then the validation is going to behave differently. E.g. /.{0.5}/i in the pattern attribute would look for the literal / and i characters within your input (and it's still anchored automatically by the browser too).

It's true that we're "incompatible" if pattern is set to /.{0.5}/i as this will be interpreted literally in HTML5. On the other hand, I just can't see anyone using such a pattern for real. If they really need that (say they want someone to enter a regex?!?), they can escape the /, like \/.{0.5}/i would be the same in parsley and html5.
In short, I can sleep peacefully with such an "incompatibility", it should just be noted in the specs.
The main question though is this: should "extended" regex be anchored too or not?

@guillaumepotier Any opinion on the above?

I like to current data-parsley-pattern behavior, highly permissive and powerful. The html5 incompatibility though is a problem.
Maybe we might keep data-parsley-pattern like it is, but do some extra work when binding html5 pattern attribute to this validator, and manually anchoring like the html5 spec states.
Dunno if there is an elegant way to do it though and if it would make sense.

@guillaumepotier  It's your call!
I had started coding a change to anchor patterns, except if they look like /pattern/flag (see branch), but if you'd rather introduce a difference between pattern and data-parsley-pattern that could work too.
So IIUC your proposal, pattern="a" would be equivalent to data-parsley-pattern="^a$"?
And pattern="/a/" would be equivalent to data-parsley-pattern="^/a/$", i.e. a regex like /^\/a\/$/?

Either way, these are potentially breaking changes...

Merged in master. Patterns are now anchored, unless they are of the form "/pattern/flags"


Looooooooooooooooooong numbers

See:

Compared to:

There must be a JS library we can use to make big numbers look a bit more elegant

This is the code used in Dashing, which seems pretty simple to adapt:
https://github.com/Shopify/dashing/blob/master/javascripts/dashing.coffee#L16-L25

Oh, we have this code here https://github.com/theodi/bothan/blob/7b0d1455fffd773f669aa69b5321079fc059dae8/lib/public/javascripts/metrics.js, just need to actually use it!


Improve tag string initialization

I'd like a better way to initialize and store tags used in file processing, such as:
const std::array<char, 4> TagVOL_{ 'V', 'O', 'L', ' ' }; // Volume file tag

In particular, it would be nice if we could use a string literal "VOL ", while also maintaining a strictly controlled struct size of 4 bytes.

I went back to the StackOverflow question about initializing a std::array<char, N> with a string literal, and omitting the trailing null, and did some reading and experimentation. What was posted works, and by adding a few constexpr, I was able to get g++ to do compile time initialization of static const variables. I think this would be really good for what we are doing here.
I'm about to take a break, so for now I'll post my experiment:
#include <array>
#include <utility>
#include <iostream>

template<std::size_t N, std::size_t... IndexSequence>
constexpr std::array<char, N - 1> stripNullTerminator(const char (&string)[N], std::index_sequence<IndexSequence...>) {
  return {{string[IndexSequence]...}};
}

template <std::size_t N>
constexpr std::array<char, N - 1> stripNullTerminator(const char (&string)[N]) {
  return stripNullTerminator(string, std::make_index_sequence<N - 1>());
}

template<std::size_t N>
class NonNullTerminatedString {
public:
  constexpr NonNullTerminatedString(const char (&string)[N + 1]) : string(stripNullTerminator(string)) {}
  operator std::string() const {
    return std::string(string.data(), string.size());
  }
  friend std::ostream& operator << (std::ostream& out, const NonNullTerminatedString& nonNullTerminatedString) {
    return out.write(nonNullTerminatedString.string.data(), nonNullTerminatedString.string.size());
  }
private:
  std::array<char, N> string;
};

using Tag = NonNullTerminatedString<4>;

constexpr auto TagVol_ = Tag("VOL ");
constexpr auto TagVolh = Tag("volh");
constexpr auto TagVols = Tag("vols");
constexpr auto TagVblk = Tag("VBLK");
constexpr std::array<char, 4> tag2 = {'V', 'O', 'L', ' '};
const std::string s2(tag2.data(), tag2.size());

int main() {
  auto a = stripNullTerminator("Some string");
  std::cout << a.size() << std::endl;
  std::cout << s2 << std::endl << std::endl;

  std::cout << TagVol_ << std::endl;
  std::cout << TagVolh << std::endl;
  std::cout << TagVols << std::endl;
  std::cout << TagVblk << std::endl;

  return 0;
}

I'm uncertain if I really want to wrap std::array in a new type. I'm uncertain if I want the template helper methods global or wrapped in a new type or namespace. I'm uncertain if the recursive templates and parameter packs are really necessary, or if there might be a more clear way to implement this. I believe the variables could be declared as const rather than constexpr, though using constexpr may provide additional checks, and may change output.
I may also want to re-read and perhaps summarize some of the relevant articles. In particular:
Parameter pack
std::integer_sequence and std::index_sequence
constexpr
LiteralType
RIP index_sequence, 2014-2017

Thanks for working on this. I've never used friend and I'm not really familiar with constexpr so this effort seems a bit out of my knowledge right now. If we end up just sticking with the const std::array in the end I would be okay, although the easier syntax would be nice.
An intermediate option might be for a using statement to hide the const std::array<char, 4> part. It doesn't solve the awkward initialization char list though.

Hmm, you might be right in that I could probably use a using alias instead of a new class. Might want to shorten the name of the method that creates the std::array in that case though, or provide an alias to it. Perhaps something like:
using makeTag = stripNullTerminator<4>;

static const auto TagVol_ = makeTag("VOL ");

The constexpr is like const, except that it can be computed at compile time rather than run time. In some cases it's an error to pass a non-compile-time value. In other cases, such as on a method definition, you can get compile time constexpr behaviour for literal values, while otherwise it falls back to const and a run time call for non-literal values. Very handy, and lets you do both compile time and run time computations with the same code.
As for friend, all you need to know is that friends are allowed to touch your private members :wink:


fix listbox arrowSize jsdoc default

In the listbox builder, there is no default value for arrowSize. However the JSDoc claims the default is 8.
I set the default in the JSDoc to undefined.

I want to say this gets set by the default "popper"/floating configuration. Is this not true?

I want to say this gets set by the default "popper"/floating configuration. Is this not true?

@huntabyte it doesn't. The popper and floating don't take any arrowSize option. floating ui relies on the arrow dom element for its calculations.


Could not find class 'android.graphics.drawable.RippleDrawable'

Maybe nothing major but i see these errors thrown when i have a layout with the FAB button. Any idea what goes wrong?
Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method com.github.clans.fab.FloatingActionButton.createFillDrawable
Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method com.github.clans.fab.FloatingActionButton.onActionDown
Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method com.github.clans.fab.FloatingActionButton.onActionUp

What's your targetSdkVersion?

Hi
The tarketSDK is 23
Any idea what it could be?
Peter
On Fri, Sep 25, 2015 at 3:53 AM, Drew Carlson<EMAIL_ADDRESS>wrote:

What's your targetSdkVersion?
—
Reply to this email directly or view it on GitHub
https://github.com/Clans/FloatingActionButton/issues/130#issuecomment-143003832
.

I didn't realize these were runtime errors, these can be safely ignored. It may be worth the effort to prevent Api 21+ methods from being called on older Android versions.

Indeed. But i assume the library should check this and not me in my own code?

Yes, it would need to be handled internally.

:+1: waiting for new release without this error.

Has this error been sorted in the latest build? I keep getting crashes for SDK19 using this.

I have the same errors , does anyone the solution for it?I tried for both targetSdkVersion 23 and my device api that is prelollipop but can't resolve it.

Hi,
still having this error with device api 18,
how to fix it plz ?

Just include : compile 'com.android.support:support-annotations:XXXX'
Solve the problem, it was fix in code with annotation @Target...

anyone try to code FAB inside service class? .. because i want FAB move around the screen and also i can multi task.
example: while FAB on my screen, i can use any app i can tap what i want.
actually i've done this before but in simple button not FAB.

i've just seen this error
Could not find class 'android.graphics.drawable.RippleDrawable', referenced from method com.github.clans.fab.FloatingActionButton.createFillDrawable

this causes the layout inflating to fail since the ripple effect is specified in the XML.
i'm targeting SDK15, device is running SDK17 and building with SDK25.


Configure Initial Setup for SAP Mobile Cards

Tutorial URL: https://developers.sap.com/tutorials/cp-starter-digitalexp-mobilecards-1-setup.html
Please specify the step you are referring to:Step 2
Hi SAP Team,
Under Step2, " Mobile Services cockpit " shows a Message that "
Mobile Services is not enabled. The service is required for upgrade. Check SAP Help Portal for instructions."
Further again in Ste2,  at sub step(9), when I switch back to "Mobile Services cockpit', there is no popup being shown asking me to enter the API Key.
What could be the issue? Could you please check?
Thank you,
Jakes

@jakes2255
Regarding warning message "Mobile Services is not enabled" -  this is due to there is new release of mobile services rolled out in CF recently.
you may check details here: https://help.sap.com/viewer/468990a67780424a9e66eb096d4345bb/Cloud/en-US/a27b7a29aeec4201b7faf684e93c71df.html
For another issue - regarding pop up..
Could you share details? When you navigated to "SAP Mobile Cards" tab, Had you already initialized mobile cards instance?
Could you also check in SAP Mobile Cards > Features > Mobile Connectivity , if you already have SFDEMO_APIHUB destination.

Thank you Jithendra,
Yes, I had ignored the warning message and proceeded to complete the  steps as mentioned in the tutorial.
Regarding the second issue:-
Still not getting the popup as mentioned at "Switch back to Mobile Services cockpit"

What could be the issue?
Is this not available on the trial users on cf?
Please see when you have some time.
Thanks,
Jakes

@jakes2255
Tutorial you are following is created with CF trial only.
You need to create the destination first.
Follow step here https://developers.sap.com/tutorials/cp-starter-digitalexp-mobilecards-1-setup.html#e0acd616-fe0b-4bec-8189-e2533d08f1ea
You need to navigate to template manager, select any SFSF template, click create. It would ask you to enter API key that can be retrieved from api.sap.com as per instructions. Once you provide this key, you should see "destination" creation message.
Pls give it a try and keep me posted.

Thank you Jitendra,
I am also trying the same in CF trial.
However when trying to create the SF destination, there is no popup asking for API key is coming.
Thank you,
Jakes

@jakes2255
maybe we can check it together, what about a short call in next 30 mins? Are you available? pls drop me a note on my email address
jitendra.kansal@sapdotcom

Sorry Jithendra, I saw your response late.
I have sent you a meeting invite for 4pm today, please revert if you are not available on that time.
Thank you,
Jakes

Now that this is taken offline, I am closing the issue. But @jitendrakansal if you want to describe how you resolved the issue, feel free to add a comment.

Thank you Jitendra for resolving both the issues👍👍👍

For the first upgrade was performed.
Pop up started appearing when attempted with URL upto ....index.html on the cockpit.

Also many thanks for taking out through the upcoming "Recipe" based development as well.
Thanks a lot.👍👍👍
Kind Regards,
Jakes

Glad that i was able to help. Thanks.

@jakes2255, I am having the exact same problem. No popup for API key after I click the "Create" button against the SF template - in this case, the timesheet one. I have the API key, but nowhere to paste.
Were you able to resolve this?

Hi @mukhutis ,
Yes we were able to get this resolved.
Please copy the URL upto ".....index.html" and then open the link in Chrome Incognito window.
Are you able to proceed?
Are you getting the API pop up.
If not, are you getting a warning for upgrade?
Thanks,
Jakes

Hi @jakes2255,
Problem resolved, but the solution was somewhat different.

I start with URL up to "...index.html" and open in Chrome incognito, it takes me to the SAP Mobile Cards Home Page.

Then when I navigate to Mobile Applications -> SAP Mobile Cards -> Template Manager, it adds the hashed navigation "...index.html#/page.view.sapcards/com.sap.mobile.platform.cards"

At this stage, I removed the portion after index.html but did not press Go, since it will take me to step 1 (home page)

as soon as I click create button, the hashed navigation changes to "../index.html#/page.create.sapcards" with no pop-ups to add API key or warning to upgrade.

I did saw something popping up momentarily before disappearing despite popup blockers being disabled. I tried a different browser as well with no luck.
Then I tried the same steps in incognito but with a different SuccessFactors card than the one I was trying. This time, the pop up came and the destination was added.
Now I am able to find the SFDEMO_APIHUB destination in all other SuccessFactors card as well including the original card. Problem solved!
Thanks
Subh

Glad to hear it worked out Subh, enjoy.
Thanks,
Jakes


merged ddraw7 and d3d8 primary buffers

Hi!
Do you remember me? I'm ghotik, the author of DxWnd. We had several exchanges of opinions and source code in the past.
Now I got a Chinese game (The Legend Of Dragon's Son - 龍狼傳破凰之路) that behaves in a curious way. The whole long story is here https://sourceforge.net/p/dxwnd/discussion/general/thread/f2f17c810e/#bf69 but to cut that short it just seems that during some troublesome 3D scenes the game does this:
renders the frame with D3D8, then it assumes that the D3D8 front buffer is coincident with the DDraw7 front buffer and uses DDraw7 to lock-read-update-unlock the front buffer to add a spinning cursor to the scene.
This assumption seems working on old systems / video cards, but on a modern Win10+ system the two front buffers seem no longer coincident, so the final result is a wrong scene displayed on screen.
I am seeking for some c++ code example to change the IDirect3DDevice8::Present wrapper and copy the whole surface to a ddraw primary surface. Do you have any advice?

Never mind, I got a solution by locking the d3ddevice backbuffer with LockRect, the primary ddraw surface with Lock and then looping memcpy for each scanline taking in account for the different pitch values of the two surfaces. It seems to be working well enough.
I think I did this also recycling some code borrowed from your sources, so thank you anyway.


Cannot find module 'reflect-metadata'

Bug report

What is the current behavior?
When i generate a bundle, it gives me Cannot find module 'reflect-metadata'.
If the current behavior is a bug, please provide the steps to reproduce.

Here is a repro steps repository.
To ensure steps:

execute npm run tsc && npm run webpack
get file /bundle.js and move to other folder without node_modules, execute node bundle.js in moved file.

Then, will get:
Error: Cannot find module '/home/schinaider/bundle.js'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:581:15)
    at Function.Module._load (internal/modules/cjs/loader.js:507:25)
    at Function.Module.runMain (internal/modules/cjs/loader.js:742:12)
    at startup (internal/bootstrap/node.js:283:19)
    at bootstrapNodeJSCore (internal/bootstrap/node.js:743:3)

https://github.com/victorschinaider/webpack-test-bug
What is the expected behavior?
I expected that when i generated the bundle file, i could move file to other folder and execute node bundle.js and get what i wanted to execute.

Other relevant information:
webpack version:  4.29.6, 3.3.0 (cli)
Node.js version: v10.15.0
Operating System: Ubuntu
Additional tools:

Looks something wrong in https://github.com/liady/webpack-node-externals/, can you try to disable webpack-node-externals and check again

@evilebottnawi , it works. But this example was only a part of "full code", if i do not use "nodeExternals", then i get "Cannot find module "fs"", and "Cannot find module "tls"", etc. Any suggestion?

Thanks!


Update CONTRIBUTORS.md

@k-Rohit Mention in your PR the issue that this is concerned with. Its a good practice even if it's just a small issue.

Yeah sure from the next time I will take care. First time contributing so..


Can TagUI run on smartphones like Android and iPhones?

from user query, on running on smartphones to bypass company internet restrictions -

So all their laptops cannot access internet.
When I told them that TagUI can also run on linux, one of them asked: if his smartphone has linux, can TagUI run on his smartphone?
They are keen about this because their laptop has no internet, and it's too troublesome for them to bring their laptop from home. So if their smartphone can run TagUI on linux, it would be really cool!
Theoretically, I don't see any reason why TagUI cannot run on linux on smartphone or tablet. I heard Surface Pro can run linux too.
Have you tried this before?
If it can run, I think TagUI should also run on an jailbreak iPad/iPhone.

short answer - no
long answer
Their laptops can't access internet, but they can use on their intranet webpages. Android is a variant of Linux but a normal phone doesn't have provision for user to use the terminal or have root access to install software via terminal to run, so it should unlikely be possible. Also the Chrome on the Android would probably behave differently from the Chrome desktop browser.
I have heard that people run PhantomJS successfully on Raspberry Pi, so for those mini-computers TagUI should be able to work, as the Linux OS on the device allows normal installation of software and root access.
Surface Pro can run Linux has no use for this use case, because if the Linux on it works, then might as well run TagUI directly on the Surface Pro Windows OS. The reason for the network and firewall block is from the network hardware / software layer. And unlikely can be hacked by using a Linux shell on the Windows.
iOS is a variant of the macOS which is a cousin of Linux. Perhaps.. But I would think an easy and readily available solution now is simply use remote desktop software, eg TeamViewer. Using this software on Android or iPhone works. And can connect to the user's laptop or desktop at home to run and config the automation as required.

Hi @kensoh
Recently I installed "Debian noroot" app on android wich is a linux emulator.
it runs well on tablet Galaxy (with external mouse a BT keyboard).
(https://play.google.com/store/apps/details?id=com.cuntubuntu)
I didn't try to launch TagUi for now, because my linux Knowledges are limited.

Thanks @adegard for sharing the good info! It might only work in PhantomJS mode, because current versions of Firefox are not compatible with SlimerJS (https://github.com/laurentj/slimerjs/issues/694). Also copying @Aussiroth.


SandboxServiceAsync is missing.

The Java file 'org.kaaproject.kaa.sandbox.web.shared.services.SandboxServiceAsync' is missing.

This interface is generated by gwt-maven-plugin from org.kaaproject.kaa.sandbox.web.shared.services.SandboxService
You can run mvn clean compile from the root directory of sandbox-frame app and find the this file under sandbox-frame/web/target/generated-sources/gwt/org.kaaproject.kaa.sandbox.web.shared.services.SandboxServiceAsync
More info about generating Async interfaces you can find here:
https://gwt-maven-plugin.github.io/gwt-maven-plugin/user-guide/async.html


Rename CredentialRecord and ProofRecord to CredentialExchangeRecord and PresentationExchangeRecord

We've had discussions about this before and I'm not sure why we didn't go with the exchange naming. Mainly why I'm bringing it up again is because the current API is confusing.
We have a CredentialRecord that contains an id and credentialId where the id is the id of the credential record and the credentialId maps to the indy credential id. It's confusing.
By calling it a credential exchange record it's more clear: The credential exchange record has an id. This is the id of the credential exchange. It also has a credentialId which maps to the credential.
Another thing why I think we should call it exchange is future proofing. If we're going to add support for non-indy credentials we need to add a record to store these credentials. CredentialRecord would be a good match I think.
@jakubkoci If I remember correctly, you were against this last time we discussed. I'd like to hear your opinion on it

I see. The reasoning behind certainly makes sense in the way that the  CredentialRecord actually records the exchange of issue credential protocol messages. But let me just show some examples if I understand the change:
class CredentialRecord {
	id: number,

  // represents relation CredentialRecord -> Credential
  credentialId: number
}

class Credential {
	id: number,
}

Do I understand correctly you’re suggesting the following update:
class CredentialExchangeRecord {
	id: number,

  // represents relation CredentialExchangeRecord -> Credential
  credentialId: number
}

class Credential {
	id: number,
}

Maybe let's look at some examples of the API calls. I can imagine this one:
const credentialRecord = await agent.credentials.getById(credentialRecord.id);
await agent.credentials.acceptOffer(credentialRecord);

vs.
const credentialExchangeRecord = await agent.credentials.getById(credentialExchangeRecord.id);
await agent.credentials.acceptOffer(credentialExchangeRecord);

I agree with @TimoGlastra that the current API is confusing--as of right now the differences between id and credentialId are not naturally apparent. I think your API example @jakubkoci could lead to revealing some of the benefits that changing the naming convention.
API as an example/proposal:
const credentialExchangeRecord = await agent.credentials.exchange.getById(credentialExchangeRecord.id);
await agent.credentials.exchange.acceptOffer(credentialExchangeRecord.id);

const credentialRecord = await agent.credentials.getById(credentialRecord.id);
//Display Credential
credentialRecord.attributes.map(() => { ... };

To compare the two points of view, as you have suggested @jakubkoci (as I understand):
//Credential Exchange Record
agent.credentials.getById(id)
//Credential Record
agent.credentials.getById(id)

I personally think the above calls end up being ambiguous and confusing as to what the differences are between the two (as the only differences are in what they return). I think that adding an additional layer to the module/API definitely makes it immediately clearer as to how this is to be used.
agent.credentials.exchange.getById(id)
agent.credentials.getById(id)

You could even have the credential be at that sublevel as well, which could potentially be beneficial for future work (such as revocation?) or code structure-wise:
agent.credentials.exchange.getById(id)
agent.credentials.credentialRecord.getById(id)
agent.credentials.revocation.revokeCredentialById(id)

One benefit here that comes as an outcome is that we can likely more easily split out the credential Record validation into it's own class--which could help address #187.

I'm just putting the full example of API from my perspective for comparison while thinking through your suggestions :)
// I want to get credentialRecord to accept offer
const credentialRecord = await agent.credentials.getRecordById(credentialRecord.id);
await agent.credentials.acceptOffer(credentialRecord.id);

// I want to show credential details in UI
credentialRecord.attributes.map(() => { ... };

// I need the Indy credential itself for some other reasons (integration tests according to AIP for example)
const credential = await agent.credentials.getById(credentialRecord.credentialId);

I agree with @JamesKEbert on this one, and really like the nesting for categorization.
@jakubkoci The distinction you make between Credential and CredentialRecord is not clear to me. To me they both indicate a credential. Where one may be the storage format, and the other the processing format. E.g. in ACA-Py we now have a VCRecord that stores the VC, adding tags and other stuff for it to be searchable from storage. After retrieving it from storage it is parsed to a VerifiableCredential class that represents the actual structure of a verifiable credential, not the storage structure of the credential.
Maybe I'm too deep into the ACA-Py architecture, but I just can't interpet the difference between Credential and CredentialRecord as you mean. Especially when looking at the API.
IMO this (from James comment) leaves so much less to the imagination, and assumption capabalities of the developer or framework consumer
agent.credentials.exchange.getById(id)
agent.credentials.credentialRecord.getById(id)

// maybe this
agent.credentials.getById(id)
// agent.credentials.revocation.revokeCredentialById(id)

than this:
const credentialRecord = await agent.credentials.getRecordById(credentialRecord.id);
const credential = await agent.credentials.getById(credentialRecord.credentialId);

// I want to get credentialRecord to accept offer
const credentialExchangeRecord = await agent.credentials.exchange.getById(credentialExchangeRecordId);
await agent.credentials.exchange.acceptOffer(credentialExchangeRecord.id);

const credentialRecord = await agent.credentials.record.getById(credentialExchangeRecord.credentialRecordId);
// I want to show credential details in UI
credentialRecord.attributes.map(() => { ... };

// I need the Indy credential itself for some other reasons (integration tests according to AIP for example)
const credential = await agent.credentials.getById(credentialRecord.credentialId);

I’ve been studying Domain-Driven Design lately and I realized that maybe we could apply some ideas from that.

What if we do not expose Record classes at all?
What if we put together data from CredentialRecord  and IndyCredential when the user asks for credential(s)?

To me, it’s weird to have the following API because I get a Record from both but recrods is mentioned only in on of them:
const credentialExchangeRecord = await agent.credentials.exchanges.getById(credentialExchangeRecord.id);
const credentialRecord = await agent.credentials.records.getById(credentialRecord.id);

We would have something like this instead:
const credentialExchange = await agent.credentials.exchanges.getById(credentialExchange.id);
const credential = await agent.credentials.getById(credential.id);

Every repository would need to transform/convert Record from/to a domain object. Domain object wouldn't need to contain tags, which is duplicated information anyway.
Open Issues:

I’m still not sure how the Credential domain object should look in relation to CredentialInfo/Cred.
It’s a question of how searching wallet for credentials when calling credentials.getAll() can impact performance. It could be partially solved by prohibiting to call getAll() and allow only calling it with some filter findByFilter(filter)   plus add getAllMetadata() which would return objects without IndyCredential itself.


Update from upstream

@ladyada
I attempted to resolve the conflicts, I'm unsure if I've done so correctly without breaking the DSK type stuff that you added previously.
A few specific bits I don't know about

In imagewriter.proto I changed

optional DskOutputProto dsk = 8

to
optional DskOutputProto dsk = 10

because upstream introduced a different type assigned at 8.

In imagewriter.cc ImageWriter::updateConfigForFilename was removed from the upstream, but ours had been modified to add the .dsk stuff. I brought it up from ours into this version, but I don't know whether we truly need it still or if there would need to be change elsewhere to hand dsk now.

wrong repo, sorry


Model replace set created_at and updated_at to 0000-00-00

When using replace function to update or insert into the table it works but set created_at and updated_at to 0000-00-00.
codeigniter v4.1.4

@allyblaise
We would be happy if you could tell us what driver you are using and the minimum code to reproduce.

Yes. We have the issue template:
https://github.com/codeigniter4/CodeIgniter4/blob/develop/.github/ISSUE_TEMPLATE/bug_report.md
If you follow it, it would be a great help for us.

@allyblaise are you able to confirm this? if not or no further feedback, i'll promptly close this.

Closing this as no feedback received.


Logs not being flushed after x amount of time

Check CONTRIBUTING guideline first and here is the list to help us investigate the problem.
Describe the bug
I have an environment running Fluent-bit > Fluentd > Elasticsearch.
For a while my logs are flushed as they should, but after a while the logs stops being flushed and the buffer grows until the port gets blocked becuase of (overflow_action block).
What I have seen:
fluentd_output_status_num_errors is high for certain matches, however most matches have some errors.
Q: How do i view these errors? I dont see them in the logs even though I have tried with debug logging.
fluentd_output_status_buffer_queue_length is very high for two specific matches. These two matches have retry_max_interval 30, yet after a few hours they are still growing. These two matches are the only matches where I do an "include" only.
Q: How do i stop this from happening? Is there a way to see whats holding up the queue? I have checked the buffer path and the log which came in first is looking like a normal log which has been processed before.
To Reproduce

Expected behavior
The logs should constantly flow through, if there are any errors they should be printed in the logs.
Your Environment
Running in a container with:
repository: gcr.io/google-containers/fluentd-elasticsearch
tag: v2.4.0
Your Configuration
Here is my match block:
<match auth.keycloak.app>
   @type rewrite_tag_filter
   <rule>
     key log
     pattern /org.keycloak.events/
     tag keycloak.auth
   </rule>
 </match>

 <match keycloak.auth>
   @type rewrite_tag_filter
   <rule>
     key log
     pattern /type=(?<type>[^ ]+)(?<!,)/
     tag authorization.keycloak.$1
   </rule>
 </match>

    <match authorization.keycloak.**>
      @id elasticsearch-keycloak-authorization
      @type elasticsearch
      @log_level error
      log_es_400_reason true
      include_tag_key true
      host "#{ENV['OUTPUT_HOST']}"
      port "#{ENV['OUTPUT_PORT']}"
      scheme "#{ENV['OUTPUT_SCHEME']}"
      ssl_version "#{ENV['OUTPUT_SSL_VERSION']}"
      user client
      password "#{ENV['OUTPUT_PASSWORD']}"
      ssl_verify false
      logstash_format true
      logstash_prefix auth-keycloak
      <buffer>
        @type file
        flush_mode immediate
        path /var/log/fluentd-buffers/authorization-keycloak.buffer
        retry_type exponential_backoff
        flush_thread_count 2
        retry_limit 20
        retry_max_interval 30
        chunk_limit_size "#{ENV['OUTPUT_BUFFER_CHUNK_LIMIT']}"
        queue_limit_length "#{ENV['OUTPUT_BUFFER_QUEUE_LIMIT']}"
        overflow_action block
      </buffer>
    </match>
Any help is much appreciated!

Your Error Log
There is no error log! I see the problem through prometheus, buffer just keeps growing and does not drop until service has been redeployed or restarted.
<!-- Write your **ALL** error log here -->

Additional context

Please tell me if you want the full config. But I think I posted all the relevant parts.

Just found this:
2020-04-23 10:25:51 +0000 [warn]: #0 [elasticsearch-syslog] failed to flush the buffer. retry_time=9 next_retry_seconds=2020-04-23 10:26:23 +0000 chunk="5a3f2a6dbbe3f4401db5fd104f585ab1" error_class=Fluent::Plugin::ElasticsearchOutput::RecoverableRequestFailure error="could not push logs to Elasticsearch cluster ({:host=>"od-opendistro-es-client-service.logging.svc.cluster.local", :port=>9200, :scheme=>"https", :user=>"client", :password=>"obfuscated"}): read timeout reached"
2020-04-23 10:25:51 +0000 [warn]: #0 suppressed same stacktrace
How do I check the troublesome chunk?

Not seeing any fluentd_output_status_num_errors since I changed "overflow_action block" > "overflow_action throw_exception"
Anyone understand why this is the case?

How do I check the troublesome chunk?

Logs includes chunk id: chunk="5a3f2a6dbbe3f4401db5fd104f585ab1"
But the problem seems your elasticsearch cluster or network, not chunk itself. > read timeout reached"
No errors in your elasticsearch cluster? read timeout ofthen happens when your cluster doesn't have enough capacity.

Thanks for your reply @repeatedly , I will have a look at what you mentioned with the read timeout reached. Another question: Are all those errors I see in prometheus related to this? Or is there a more direct way for me to check what (fluentd_output_status_num_errors) are related to?

Now I'm getting this:
2020-05-14 21:19:33 +0000 [error]: #0 [elasticsearch-kube] [Faraday::TimeoutError] read timeout reached {:host=>"xxxxxxxxxxxx, :port=>9200, :scheme=>"https", :user=>"xxxxxxx", :password=>"xxxxxxxxxxxx", :protocol=>"https"}
Config:
    <match **.namespace>       @id elasticsearch-kube       @type elasticsearch       @log_level error       emit_error_for_missing_id true       with_transporter_log true       reconnect_on_error true       log_es_400_reason true       include_tag_key true       host "#{ENV['OUTPUT_HOST']}"       port "#{ENV['OUTPUT_PORT']}"       scheme "#{ENV['OUTPUT_SCHEME']}"       ssl_version "#{ENV['OUTPUT_SSL_VERSION']}"       user fluentd       password "#{ENV['OUTPUT_PASSWORD']}"       ssl_verify false       logstash_format true       logstash_prefix kube-namespaces       <buffer>         @type file         flush_mode interval         path /var/log/fluentd-buffers/kube-namespaces.buffer         retry_type exponential_backoff         flush_thread_count 2         flush_interval 3s         retry_limit 20         retry_max_interval 30         chunk_limit_size "#{ENV['OUTPUT_BUFFER_CHUNK_LIMIT']}"         queue_limit_length "#{ENV['OUTPUT_BUFFER_QUEUE_LIMIT']}"         overflow_action throw_exception       </buffer>     </match>
My other two matches work great, on is a syslog and the other one is a generic k8s audit log.
If i try to curl ES from another pod it works fine. Feels like there is some underlying cause which isn't getting printed out. Any ideas what I could do here @repeatedly .
I have tried:

https://github.com/uken/fluent-plugin-elasticsearch/issues/600
https://github.com/uken/fluent-plugin-elasticsearch/issues/732

Even though some of the suggested configs are default I set them anyway. Going crazy trying to debug something which doesent print enough usable logs. Any help is much appreciated!

I met the same issue. It seems that the buffer files size became over chunk_limit_size * queue_limit_length  with overflow_action block,fluentd will block,if I change  block to drop_oldest_chunk,logs being flushed.But I think it will lose some logs.Is there any better way to solve this issue?


Create function to for contract login, call login when EOA fails

Overview
This change adds the fallback logic for contract auth.
What this PR does / why we need it
We need this PR to introduce the logic for allowing authentication for web3 smart contracts.
Special notes for your reviewer
Does this PR introduce a user-facing change?

- Update EOA test to include contract login
- Add logic for contract login
- Add tests for contracts login

Made some suggestions in this branch:
https://github.com/DIMO-Network/dex/pull/185/files


Implement iso 8601 week year (%G)

I came across a client bug on 1st January 2020 due to the lack of this code.
There appears to be an in-limbo pull request on this already https://github.com/d3/d3-time-format/pull/52 or https://github.com/d3/d3-time-format/pull/49 but I don't see any Issues so have created this one!

Oh I see #42

Duplicate of #42 .


New iOS 13 integrations

Hi,
could you compile it for iOS 13. Thanks?

The problem was with pods.
to solve it I manually added the links for both GeoFire and Geofirestore with git flag.


Config Adapter Support

Currently the to-load config can only be JSON. Perhaps we can support other formats for which an adapter exists by asking the user to specify the adapter in the initial config.
Something like:
adapter := caddyconfig.GetAdapter(sl.Adapter)
return adapter.Adapt(config, nil)

Ref<EMAIL_ADDRESS>

Fixed in 01f6d0d11855d99587fe453b38633ed480522462


Confirmation - missing required keys: [:locale]

I'm newbie in Rails and I don't know what to do with tis error, please help:
ActionController::UrlGenerationError in Devise::Registrations#create
Showing /home/ubuntu/workspace/mamchut418/app/views/devise/mailer/confirmation_instructions.html.erb where line #5 raised:
No route matches {:action=>"create", :confirmation_token=>"24GGcednzrEXEzaR82AC", :controller=>"devise/confirmations"} missing required keys: [:locale]
Extracted source (around line #5):
3 |
<%= _('You can confirm your account email through the link below:') %>

4 |
5 |
<%= link_to _('Confirm my account'), confirmation_url(@resource, confirmation_token: @token) %>

Rails.root: /home/ubuntu/workspace/mamchut418
Application Trace | Framework Trace | Full Trace
app/views/devise/mailer/confirmation_instructions.html.erb:5:in `_app_views_devise_mailer_confirmation_instructions_html_erb___1326125006769773887_55918960'
Request
Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"pY7ApWH/WTOVTFGifeV7QbubuNch/EzCJWjaXg7t+i5iYpI=",
<EMAIL_ADDRESS>"password"=>"[FILTERED]",
"password_confirmation"=>"[FILTERED]"},
"commit"=>"Registrovať",
"locale"=>"sk"}
Toggle session dump
_csrf_token: "pY7ApWH/WTkukoOVTFGifeV7QNch/EzCJWjaXg7t+i5iYpI="
locale: "sk"
session_id: "01f6f1f89089a5ef29326e80b0d44f79"

Based on the error, it looks like you need to pass in the locale option on the configuration_url helper, that should work.
Please use the mailing list or stack overflow for questions, we reserve the issues tracker for issues. Thanks!


Add an example on model usage

Could you add an example on how to apply a saved model?
Example

lets say i split my data 1:1
I run one of the example snippets to obtain a trained model for the first half of the data
How do i apply this model on the other half (to obtain projections) of the data?

I've now added the possibility to handle your scenario, by providing an additional argument that loads a previously saved model. This assumes you just want to get embeddings for the provided input file.
A simple example is described in examples/cellvgae_save_and_load.txt:
# Train a model as usual and save to the specified directory

python -m cellvgae --input_gene_expression_path "data/paul15_myeloid_scanpy.h5ad" --hvg 1000 --khvg 250 --graph_type "KNN Scanpy" --k 10 --graph_metric "euclidean" --save_graph --graph_convolution "GAT" --num_hidden_layers 2 --hidden_dims 128 128 --num_heads 3 3 3 3 --dropout 0.4 0.4 0.4 0.4 --latent_dim 50 --epochs 50 --model_save_path "model_saved_out"

# Use --load_model_path to specify a previously saved PyTorch model/state_dict after providing all hyperparameters.
# The new embeddings will be saved to the directory specified by --model_save_path

python -m cellvgae --input_gene_expression_path "data/paul15_myeloid_scanpy_test.h5ad" --hvg 1000 --khvg 250 --graph_type "KNN Scanpy" --k 10 --graph_metric "euclidean" --save_graph --graph_convolution "GAT" --num_hidden_layers 2 --hidden_dims 128 128 --num_heads 3 3 3 3 --dropout 0.4 0.4 0.4 0.4 --latent_dim 50 --load_model_path "model_saved_out/cellvgae_model.pt" --model_save_path "model_saved_out" --umap --hdbscan


Error: npm link not supported on windows

C:\nodejs\jsdom>..\npm link -g
npm ERR! Error: npm link not supported on windows
npm ERR!     at EventEmitter.link (C:\nodejs\node_modules\npm\lib\link.js:33:13)
npm ERR!     at Object. (C:\nodejs\node_modules\npm\lib\npm.js:190:11)
npm ERR!     at EventEmitter. (C:\nodejs\node_modules\npm\bin\npm-cli.js:77:27)
npm ERR!     at Array.0 (native)
npm ERR!     at EventEmitter._tickCallback (node.js:192:40)
npm ERR! Report this entire log at:
npm ERR!     http://github.com/isaacs/npm/issues
npm ERR! or email it to:
npm ERR<EMAIL_ADDRESS>npm ERR!
npm ERR! System Windows_NT 6.1.7600
npm ERR! command "C:\nodejs\\node.exe" "C:\nodejs\node_modules\npm\bin\npm-cli.js" "link" "-g"
npm ERR! cwd C:\nodejs\jsdom
npm ERR! node -v v0.6.5
npm ERR! npm -v 1.0.106
npm ERR! code ENOTSUP
npm ERR!
npm ERR! Additional logging details can be found in:
npm ERR!     C:\nodejs\jsdom\npm-debug.log
npm not ok

+1, this is annoying -  it makes Windows a less practical platform for developing node packages.  Encountered on npm version 1.1.0-alpha-6

@Fauntleroy Someone correct me if I'm wrong, but I believe Windows XP has no symlink support and Vista and 7 require root privileges to create one.

XP does not have symlink support, Win 7 and Vista do (if you're an administrator, or run cmd as an administrator). It would be better to attempt to symlink in Win 7/Vista than to not try at all--I'm fine with the caveat of running cmd as an admin.

I agree with this.  An error message saying "Link requires administrative privileges" would be totally fine.  And I would find link to be useful for developing modules locally that depend on eachother.


Using strings for role

Could we add string based roles to P4Runtime. The idea is that a string is much more readable (e.g. "tunnel manager") than to use an id (e.g. 1).
message WriteRequest {
  uint64 device_id = 1;
  uint64 role_id = 2;          // deprecated
  string role_name = 6;     // new
  Uint128 election_id = 3;

// ...

message SetForwardingPipelineConfigRequest {
  // ...
  uint64 device_id = 1;
  uint64 role_id = 2;          // deprecated
  string role_name = 6;     // new
  Uint128 election_id = 3;
  Action action = 4;
  ForwardingPipelineConfig config = 5;
}

@antoninbas @stefanheule
What do you think about this idea? If this seems reasonable, I'm happy to send out the PR to change the spec.

Seems very reasonable, I'm a big fan of making things easier to debug/understand. If someone still prefers an integer as the role, they can still do that by encoding it as a byte-string (or even a regular string), so this is not limiting any prior usecases either.

It appears that performance concerns are less of an issue for the role, since it is only once per WriteRequest as probably the most frequent message it appears in.
This might tread into "number of angels that can dance on the head of a pin" kinds of discussion, but does this mean that a P4Runtime server must continue to support role_id until and unless it upgrades to a version of P4Runtime API that explicitly breaks backwards compatibility and drops role_id completely?

Let's discuss this in tomorrow's meeting. In general, the way we've handled this is by returning UNIMPLEMENTED for any feature that we don't support (of which there are many).


fix: replace tx-c-legacy sub-dependency omejdn with daps-server 1.8.0

Description
The included dependency subchart in the tractusx-connector-legacy chart in v0.5.0-rc1 does not work as intended (configuration of daps not correctly).
Therefore the latest daps-server chart will be configured directly to the umbrella chart.
This change then will resolve in a working infrastructure for EDC v0.4.1.

Marco Lecheler<EMAIL_ADDRESS>Mercedes-Benz Tech Innovation GmbH (ProviderInformation)

Hey @evegufy! I guess this is also outdated now, so I would close it. What do you think?

Hey @evegufy! I guess this is also outdated now, so I would close it. What do you think?

@almadigabor yes, agree


How to get a list of the usernames that liked a comment?

Hello. I'm new to instaloader.
I've been using the following code to get a list of comments on a specific post:
    loader = Instaloader()
    insta_post = Post.from_shortcode(loader.context, SOME_POST_SHORTCODE_HERE)
    comments = insta_post.get_comments()
    # later logics here

it gives me a fine iterator of PostComment objects. for every comment you could use following attributes:
    comment.id
    comment.created_at_utc
    comment.text
    comment.owner
    comment.likes_count
    comment.answers

but as you can see there is no attribute that shows the usernames of those who liked each comment, there is only the number of likes on each comment.
Is there any way to get a list of usernames of those who liked a comment?

Hello! The PostComment objects do not contain who liked the comment. However, when opening Instagram in a browser and monitoring the requests in the browser's DevTools, you can see that when clicking on the likes of a comment the browser does a query with query_hash 5f0b1f6281e72053cbc07909c8d154ae that returns all the likes for a particular comment. With that information, it is easy to let Instaloader get all comment likers for us and even wrap them in a Profile structure, like so:
from instaloader import *

def get_comment_likers(
    context: InstaloaderContext, post: Post, comment: PostComment
) -> NodeIterator[Profile]:
    return NodeIterator(
        context,
        "5f0b1f6281e72053cbc07909c8d154ae",
        lambda d: d["data"]["comment"]["edge_liked_by"],
        lambda n: Profile(context, n),
        {"comment_id": comment.id},
        f"https://www.instagram.com/p/{post.shortcode}/",
    )

loader = Instaloader()
insta_post = Post.from_shortcode(loader.context, SOME_POST_SHORTCODE_HERE)
comments = insta_post.get_comments()

for comment in comments:
    print(f'"{comment.text}" by {comment.owner.username} has been liked by:')
    for liker in get_comment_likers(loader.context, insta_post, comment):
        print(f" - {liker.username}")

This would actually be nice to have as a method in PostComment.

This would actually be nice to have as a method in PostComment.

This would actually be nice to have as a method in PostComment.

Agreed, this would be fantastic to have!


Conflicting license terms

I was going to add this to awesome-zsh-plugins, but the license file and the readme have conflicting terms - the license file says MIT, but the readme says All Rights Reserved.

Feel free! Readme has been updated. I'll leave this open for now should you have any questions.

I'll also be converting it to an appropriate zsh theme. I can open up a PR when ready 👌

License updated, theme converted.
See PR.
Cheers!

Looks good, thanks


Debugger loses the call stack after entering a UI handler in test code

When debugging any test which has a UI handler, I can see the correct call stack until the code reaches the handler. After entering the UI code, call stack gets cleared and shows only the current method.

For example, it can be reproduced on the codeunit 137023 "SCM Reservation Worksheet", test method GettingDemandAndValidateFields. Call stack disappears when the test invokes the report "Get Demand To Reserve".
If a test calls a UI action which requires a handler, while the handler attribute is missing in the test, the error message shows an empty call stack.

Application/platform version
Platform 23.0.13804.0 + Application 23.1.13431.13812
AL Language version
v12.3.900902

This is by design. The AL stack is not preserved between these calls.


Kafka log rename and deletion Patch for Windows (KAFKA-1194)

Incorporated suggested changes that handle renaming of files on Windows without affecting
intended behavior on Linux.
I performed tests on core build (with gradle core:test) and everything passed
Committer Checklist (excluded from commit message)

[x] Verify design and implementation
[x] Verify test coverage
[x] Verify accurate topic renaming and deletion on windows with node crashes

This PR is not needed since the base *-KAFKA-1194 branch has 2.3.1 snapshot commits we don't want to merge into the 2.3.0-esri branch.


Update download link on old country pages

We need to change the target for the Download Tree Cover Stats to the following URL on staging:
http://gfw2-data.s3.amazonaws.com/country/umd_country_stats/tree_cover_stats_2016.xlsx
This should be applied to the branch /new-about-updated-webpack

Closed by PR #3068


add resource and first/last name parsing

let me test this

I think it will be better to switch to graph.windows.net to get raw_info data. See #5. What do you think?

Hell @mitani. If you would like to use first name and last name, try to use extra from master.
env["omniauth.auth"]["extra"]["raw_info"]["givenName"]
env["omniauth.auth"]["extra"]["raw_info"]["surname"]

If you would like to map it into info hash, feel free to open PR with this mapping.


Application view is missing characterInformation

See Sentry

Appears to have been a transient data issue with a specific application.


Decorators are not correctly highlighted

When using a decorator in typescript the decorator should be highlighted as a function, since it is an implicit function call.
Currently, @foo and @foo() are not highlighted the same, but since both are clearly decorator calls they should be; in particular @foo is currently not highlighted any particular color.
I tried to figure out how to add this myself but haven't been successful so far -- I'm just not familiar with how tmLanguage files work :-/  If you want to give me tips to get started I'm willing to try to do this myself

Hey @taxilian, we actually have an open issue at https://github.com/Microsoft/TypeScript-TmLanguage/issues/8. There's a PR out for it as well at https://github.com/Microsoft/TypeScript-TmLanguage/pull/169. Thanks!

Reopening to track the issue here.

awesome.  That makes me very happy =]


#47 - feat(frontend): Added the UI component for MetaData

Summary
Provide a short description of what changes are introduced.
Changes Made

Added a customizable component to deal with the dataset's MetaData

Testing Instructions
Populate the component with some data. Ensure that data is being displayed.

Keep in mind the CI will not be able to build for this PR as the branch naming convention starts with a # so when the CLI tries to access GitHub, the branch name is taken as a comment(since it starts with #)