mocha failed and shows ERROR: null

I'm using ts-mocha and put mistaken code like this:
this.logger?.error(e)
ts-mocha is failed, and after debugging code of mocha I've detected stupid reaction like this
(node:13116) ExperimentalWarning:--experimental-loadermay be removed in the future; instead useregister(): --import 'data:text/javascript,import { register } from "node:module"; import { pathToFileURL } from "node:url"; register("ts-node/esm", pathToFileURL("./"));' (Use node --trace-warnings ...` to show where the warning was created)
mocha inspect [spec..]
Run tests with Mocha
Rules & Behavior
--allow-uncaught       Allow uncaught errors to propagate        [boolean]
-A, --async-only           Require all tests to use a callback (async) or
return a Promise                          [boolean]
-b, --bail                 Abort ("bail") after first test failure   [boolean]
--check-leaks          Check for global variable leaks           [boolean]
--delay                Delay initial execution of root suite     [boolean]
--dry-run              Report tests without executing them       [boolean]
--exit                 Force Mocha to quit after tests complete  [boolean]
--fail-zero            Fail test run if no test(s) encountered   [boolean]
--forbid-only          Fail if exclusive test(s) encountered     [boolean]
--forbid-pending       Fail if pending test(s) encountered       [boolean]
--global, --globals    List of allowed global variables            [array]
-j, --jobs                 Number of concurrent jobs for --parallel; use 1 to
run in serial
[number] [default: (number of CPU cores - 1)]
-p, --parallel             Run tests in parallel                     [boolean]
--retries              Retry failed tests this many times         [number]
-s, --slow                 Specify "slow" test threshold (in milliseconds)
[string] [default: 75]
-t, --timeout, --timeouts  Specify test timeout threshold (in milliseconds)
[string] [default: 2000]
-u, --ui                   Specify user interface    [string] [default: "bdd"]
Reporting & Output
-c, --color, --colors                     Force-enable color output  [boolean]
--diff                                Show diff on failure
[boolean] [default: true]
--full-trace                          Display full stack traces  [boolean]
--inline-diffs                        Display actual/expected differences
inline within each string  [boolean]
-R, --reporter                            Specify reporter to use
[string] [default: "spec"]
-O, --reporter-option,                    Reporter-specific options
--reporter-options                        (<k=v,[k1=v1,..]>)           [array]
Configuration
--config       Path to config file   [string] [default: (nearest rc file)]
-n, --node-option  Node or V8 option (no leading "--")                 [array]
--package      Path to package.json for config                    [string]
File Handling
--extension          File extension(s) to load
[array] [default: ["js","cjs","mjs"]]
--file               Specify file(s) to be loaded prior to root suite
execution                   [array] [default: (none)]
--ignore, --exclude  Ignore file(s) or glob pattern(s)
[array] [default: (none)]
--recursive          Look for tests in subdirectories            [boolean]
-r, --require            Require module              [array] [default: (none)]
-S, --sort               Sort test files                             [boolean]
-w, --watch              Watch files in the current working directory for
changes                                     [boolean]
--watch-files        List of paths or globs to watch               [array]
--watch-ignore       List of paths or globs to exclude from watching
[array] [default: ["node_modules",".git"]]
Test Filters
-f, --fgrep   Only run tests containing this string                   [string]
-g, --grep    Only run tests matching this string or regexp           [string]
-i, --invert  Inverts --grep and --fgrep matches                     [boolean]
Positional Arguments
spec  One or more files, directories, or globs to test
[array] [default: ["test"]]
Other Options
-h, --help             Show usage information & exit                 [boolean]
-V, --version          Show version number & exit                    [boolean]
--list-interfaces  List built-in user interfaces & exit          [boolean]
--list-reporters   List built-in reporters & exit                [boolean]
× ERROR: null
`

I'm having the same issue with following configuration:
extensions:
  - "ts"
project: "./tsconfig.json"
spec:
  - "./**/*.test.ts"
require:
  - "ts-node/register"
  - "tsconfig-paths/register"
reporter: "dot"
node-option:
  - "experimental-specifier-resolution=node"
  - "loader=ts-node/esm"

I'm also experiencing this issue. I'm using node v21.4.0 and ts-node.
This command fails with "Error: null":
TS_NODE_PROJECT='./src/back/tsconfig.json' npx mocha --recursive --timeout 20000  --require ts-node/register src/back/some.test.ts

I found that this happens with recent versions of node. For example, worked find in 18.17 but is broken in 18.19

My problem is actually ts-node/esm loader. I switched to tsm and the tests work again.

Alternatively, see https://github.com/TypeStrong/ts-node/issues/1007#issuecomment-1864819206

I resolved this problem by: changing "esm" to "tsx/esm":
"node-option": [
"experimental-specifier-resolution=node",
"import=tsx/esm",
"trace-uncaught"
],

Where do you set this node_option?

From: Rustam108 @.***>
Sent: Wednesday, 3 January 2024 17:54
To: mochajs/mocha
Cc: Tomasz Pluskiewicz; Manual
Subject: Re: [mochajs/mocha] mocha failed and shows ERROR: null (Issue #5048)
I resolved this problem by: changing "esm" to "tsx/esm":
"node-option": [
"experimental-specifier-resolution=node",
"import=tsx/esm",
"trace-uncaught"
],
—
Reply to this email directly, view it on GitHub, or unsubscribe.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

The Mocha config file, such as .mocharc.json, I'm guessing.
See also:

#5002 for more discussion around ESM support
https://github.com/mochajs/mocha-examples/pull/76 for some more examples with ESM imports/loaders

This issue seems to have turned into a general Q&A, so I'm going to close it out as resolved. Glad things seem to have been figured out!
If there's still a bug you'd like to report (echoing ERROR: null?) please do file a new issue with our new bug report template. We'd be happy to take a look.
...and also, please, use ``` code blocks to capture monospace output. This issue was very difficult to read. https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-and-highlighting-code-blocks

For whom it may help, I've had this issue because my tsconfig.json had "moduleResolution": "bundler"
Still, the ERROR: null is worth investigating 🤔


multi-tenancy

Currently I'm looking into how to achieve a multi-tenancy architecture (database-per-tenant).
It is relatively easy to use only one hasura instance with different databases (same schema) for each tenant.
Now I try to come up with a good strategy for hasura-storage/hasura-auth.
It is probably a good idea to keep the auth service centralised for all tenants - and the permissions for (and isolations of) each database should be solvable. Right now I don't see a good solution for storage: it would be awesome to run only one hasura-storage instance that uses the respective database and storage location per tenant.
Maybe someone can point me to a solution.

Have you checked out this example?
https://github.com/nhost/nhost/tree/main/examples/multi-tenant-one-to-many
I've also noticed some topics that might be related such as attaching an "organization" to each user.

Maybe if you provide a database model that you plan to use it's easier to reason about.
This is how I would structure a general multi-tenant system (similar to how we do it at Nhost with Users and Workspaces.
auth.users (Table that already exists in Nhost)
- id
- display_name
- [and more]

storage.files (Table that already exists in Nhost)
- id
- name
- size
- [and more]

workspaces
- id
- name
- created_by_user_id FK to auth.users.id + Hasura preset using `x-hasura-user-id`
- [and more]

workspace_members
- id
- created_at
- workspace_id FK to workspaces.id
- user_id FK to auth.users.id

workspace_files
- id
- file_id FK to storage.files
- workspace_id
- uploaded_by_user_id FK to auth.users.id + Hasura preset using `x-hasura-user-id`

Upload

User is signed in and using a specific (current) workspace
Upload file
Get file.id back
Insert a new row to woskpace_files with file_id and the current workspace_id.

Permissions
Workspaces
To manage the workspace.
Allow to read/update/delete if workspace.worksapce_members.user_id = x-hasura-user-id
Workspace Members
To manage workspace members.
Allow to insert/read/update/delete if workspace_members.workspace.worksapce_members.user_id = x-hasura-user-id
Workspace Files
To manage workspace files.
Allow to insert/read/update/delete if workspace_files.workspace.worksapce_members.user_id = x-hasura-user-id
Files
Allow to insert: always allow
Allow to read/delete if workspace_files.workspace.worksapce_members.user_id = x-hasura-user-id
Summary
Keep everything in the same database and use Hasura's permissions to allow tenants to only manage their own data.

Why would you want to do one database per tenant? I think that will lead to so much extra work for you in keeping the database schema in sync.
Unless you have really strong requirements, I recommend that you do anything in your power to not use one database per tenant.
If you do go with one database per tenant, please make sure you fully understand the second-order effects it has in terms of maintenance and complexity for your development team.

But maybe I should give up on that approach (for now) and try the shared database/storage approach.

I strongly put my vote on this.

Yes, it's a complex topic for sure, and there is no general answer that works for everyone.
Hasura Storage uses a single bucket.


HOTFIX: Seperate openapi spec for adex paths

created a new openapi spec file for adex base paths
use conditional logic based on config set basepath to render appropriate api spec
Its hotfix. There can be a better fix.

is there better way to do this @pranavrd

is there better way to do this @pranavrd

We could have a placeholder in the apidoc file and get iudx or adex from a config file


[WIP] Fix cert rotation on node startup

This PR fixes certificate rotation on nodes <1.11 on startup.

I added restart of fix on failure, also 1.8/1.9 node templates are included. @databus23 Please have a look!


how to debug hydration?

We're considering switching to GIT/GVFS in a very large project. As we try any operation requiring hydration of many files (build, or just opening a big solution), not just the command but the whole operation system hangs, needing a hard reset to restore operation. The hang we think is windows explorer/filesystem-related, some of the processes stay more or less operable, but we cannot browse files, cannot type, or start new programs.
Hydration of a single file (e.g. opening a text file in the repo) works as expected.
We found out that while this command always works in our repo:
gvfs prefetch --files '*',
this command always hangs:
gvfs prefetch --files '*' --hydrate
I've attached logs of the latter, started in verbose mode. The logs are of 2 separate runs. Please excuse me for the quality, but we weren't able to save the log or do a printscreen with the computer hanging, so the log was photographed. In both cases, the hang was experienced between the last 2 lines, a lot before the last line appeared.
We're willing to try debug the issue, but we're not experienced in debugging filter drivers. If there's any way we could provide more information than this, we'll try to help.

Hi @canahari. Sorry that you're having issues. Thanks for bringing this to our attention. The gvfs prefetch --files '*' --hydrate command spins up several worker threads, and you are seeing the message that the "find the blobs we need to download" is finishing, but the "actually download the blobs" is not reporting success. Further, with 547,000 missing objects and a batch size of 4,000, you should be seeing over 136 "DownloadObjects" lines. This means that the download thread is not able to finish. But you could also be correct that the filesystem interactions are causing a halt that prevents that thread from continuing.
Here are some basic questions:

What version of Windows are you using?
What version of VFS for Git are you using?
What kind of drive are you using? Solid-state drives are so highly recommended that we don't typically investigate performance issues related to hard disk drives.

Our usual way to diagnose these issues is to have the user run gvfs diagnose and put the resulting .zip file in a network share. If the .zip isn't too big for your repo, perhaps you could email it to<EMAIL_ADDRESS>Alternatively, you could place the .zip file in a private GitHub repo and give me access to read it. I'm just trying to make sure we can support you while also not making any potentially sensitive information completely public.
Finally, since you are hydrating the entire working directory, and it seems to have "only" 550 thousand files, perhaps you would have a better time trying Scalar? Here is a blog post describing some of the differences between VFS for Git and Scalar.

Hello Derrick, thanks for your response. I'm sending the requested data in email.

I've got the logs, thanks!
Could you retry with Version 1.0.20112.1? I know it's marked "pre-release" but I'll fix that soon. This version is stable and has been shipped to the Windows team for a while.
I see that you have some strange filenames in C:\.gvfsCache\343da45616674b55b17dda968e1efabb\gitObjects\pack, probably due to temporary files being downloaded and then the process shutting down abruptly. Please delete that directory, then run the following:

gvfs prefetch --commits
gvfs prefetch --files '*'
gvfs prefetch --files '*' --hydrate

These will (1) get the full set of commits and trees for the repo, which is important before we explore for missing blobs, (2) download all missing blobs to the shared object cache, then (3) actually hydrate the working directory, but without the Git object downloads.
Splitting the object downloads from the file hydration could help in identifying the problem. Thanks!

I should also make some concrete responses about Scalar, based on your feedback:

About the scenario itself: we'll try out Scalar too, although we're generally not early adopters of anything :) Still, we want GVFS more, since generally a developer works only with a small part of this repository, and will not need a complete build most of the times.

Scalar does work for normal users, but it requires some planning in advance. Do users know which subdirectories they need in advance? Then they could scalar clone followed by git sparse-checkout add <dir1> <dir2> ... to get only the portions they need. While that manual step requires some training for users (or some investment in the engineering system to make this easy, it does significantly reduce the complexity of the system that would be present in VFS for Git.

But we do need to make sure the complete build works. And for that, literally the whole repo is needed. The prefetch we tried only for diagnostic purposes, after we experienced the hang when doing a plain build.

VFS for Git is overly complicated to use in the "I need every file" scenario. Please try Scalar for this scenario, using scalar clone --full-repo <url> for this case. You definitely won't run into the issue you're having here.

gvfs prefetch --commits
gvfs prefetch --files '*'
gvfs prefetch --files '*' --hydrate

I've done as you said, and the first two commands ran without errors. (I'm attaching the logs, although the 1st command I've forgotten to run in verbose - I'll gladly repeat the experiment if you think the verbose log would be useful.) As I've expected, the 3rd command hanged. Of that result, I can only attach a photographed log again :)

(I'd really like to try a little debugging as I'm a C#er myself, but your nuget source does not seem to want to serve me. Lots of messages like...
2>D:\repositories\VFSForGit\GVFS\GVFS.Common\GVFS.Common.csproj : error NU1101: Unable to find package NuGet.Commands. No packages exist with this id in source(s): Dependencies
2>D:\repositories\VFSForGit\GVFS\GVFS.Common\GVFS.Common.csproj : error NU1101: Unable to find package Microsoft.Data.Sqlite. No packages exist with this id in source(s): Dependencies
2>D:\repositories\VFSForGit\GVFS\GVFS.Common\GVFS.Common.csproj : error NU1101: Unable to find package LibGit2Sharp.NativeBinaries. No packages exist with this id in source(s): Dependencies ... )

(I'd really like to try a little debugging as I'm a C#er myself, ....

To do debugging, you are better off building from source and then working from there. Please see the instructions in the README. The tricky part is getting all of the dependencies installed, then running your built installer.


FEATURE: Optimzer shouldn't make files bigger

When I have a already for the use case highly optimized image (e.g. JPEG quality of 30%) the image optimizer creates a worse file size.
The image optimizer should always compare file size and choose the smaller version.

Good idea, feel free to open a PR that solves that.

I'm not using the package anymore.


@conda-forge-admin, please add bot automerge

Issue:

Environment (conda list):

$ conda list

Details about  conda and system ( conda info ):

$ conda info

Hi! This is the friendly automated conda-forge-webservice.
I just wanted to let you know that I added bot automerge in conda-forge/mesa-feedstock#3.


Detected headwords that are false positives

For example, page 962-gørrel.txt has two entries:

Hesiodis
Højsgaard

They look like headwords starting with letter H, which is completely valid for that page. Coincidentally they are also in alphabetical order, so all seems good. Both are still misread, as they should be part of the previous entry, "Had".
There may be no easy way to tell these apart automatically. Lets's add a mapping or something where we can list such exceptions so that they'll be parsed to previous entries.

Also "Hibertz" in 1109-hosskrift.txt


(PUP-7157) remove 'semantic' shim from puppet

I was having troubles updating/re-loading my gem list locally post https://github.com/puppetlabs/puppet-runtime/pull/55 so some tests were failing for me. They may still need to be updated/removed but figured I'd open the PR to see if they worked on jenkins.

jenkins please test this

CLA signed by all contributors.


Can't set custom templates?

I think it would be better if the user could set custom templates!

I agree with the questioner..

Press Cmd + Shift + P in VS Code and type in Open Extensions folder.
Navigate to /sidthesloth.html5-boilerplate-1.x.x/snippets
Modify the template to your liking and restart VS Code


Default-flow-type is being repeated at transaction level

Where an activity has designated a default-flow-type, the flow-type is being output at transaction level, which does not reflect the published data.
See example query: https://iatidatastore.iatistandard.org/search/activity?q=iati_identifier:(NL-KVK-27264198-POWER)&wt=xslt&tr=activity-xml.xsl&rows=5000000
Published data: at activity level, NOT at transaction level

DS output data: at Transaction level:

@JoshStanleyDevInit - I think the issue is that in the sample I checked, it was duplicated to the transaction level - and not subsequently removed from the defaults, which seems to be the approach for all the other cases e.g. default currencies which when DSv2 is farming them out to the transactions, is removing the default_currency from the activity level at the same time.
Whether the datastore should be moving defaults to the transactions is a separate discussion, I can see why it helps, but it means that DSv2 is not able to export the XML as published, maybe linking to that decision would be useful as it also has implications for the standard e.g. why keep the option to have defaults at the activity level if no users can access data in that format without using the registry.

@siemvaessen as per our conversation yesterday, I have attempted to sum up this issue on the following spreadsheet:
https://docs.google.com/spreadsheets/d/1AQ14HvaTUii4_va_P1L6VYb7jdQekMomLvKoQS819LE/edit#gid=0
The spreadsheet contains examples of activities where in the raw published data, a default value is set, and the value is not repeated for each transaction.
There are two issues at play here:

For some default elements (all except aid-type), the default value is being farmed out to each transaction in the Datastore output. This means that the XML output is not accurately reflecting what has been originally published, as it should do.

For flow-type, the default value is being farmed out to each transaction and the default-flow-type element is not being included in the Datastore output.

Our view is that the Datastore should provide unadulterated data based on the filters that the user has chosen. We would therefore expect that the default-values are retained in their original state, and are not repeated for each transaction within the activity.
cc/@PetyaKangalova

@Eimis Hi! Eimantas, I saw that you farmed out activity/default-flow-type,default-finance-type and default-tied-status to transaction level. Do we have any specific logic to do that? Please check the  code here. https://github.com/zimmerman-zimmerman/iati.cloud/blob/aee68511a1e3ed9e1ec419ae5e48213b2e6f76b8/OIPA/iati/parser/IATI_2_03.py#L2384

Hey @luminhan! :) tbh I can't remember the exact reason for this, maybe you could do git blame and see the commit message, or  link the commit here?

Might've been a mistake too, but a commit would help

@Eimis  the link for commit here. btw, thank you for your quick reply :)

@luminhan since the commit message is "Use Hello World version of 2.03 parser", this is probably an initial (first) commit that implements 2.03 parser for the project, so it's very likely that a mistake might've been made by me haha (one of my first tasks after Python3 was to implement new 2.03 parser). Or I maybe found it implemented like that in 2.01 parser's code (most of it was reused for 2.03 parser).
I can see from the docs, that it doesn't say that the Transaction's Flow type should for some reason use Activity's flow type, so it's most likely just a bug. Nice catch :) 👍

Tested on the test server. This is now working as expected for all of the default values except for default-currency.

@luminhan re-tested on live and looking good. Please feel free to close.


Simplify OpenIddict's description

[Enter feedback here]

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

ID: a218cc00-a5c0-717e-5b42-5efd6caf8abb
Version Independent ID: 69bded75-ba42-d3ff-f27b-f7e715f6d2f8
Content: Community OSS authentication options for ASP.NET Core
Content Source: aspnetcore/security/authentication/community.md
Product: aspnet-core
Technology: aspnetcore-security
GitHub Login: @Rick-Anderson
Microsoft Alias: riande

Fixed in #29116

Keeping the ASP.NET Core versions list up-to-date in OpenIddict's description depends on community contributions and proved to be a painful process. Mentions of ASP.NET Core and Microsoft.Owin are also problematic as OpenIddict now includes a client stack that aims at being a universal .NET client (that can be used in ASP.NET Core and OWIN web apps and but also in console/WPF/WinUI/UWP and Linux desktop apps): listing all the supported environments would make the description messy, so Flexible and versatile OAuth 2.0/OpenID Connect stack for .NET seems to be a simpler option.
On a related note, it's not clear at all why non-.NET projects like Gluu Server (built on top of the Janssen Project, which is Java-based) and Authentik (Python-based, AFAICT) are included in this list. This community.md page was originally created to list exclusively the authentication projects designed and built for ASP.NET Core: has anything changed in this regard?
Note: I'm OpenIddict's developer.


key filters

So I really like Mousetrap.  But it only captures window keypress events.
I'd like to add most of its aliases to the key filter, but I can't see a tidy way to do it.
You've got this private dictionary in here:
/**
 * A special filter that takes a handler function,
 * wraps it so it only gets triggered on specific
 * keypresses. v-on only.
 *
 * @param {String} key
 */

var keyCodes = {
  enter    : 13,
  tab      : 9,
  'delete' : 46,
  up       : 38,
  left     : 37,
  right    : 39,
  down     : 40,
  esc      : 27
}

exports.key = function (handler, key) {
  if (!handler) return
  var code = keyCodes[key]
  if (!code) {
    code = parseInt(key, 10)
  }
  return function (e) {
    if (e.keyCode === code) {
      return handler.call(this, e)
    }
  }
}

I wonder if it would be reasonable to have a registerKeyCode({alias1:code1,alias2,code2,etc}) method since it seems like something people might want to extend often.

The change from the key filter to modifiers for v-on seems to have broken this; could keyCodes be exported so that it's possible to add new codes again? I'd like to add things like the function keys (F1-F12).

@whitelynx it will be exposed in next release as Vue.directive('on').keyCodes.

@yyx990803 Thanks!


[BUG] Observed many supportbundle pods in terminating state.

Describe the bug (🐛 if you encounter this issue)
I observed many pods were in terminating state. Before observing that I downloaded 2 supportbundles in the system.
To Reproduce
Steps to reproduce the behavior:

Have Rancher server to manage kubernetes cluster. Install Longhorn on a downstream cluster.
Run some integration test on it. (test_migration_with_unscheduled_replica)
Download supportbundle
Check the Rancher UI.
There are many supportbundle pod in terminating state.

Expected behavior
Only one supportbundle pod should get created while downloading it and get terminated successfully once done.
Log or Support bundle

Environment

Longhorn version: v1.5.x-head
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): kubectl

Additional context
k get pod -A | grep support yields nothing

I have support bundle from some intermittent state, not sure whether it will have some info.
supportbundle_3baf9a96-7158-4879-8dd0-5224d1965dbc_2023-06-28T21-29-04Z.zip

Based on the provided screenshot,  it seems they are all support-bundle agent pods. They belong to a DaemonSet created by the support bundle manager and responsible cor generating the node bundles.
ref: https://github.com/rancher/support-bundle-kit/tree/d5bb2ba66d660ff1ed1f45dff0cbce37219817dd#support-bundle-kit-
  - `manager`: start a support bundle kit manager. The manager does these works:
    - It collects the cluster bundle, including YAML manifests and pod logs.
    - It collects external bundles. e.g., Longhorn support bundle.
    - It starts a web server and waits for bundle downloading and uploading.
    - It starts a daemonset on each node. The agents in the daemonset collect node bundles and push them back to the manager.

@c3y1huang so, if this is expected, we can close this?


Add public subnets for ALBs

These are /24 rather than /20, might be worth shrinking the other as well.

Yeah I'd be fine with making all the subnets /24


Update prometheus

updates api version for ClusterRole and ClusterRoleBinding
updates alert-rules format
updates kubernetes rules format
updates  kube-state-metrics version
updates prometheus version and args

There is no monitoring namespace, maybe you can add a manifest for it.
Also, a small readme including a description and how to deploy the stack could be useful.

please rename the .yml  files to .yaml


instructionJSONInSingleQuotes setting is ignored

Due to a bad case of copy/paste in a0ee572ce50cf022edae27d787d59f8b956492d7, the instructionJSONInSingleQuotes setting doesn't work because instructionJSONInSingleQuotes  is incorrectly reading and using the value of instructionHealthcheckMultiple.
https://github.com/rcjsuen/dockerfile-language-server-nodejs/blob/d34e4f250b25a1d1e015a14acd32ee76599b8741/src/server.ts#L174-L182

It seems like I also completely forgot to consider the case where the client does not support workspace/configuration requests. I did not add code to support the instructionJSONInSingleQuotes in the global settings case.


influx client with type=flux doesn't authenticate

I'm running influxdb 1.7.3 with
[http]
  flux-enabled = true

Running influx client:
influx -type=flux -host localhost4 -port 8086 -database my_database -username my_user -password <snip>
These crentials work without -type=flux. However when running with -type=flux and submitting a query:
Connected to http://localhost4:8086 version 1.7.3
InfluxDB shell version: 1.7.3
Enter a Flux query
> from(bucket:"my_database/my_measurement")
Error: client error: 401 Unauthorized

tcpdump shows no Authorization header being sent (it is being sent without -type=flux):
POST /api/v2/query HTTP/1.1
Host: localhost4:8086
User-Agent: Go-http-client/1.1
Content-Length: 384
Accept: text/csv
Content-Type: application/json
Accept-Encoding: gzip

{"spec":{"operations":[{"kind":"from","id":"from0","spec":{"bucket":"my_database/my_measurement"}}],"edges":null,"resources":{"priority":"high","concurrency_quota":0,"memory_bytes_quota":0},"now":"2019-02-06T15:28:54.739736155Z"},"query":"","type":"flux","dialect":{"header":true,"delimiter":"\u0000","commentPrefix":"#","dateTimeFormat":"RFC3339","annotations":["datatype","group","default"]}}

16:28:54.739963 IP <IP_ADDRESS>.8086 > <IP_ADDRESS>.43728: Flags [P.], seq 1:354, ack 564, win 386, options [nop,nop,TS val<PHONE_NUMBER> ecr<PHONE_NUMBER>], length 353
E....E<EMAIL_ADDRESS>s ..s ..HTTP/1.1 401 Unauthorized
Content-Type: text/csv
Request-Id: <snip>
Www-Authenticate: Basic realm="InfluxDB"
X-Influxdb-Build: OSS
X-Influxdb-Version: 1.7.3
X-Request-Id: <snip>
Date: Wed, 06 Feb 2019 15:28:54 GMT
Content-Length: 49

error
unable to parse authentication credentials

Please help!

Confirm this bug, happens for me too.

As mentioned here: https://community.influxdata.com/t/how-to-building-flux-queries-in-chronograf/7440/5
this is also happining to me.

Thanks for the report and the issue is indeed that no credentials are being sent when using the -type=flux flag.

This will be resolved in v1.7 via #13067


idea: maybe more complete discord-ipc implementation

As Discord RPC protocol is not just limited to Rich Presence, are there any plans to add support for things like OAuth2, Events, etc.? I'd be willing to contribute such.

accepting contributions, lets add 'em :+1:

The API is pretty much complete, it should be possible to use all rpc commands now. Closing this issue


[SPARK-23264][SQL] Make INTERVAL keyword optional in INTERVAL clauses

What changes were proposed in this pull request?
This pr updated parsing rules in SqlBase.g4 to support a SQL query below;
SELECT CAST('2017-08-04' AS DATE) + 1 days;

The current master cannot parse it though, other dbms-like systems support the syntax (e.g., hive and mysql). Also, the syntax is frequently used in the official TPC-DS queries.
This pr added new tokens as follows;
YEAR | YEARS | MONTH | MONTHS | WEEK | WEEKS | DAY | DAYS | HOUR | HOURS | MINUTE
MINUTES | SECOND | SECONDS | MILLISECOND | MILLISECONDS | MICROSECOND | MICROSECONDS

Then, it registered the keywords below as the ANSI reserved (this follows SQL-2011);
 DAY | HOUR | MINUTE | MONTH | SECOND | YEAR

How was this patch tested?
Added tests in SQLQuerySuite.

@gatorsmile ping

ping

Could you create interval.sql by adding the test cases in https://issues.apache.org/jira/browse/HIVE-13557 ?

ok, I'll update based on the comments soon

You meant the HIVE jira? If so, no (I was going to check now). Any point I should know?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1476/
Test PASSed.

Test build #88191 has started for PR 20433 at commit c0710d6.

Test build #88191 has finished for PR 20433 at commit c0710d6.

This patch fails to build.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/88191/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1477/
Test PASSed.

Test build #88192 has started for PR 20433 at commit 1eec819.

This sounds good to me

I added related tests from hive clientpositive in interval.sql.

Test build #88198 has started for PR 20433 at commit 39fe5dc.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1480/
Test PASSed.

Test build #88192 has finished for PR 20433 at commit 1eec819.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/88192/
Test FAILed.

Test build #88198 has finished for PR 20433 at commit 39fe5dc.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/88198/
Test FAILed.

Merged build finished. Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1485/
Test PASSed.

Test build #88204 has started for PR 20433 at commit ba6cce5.

Test build #88204 has finished for PR 20433 at commit ba6cce5.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/88204/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1490/
Test PASSed.

Test build #88209 has started for PR 20433 at commit f6210a2.

Test build #88209 has finished for PR 20433 at commit f6210a2.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/88209/
Test PASSed.

Change the PR title to [SPARK-23264][SQL] Make INTERVAL keyword optional in INTERVAL clauses?

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1607/
Test PASSed.

Test build #88372 has started for PR 20433 at commit 71c93e6.

Test build #88372 has finished for PR 20433 at commit 71c93e6.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/88372/
Test FAILed.

retest this, please

Test build #88377 has started for PR 20433 at commit 71c93e6.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1612/
Test PASSed.

Test build #88377 has finished for PR 20433 at commit 71c93e6.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/88377/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1627/
Test PASSed.

Test build #88400 has started for PR 20433 at commit e780fd2.

Test build #88400 has finished for PR 20433 at commit e780fd2.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/88400/
Test FAILed.

This is a breaking change, I can't think of a way to work around it. e.g. SELECT 2 SECONDS will change its semantic after this PR. Even if we provide a conf, it's very hard for users to realize the semantic has been changed. I'd like to hold this PR until Spark 3.0.

Test build #88438 has started for PR 20433 at commit 5ee6f89.

I was thinking we added a temporary rule in SqlBase.g: https://github.com/apache/spark/pull/20433/commits/5ee6f897bc71eac24e086f39549ef3a396059b4d
But, I have no strong reason to add this in 2.x, so I follow you.
Could you set 3.0 at the target in the jira?
BTW, is this a bug in master? https://github.com/apache/spark/blob/master/sql/core/src/test/resources/sql-tests/results/literals.sql.out#L328
Probably, I think this fix seems to be related to this bug:
https://github.com/apache/spark/pull/20433/files#diff-16d8dfddab6ffbffb4204a6955ce3d26R158

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution/1654/
Test PASSed.

yea very likely. Do you mind open a new PR to fix it? thanks!

ok, I'll do later. thanks.

Test build #88438 has finished for PR 20433 at commit 5ee6f89.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/88438/
Test FAILed.

Since that one was a minor fix, I didn't file a new jira. Could you check? https://github.com/apache/spark/pull/20872

Test build #96060 has started for PR 20433 at commit 452566a.

I'll update the migration guide when bumping up master branch version to next one.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3103/
Test PASSed.

Test build #96060 has finished for PR 20433 at commit 452566a.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/96060/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3112/
Test PASSed.

Test build #96071 has started for PR 20433 at commit 452566a.

Test build #96071 has finished for PR 20433 at commit 452566a.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/96071/
Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3125/
Test PASSed.

Test build #96089 has started for PR 20433 at commit 452566a.

@maropu We need a new SQLConf in Parser. See my example in https://github.com/apache/spark/pull/21922

ok

Test build #96135 has started for PR 20433 at commit c24fb1b.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3159/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3161/
Test PASSed.

Test build #96139 has started for PR 20433 at commit 554c122.

Test build #96135 has finished for PR 20433 at commit c24fb1b.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/96135/
Test FAILed.

Test build #96139 has finished for PR 20433 at commit 554c122.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/96139/
Test PASSed.

ping

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/3667/
Test PASSed.

Test build #96919 has started for PR 20433 at commit 554c122.

do we have an umbrella JIRA to track all the breaking changes that make Spark ANSI SQL compatible?

Test build #96919 has finished for PR 20433 at commit 554c122.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/96919/
Test PASSed.

@cloud-fan currently no IIUC. If no probem, I'll make a parent JIRA later. cc: @gatorsmile

@gatorsmile ping

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4184/
Test PASSed.

Test build #97703 has started for PR 20433 at commit 554c122.

Test build #97719 has started for PR 20433 at commit 554c122.

Test build #97719 has finished for PR 20433 at commit 554c122.

This patch fails due to an unknown error code, -9.
This patch does not merge cleanly.
This patch adds no public classes.

Test build #97703 has finished for PR 20433 at commit 554c122.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Build finished. Test FAILed.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/97703/
Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/97719/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4264/
Test PASSed.

Merged build finished. Test FAILed.

retest this please

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/4384/
Test PASSed.

Test build #97890 has started for PR 20433 at commit 554c122.

Test build #97890 has finished for PR 20433 at commit 554c122.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/97890/
Test PASSed.

retest this please

Test build #99593 has started for PR 20433 at commit 554c122.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/5650/
Test FAILed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/5651/
Test PASSed.

Test build #99595 has started for PR 20433 at commit c1912a4.

Test build #99595 has finished for PR 20433 at commit c1912a4.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/99595/
Test FAILed.

Test build #99593 has finished for PR 20433 at commit 554c122.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/99593/
Test FAILed.

retest this please

Test build #99604 has started for PR 20433 at commit c1912a4.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/5661/
Test PASSed.

Test build #99604 has finished for PR 20433 at commit c1912a4.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/99604/
Test FAILed.

Test build #99614 has started for PR 20433 at commit 7cb8f87.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/5670/
Test PASSed.

Test build #99614 has finished for PR 20433 at commit 7cb8f87.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/99614/
Test FAILed.

Test build #99638 has started for PR 20433 at commit 7cb8f87.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/5693/
Test PASSed.

Test build #99638 has finished for PR 20433 at commit 7cb8f87.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/99638/
Test PASSed.

cc: @gatorsmile

@maropu I am assuming this is blocked by https://github.com/apache/spark/pull/23259, right?

I think #23259 might have much room for discussions, so how about taking this with the new ansi option first, and then moving into #23259? (Happy new year! I hope we have a good year!)

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8008/
Test PASSed.

Test build #102428 has started for PR 20433 at commit e11cb2a.

I checked if the time unit keywords (YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, MILLISECOND, WEEK, MILLISECOND, MICROSECOND) are reserved in SQL-2011/database implementations:
SQL-2011

reserved: YEAR, MONTH, DAY, HOUR, MINUTE, SECOND
non-reserved: WEEK, MILLISECOND, MICROSECOND

PostgreSQL, MySQL, Oracle, and SQL Server

reserved:
non-reserved: YEAR, MONTH, WEEK, DAY, HOUR, MINUTE, SECOND, MILLISECOND, MICROSECOND

Also, all the the plural forms (YEARS, MONTHS, ...) are not reserved in all the cases.
I'm not sure about the historical reason why these databases don't handle them as reserved though, IMHO we would be better to follow SQL-2011; YEAR, MONTH, DAY, HOUR, MINUTE, and SECOND are reserved if ansi=true.
As for SQL server, these time unit keywords are listed in future keywords:
https://docs.microsoft.com/ja-jp/sql/t-sql/language-elements/reserved-keywords-transact-sql?view=sql-server-2017#future-keywords

Test build #102428 has finished for PR 20433 at commit e11cb2a.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102428/
Test PASSed.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8246/
Test PASSed.

Test build #102714 has started for PR 20433 at commit 41645a8.

Test build #102715 has started for PR 20433 at commit 5699547.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8247/
Test PASSed.

Test build #102714 has finished for PR 20433 at commit 41645a8.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102714/
Test PASSed.

Test build #102715 has finished for PR 20433 at commit 5699547.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/102715/
Test PASSed.

ping @cloud-fan

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8732/
Test PASSed.

Test build #103287 has started for PR 20433 at commit a76f8a9.

Test build #103287 has finished for PR 20433 at commit a76f8a9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103287/
Test PASSed.

Test build #103413 has started for PR 20433 at commit feccbc8.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8835/
Test PASSed.

Test build #103413 has finished for PR 20433 at commit feccbc8.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103413/
Test FAILed.

retest this please

Test build #103421 has started for PR 20433 at commit feccbc8.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8844/
Test PASSed.

Test build #103421 has finished for PR 20433 at commit feccbc8.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/103421/
Test FAILed.

LGTM except one comment: https://github.com/apache/spark/pull/20433#discussion_r259599016

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/testing-k8s-prb-make-spark-distribution-unified/8857/
Test PASSed.

Test build #103445 has started for PR 20433 at commit 8e414ac.

Test build #103445 has finished for PR 20433 at commit 8e414ac.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Thanks! Merged to master.


Code Cleanup and build workflow

Added code clean up thanks to eslint and workflow so jobs will be built and tested before merging

Can you add NOTICE.csv back in? That's a requirement from our legal team


Clean installation - 500 response

Dear RSSBridge community,
I have tried to deploy rss-bridge on my VPS. I am using nginx proxypass to Apache2, with permanent redirect to https, and it seems that simply downloading the repo and putting it in the public_html does not do the job somehow, I get 500 response.
At the same time, server runs shaarli in the same directory and it works fine, with the same file permissions, so I doubt it's the webserver configuration.
I have enabled extension=php_openssl.dll (should I restart something? I restarted apache2 and nginx after that, with no change). Also, I have created whitelist.txt file manually and filled it with WikipediaBridge only, just to be sure that it is not due to some not working bridges that crash the app.
So, my question is, have you encountered something like this and maybe have an idea how to solve it?
Best regards!
Filip

Do you see any hint of that error in your /var/log/nginx/error.log and /var/log/apache2/error.log ?

Ok, so there are no error logs in apache2/error.log concerning the connection, and the only thing that can be seen regarding my recent changes is
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20121212/php_openssl.dll' - /usr/lib/php5/20121212/php_openssl.dll: cannot open shared object file: No such file or directory in Unknown on line 0

which may seem kind of obvious, since I am running Linux, and I want dll to be included... but let it be this way, I am pretty sure https works anyway, since it does on other sites.
In nginx/error.log though, there are those sort of errors:
2016/09/09 14:50:55 [error] 28018#0: *1 connect() failed (111: Connection refused) while connecting to upstream, client: <IP_ADDRESS>, server: bridge.example.com, request: "GET / HTTP/1.1", upstream: "https://[::1]:8060/", host: "bridge.example.com"

As you can see, my apache2 is running on 8060. Does this help in diagnostics in any way? ;)
Best regards!
Filip

And by the way, I have temporarily swapped the directory with the shaarli one, and it still does not work, so URL recognition does not seems to be an issue.

I have finally decided to use DEBUG, and here is the message I get:
 Fatal error: Arrays are not allowed in class constants in /var/www/example.com/public_html/bridge/lib/BridgeAbstract.php on line 9

Thanks for the report, I'll update the required PHP version :)


Proxy volume mount of /var/run prevents netns cleanup

The weaveproxy volume mount of /var/run captures references to extant Docker network namespaces in /var/run/docker/netns due to Docker's use of MS_REC (mount --rbind) on bind mount creation. This prevents associated veths from being cleaned up on container exit, potentially resulting in duplicate IP address use and other mayhem.
Reproducible on Docker 1.7.1 but not Docker 1.8.2 (Edit - no longer true - see below)

I've found the relevant code difference between docker 1.7.1 and 1.8.2 that causes 1.7.1 to bind-mount the netns handles into /var/run/docker/netns and 1.8.2 not.  It's dispersed, so hard to point to.  There doesn't appear to be anything we can do to prevent this in behaviour in 1.7.1.

do we know which version of docker introduced the change?

do we know which of 1.8.0, 1.8.1 or 1.8.2 introduced the change?

I can't reproduce it in 1.8.0, 1.81 or 1.8.2.

iirc @dpw said that older versions of docker don't suffer from this. So which version introduced the problem?

I don't see the problem with docker-1.5.0 on ubuntu 15.04. But Adam testing suggest that the problem might not only be dependent on the docker version.

Confirming Adam's finding: With docker-1.7.1 on ubuntu 15.04 the dangling veth disappears within a minute, and even immediately after container creation, there are no /var/run/docker/netns/* entries in /proc/mounts.  That differs from the behaviour of docker-1.7.1 on ubuntu 14.04 in both respects.  docker version and apt-cache show lxc-docker confirm that it is exactly the same version of docker.

My current results:
Docker 1.7.1, 1.8.0, 1.8.1, 1.8.2 all unaffected on Ubuntu 15.04
Docker 1.7.1 affected on 14.10
Test of 1.8.2 + 15.04 in progress...

older versions of docker don't suffer from this. So which version introduced the problem?

Ubuntu :smile:
Docker 1.8.2 + Ubuntu 14.10 has the same issue - netns entries in /proc/mounts and persistent dangling veth. Confirmed the other end of the veth is trapped inside the weaveproxy mount namespace with David's improved scan script.

Ubuntu 14.10 is 3.16.0-37
Ubuntu 15.04 is 3.19.0-21

I assume Ubuntu 14.04 is also affected?

I assume Ubuntu 14.04 is also affected?

Yes, same problem with 14.04 + 1.7.1. We're currently trying to understand why Docker behaves differently on 15.04.

I have got to the bottom of why on ubuntu 15.04 the net namespace handles from /var/run/docker/netns don't show up in /proc/mounts.
On ubuntu 15.04, the docker daemon is started by systemd.
/lib/systemd/system/docker.service:
MountFlags=slave

man systemd.exec:

MountFlags=
Takes a mount propagation flag: shared, slave or private, which control whether mounts in the file system namespace set up for this unit's processes will receive or propagate mounts or unmounts. [...] Use slave to run processes so that none of their mounts and unmounts will propagate to the host.

So the docker daemon is in its own private mount namespace, and its mounts (including those in /var/docker/netns) do not propagate to the host namespace, and do not show up in the /proc/mounts of the host namespace.
But... when the docker daemon starts a container with -v /var/run:/var/run, it bind-mounts the /var/run from its own mount namespace, and the container snapshots the netns handle mounts under /var/docker/netns.  So this does not prevent the netns capture issue!
So why does the lingering vethweplNNNNN netdev disappear before 60 seconds passes?  I'm still not sure about that, but I have an idea which I will test tomorrow.
Note that if you edit docker.service and comment out that Mount line, then the /var/docker/netns mounts for containers do appear in /proc/mounts.  But the lingering vethweplNNNNN still disappears.  This demonstrates that the two phenomena are independent.

So why does the lingering vethweplNNNNN netdev disappear before 60 seconds passes? I'm still not sure about that, but I have an idea which I will test tomorrow.

This one is due to a difference in kernel behaviour.
Docker 1.7.1 has similar "garbage collection" code to 1.8.x in libnetwork/sandbox/namespace_linux.go, which once a minute deletes unused files from /var/run/docker/netns. Note that the unmount of the netns mounts happens when the container is stopped, which usually allows the netns to go away. Garbage collection is just about deleting the mount point files that get left behind. (So it's unclear to me what the rationale for this arrangement is - why not delete the files immediately? Anyway...)
We can replicate this process with a netns created by ip netns add. Under docker 1.7.1 and ubuntu 14.04, first we create a netns and a container to capture it:
# ip netns add foo
# docker run -itd -v /var/run:/var/run --name=test ubuntu
742bc8fca0f0d15df095f78039768018a5350b25c0363b70689e04143699d121
# grep foo /proc/mounts
proc /run/netns/foo proc rw,nosuid,nodev,noexec,relatime 0 0
# docker exec test grep foo /proc/mounts
proc /run/netns/foo proc rw,nosuid,nodev,noexec,relatime 0 0

Now if we try to delete the netns:
# ip netns del foo
Cannot remove namespace file "/var/run/netns/foo": Device or resource busy

ip netns del first unmounts the netns mount, then deletes the mount point file.  The unmount actually succeeded, it's the deletion that failed, as we can confirm:
# rm /var/run/netns/foo
rm: cannot remove ‘/var/run/netns/foo’: Device or resource busy

We can see that the netns mount is gone from the host, but it's still there in the container's mount ns:
# grep foo /proc/mounts
# docker exec test grep foo /proc/mounts
proc /run/netns/foo proc rw,nosuid,nodev,noexec,relatime 0 0

It's that mount in the container that is preventing the deletion.  The container mount ns is independent of the host mount ns, so unmounting on the host does not affect the container.  But the underlying file system for /var/run is shared.  If we could delete the file, it would create an anomalous situation inside the container where a mount exists but its mount point is gone.  The kernel version in 14.04 (3.16.0-49 for me) avoids this by disallowing the deletion.
If you look at docker's namespace_linux.go, you'll see that the error value returned from the os.Remove  of the mount point files gets ignored.  So it tries to garbage collect them, but doesn't notice if it can't.
We can repeat the experiment on ubuntu 15.04 (still docker 1.7.1; kernel 3.19.0-28).  Except that the same Mount=slave issue that prevents docker's netns mounts showing up in the host /proc/mount prevents the netns created by ip netns add foo on the host showing up in containers.  So you have to restart the docker service with the Mount setting commented out to perform the same experiment.
If you do that, with the same setup as before, the ip netns del foo succeeds.  The mount is gone, both on the host and in the container:
# grep foo /proc/mounts
# docker exec test grep foo /proc/mounts

So this kernel version uses a different approach to prevent the mount-without-a-mount-point anomaly: when you delete a file that is a mount point in some other mount ns, it automatically unmounts them.
So under ubuntu 15.04, the garbage collection successfully removes the mount points, zapping any captured netns mounts, and so releasing netdevs in them.
Here's the relevant kernel commit: https://github.com/torvalds/linux/commit/8ed936b5671bfb33d89bc60bdcc7cf0470ba52fe

(Wrong button)

I've found the relevant code difference between docker 1.7.1 and 1.8.2 that causes 1.7.1 to bind-mount the netns handles into /var/run/docker/netns and 1.8.2 not.

No I hadn't.

@dpw fantastic piece of detective work, well done!
@fermayo there is a linux-image-3.19.0-28-generic package for trusty; I've just confirmed that it fixes the netns capture issue with the weave proxy, a result which should extend to other containers that volume mount /var/run.

so is the overall conclusion that one needs to run a kernel >= 3.19 to fix this problem?
I reckon we should still prevent the proxy from mounting /var/run; in many setups it will be the only container doing this and hence the only reason why running on older kernels wouldn't work.

so is the overall conclusion that one needs to run a kernel >= 3.19 to fix this problem?

The commit David tracked down first appears in 3.18.0, but yes it is looking that way.

so kernel >= 3.18.0?

so kernel >= 3.18.0?

awh@terraqueous:~/workspace/github.com/torvalds/linux [master] $ git tag --contains 8ed936 | grep -v rc
v3.18
v3.19
v4.0
v4.1
v4.2

The commit that introduced the libnetwork "garbage collection" thing, in case anyone else wants to try to figure out what it is intended to achieve: https://github.com/docker/libnetwork/commit/05462c27b2d9ea9574549bbc8ddcfd83b06ebd0e

The commit that introduced the libnetwork "garbage collection" thing, in case anyone else wants to try to figure out what it is intended to achieve: docker/libnetwork@05462c2

I have asked

I have created a script that reproduces the scenario where the captured network namespace prevents a client container ('loadbalancer') from getting an updated MAC address when a service container ('frontend') is destroyed and recreated with a different MAC but the same IP (NB requires kernel prior to 3.18.0 as described above):
#!/bin/sh

echo ">>> Resetting environment"
docker rm -f $(docker ps -aq)
./weave launch

echo ">>> Launching loadbalancer container"
./weave run <IP_ADDRESS>/24 -tid --name lb ubuntu
docker exec lb ip addr show dev ethwe
echo; echo; echo

echo ">>> Launching frontend container"
docker run --name fe -tid ubuntu
./weave attach <IP_ADDRESS>/24 fe
docker exec fe ip addr show dev ethwe
echo; echo; echo

echo ">>> Pinging frontend from loadbalancer"
docker exec lb ping -c 1 <IP_ADDRESS>
docker exec lb ip neigh show
echo; echo; echo

echo ">>> Capturing frontend namespace with /var/run volume mount"
docker run -v /var/run:/var/run --name binder -tid ubuntu
echo; echo; echo

echo ">>> rm/run/attach frontend container"
docker rm -f fe

docker run --name fe -tid ubuntu
./weave attach <IP_ADDRESS>/24 fe
docker exec fe ip addr show dev ethwe
echo; echo; echo

echo ">>> Pinging frontend from loadbalancer again"
docker exec lb ping -c 1 <IP_ADDRESS>
docker exec lb ip neigh show
echo; echo; echo

Here is a run where you can see the second ping succeeds but the neighbour cache has the old MAC:
>>> Launching loadbalancer container
b4b8ee07c863133e30f3b07774f939b0fdbc093b67b59325d02ca3e4985dbff4
374: ethwe: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65535 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether c2:fe:14:ff:0c:24 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/24 scope global ethwe
       valid_lft forever preferred_lft forever
    inet6 fe80::c0fe:14ff:feff:c24/64 scope link tentative
       valid_lft forever preferred_lft forever

>>> Launching frontend container
53b12a884b24cd0becf06486e5dcca7e5ebefd507c0eb4d3247c6fb5b3c1a517
<IP_ADDRESS>
378: ethwe: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65535 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 82:74:61:8d:19:86 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/24 scope global ethwe
       valid_lft forever preferred_lft forever
    inet6 fe80::8074:61ff:fe8d:1986/64 scope link tentative
       valid_lft forever preferred_lft forever

>>> Pinging frontend from loadbalancer
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.077 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.077/0.077/0.077/0.000 ms
<IP_ADDRESS> dev ethwe lladdr 82:74:61:8d:19:86 REACHABLE

>>> Capturing frontend namespace with /var/run volume mount
3a006d17183abf86df0561f848b5fa05c28de632796f3b4b01a73b0c02f072b4

>>> rm/run/attach frontend container
fe
0ff07b8c8f0608fd0558f619e26d43b2c30071be9ee0ae0133bfd831e9ecf61c
<IP_ADDRESS>
384: ethwe: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65535 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 96:18:68:4f:88:02 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/24 scope global ethwe
       valid_lft forever preferred_lft forever
    inet6 fe80::9418:68ff:fe4f:8802/64 scope link tentative
       valid_lft forever preferred_lft forever

>>> Pinging frontend from loadbalancer again
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.052 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.052/0.052/0.052/0.000 ms
<IP_ADDRESS> dev ethwe lladdr 82:74:61:8d:19:86 DELAY

This is the corresponding tcpdump of the weave bridge from the host:
$ sudo tcpdump -e -n -i weave arp or icmp
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on weave, link-type EN10MB (Ethernet), capture size 262144 bytes
15:30:00.471053 c2:fe:14:ff:0c:24 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> (ff:ff:ff:ff:ff:ff) tell <IP_ADDRESS>, length 28
15:30:01.515307 82:74:61:8d:19:86 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> (ff:ff:ff:ff:ff:ff) tell <IP_ADDRESS>, length 28
15:30:02.227823 c2:fe:14:ff:0c:24 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> tell <IP_ADDRESS>, length 28
15:30:02.227845 82:74:61:8d:19:86 > c2:fe:14:ff:0c:24, ethertype ARP (0x0806), length 42: Reply <IP_ADDRESS> is-at 82:74:61:8d:19:86, length 28
15:30:02.227853 c2:fe:14:ff:0c:24 > 82:74:61:8d:19:86, ethertype IPv4 (0x0800), length 98: <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 21, seq 1, length 64
15:30:02.227872 82:74:61:8d:19:86 > c2:fe:14:ff:0c:24, ethertype IPv4 (0x0800), length 98: <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo reply, id 21, seq 1, length 64
15:30:03.438629 96:18:68:4f:88:02 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> (ff:ff:ff:ff:ff:ff) tell <IP_ADDRESS>, length 28
15:30:04.235245 82:74:61:8d:19:86 > c2:fe:14:ff:0c:24, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> tell <IP_ADDRESS>, length 28
15:30:04.235275 c2:fe:14:ff:0c:24 > 82:74:61:8d:19:86, ethertype ARP (0x0806), length 42: Reply <IP_ADDRESS> is-at c2:fe:14:ff:0c:24, length 28
15:30:04.244479 c2:fe:14:ff:0c:24 > 82:74:61:8d:19:86, ethertype IPv4 (0x0800), length 98: <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 30, seq 1, length 64
15:30:04.244508 82:74:61:8d:19:86 > c2:fe:14:ff:0c:24, ethertype IPv4 (0x0800), length 98: <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo reply, id 30, seq 1, length 64
15:30:06.247825 c2:fe:14:ff:0c:24 > 82:74:61:8d:19:86, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> tell <IP_ADDRESS>, length 28
15:30:06.247846 82:74:61:8d:19:86 > c2:fe:14:ff:0c:24, ethertype ARP (0x0806), length 42: Reply <IP_ADDRESS> is-at 82:74:61:8d:19:86, length 28

It's not 100% reproducible however - here is the output of the next script run where you can see the neighbour cache has been updated to the new MAC:
>>> Launching loadbalancer container
723168dcee827fb72f998db42ffd7f856b57c2a67a0794c70c31f0abc4db9b55
414: ethwe: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65535 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether ce:d0:80:c0:96:20 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/24 scope global ethwe
       valid_lft forever preferred_lft forever
    inet6 fe80::ccd0:80ff:fec0:9620/64 scope link tentative
       valid_lft forever preferred_lft forever

>>> Launching frontend container
2ce754ed6caff94acfd164cd920678ba570fdf80343cf7feb97bc30485c4abf6
<IP_ADDRESS>
418: ethwe: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65535 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether d2:09:ac:90:3e:dc brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/24 scope global ethwe
       valid_lft forever preferred_lft forever
    inet6 fe80::d009:acff:fe90:3edc/64 scope link tentative
       valid_lft forever preferred_lft forever

>>> Pinging frontend from loadbalancer
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.001 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.001/0.001/0.001/0.000 ms
<IP_ADDRESS> dev ethwe lladdr d2:09:ac:90:3e:dc REACHABLE

>>> Capturing frontend namespace with /var/run volume mount
155a9a6767d2694f917151f0091668d12a73cf29032ee25a5172010c65d4a9bd

>>> rm/run/attach frontend container
fe
3d803b594cfdcc335ddb63ac814cdcaae11d22c80fe066ecc993ad0b7214f3e4
<IP_ADDRESS>
424: ethwe: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 65535 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether d6:ec:6d:d2:9f:27 brd ff:ff:ff:ff:ff:ff
    inet <IP_ADDRESS>/24 scope global ethwe
       valid_lft forever preferred_lft forever
    inet6 fe80::d4ec:6dff:fed2:9f27/64 scope link tentative
       valid_lft forever preferred_lft forever

>>> Pinging frontend from loadbalancer again
PING <IP_ADDRESS> (<IP_ADDRESS>) 56(84) bytes of data.
64 bytes from <IP_ADDRESS>: icmp_seq=1 ttl=64 time=0.081 ms

--- <IP_ADDRESS> ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.081/0.081/0.081/0.000 ms
<IP_ADDRESS> dev ethwe lladdr d6:ec:6d:d2:9f:27 STALE

Corresponding tcpdump output:
15:44:34.594849 ce:d0:80:c0:96:20 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> (ff:ff:ff:ff:ff:ff) tell <IP_ADDRESS>, length 28
15:44:35.635886 d2:09:ac:90:3e:dc > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> (ff:ff:ff:ff:ff:ff) tell <IP_ADDRESS>, length 28
15:44:36.316816 ce:d0:80:c0:96:20 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> tell <IP_ADDRESS>, length 28
15:44:36.316816 d2:09:ac:90:3e:dc > ce:d0:80:c0:96:20, ethertype ARP (0x0806), length 42: Reply <IP_ADDRESS> is-at d2:09:ac:90:3e:dc, length 28
15:44:36.316817 ce:d0:80:c0:96:20 > d2:09:ac:90:3e:dc, ethertype IPv4 (0x0800), length 98: <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 24, seq 1, length 64
15:44:36.316817 d2:09:ac:90:3e:dc > ce:d0:80:c0:96:20, ethertype IPv4 (0x0800), length 98: <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo reply, id 24, seq 1, length 64
15:44:37.528198 d6:ec:6d:d2:9f:27 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> (ff:ff:ff:ff:ff:ff) tell <IP_ADDRESS>, length 28
15:44:38.217009 ce:d0:80:c0:96:20 > d6:ec:6d:d2:9f:27, ethertype IPv4 (0x0800), length 98: <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo request, id 34, seq 1, length 64
15:44:38.217043 d6:ec:6d:d2:9f:27 > ff:ff:ff:ff:ff:ff, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> tell <IP_ADDRESS>, length 28
15:44:38.217056 ce:d0:80:c0:96:20 > d6:ec:6d:d2:9f:27, ethertype ARP (0x0806), length 42: Reply <IP_ADDRESS> is-at ce:d0:80:c0:96:20, length 28
15:44:38.217064 d6:ec:6d:d2:9f:27 > ce:d0:80:c0:96:20, ethertype IPv4 (0x0800), length 98: <IP_ADDRESS> > <IP_ADDRESS>: ICMP echo reply, id 34, seq 1, length 64
15:44:38.319814 d2:09:ac:90:3e:dc > ce:d0:80:c0:96:20, ethertype ARP (0x0806), length 42: Request who-has <IP_ADDRESS> tell <IP_ADDRESS>, length 28
15:44:38.319844 ce:d0:80:c0:96:20 > d2:09:ac:90:3e:dc, ethertype ARP (0x0806), length 42: Reply <IP_ADDRESS> is-at ce:d0:80:c0:96:20, length 28

The tcpdump traces hold the answer. In both cases you can see the arping ethernet broadcast packets for the new frontend container (time indices 15:30:03.438629 and 15:44:37.528198 respectively) - these update the ARP cache in the loadbalancer to the new MAC. You can also see that in both instances there is a unicast ARP probe from the old frontend container captured netns to the loadbalancer (time indices 15:30:04.235245 and 15:44:38.319814), which will update the ARP cache in the loadbalancer back to the old MAC. The difference is that in the first trace this unicast ARP probe happens before the second ping, whereas in the second trace it happens after.
Immediately after the second script run:
$ docker exec lb ip neigh show
<IP_ADDRESS> dev ethwe lladdr d2:09:ac:90:3e:dc STALE

The unicast ARP probe at 15:44:38.319814 has flipped the MAC back to the old value again.

Back to the ostensible subject of this issue, i.e. the proxy mounting /var/run...
One cannot create domain sockets in advance and then listen on them, so I guess we'll have to create a sub-dir (/var/run/weave) and mount that instead.
Any better suggestions? Because if that is the best we can come up with then it can't go into 1.1.1 since the location of the weave socket is likely hard-coded in some apps.

Any better suggestions? Because if that is the best we can come up with then it can't go into 1.1.1 since the location of the weave socket is likely hard-coded in some apps.

If we care enough about it, we could make the proxy umount all undesirable mounts.  That's not a trivial fix, but it would be suitable for 1.1.1.

could we create a symlink from /var/run/weave.sock to /var/run/weave/weave.sock?

Possibly, we could also, touch /var/run/weave.sock before launching, and mount just that file into the proxy, and replace it with a unix socket...

For posterity - David's improved netns scanning script:
#!/bin/sh

netns_seen=" "
mntns_seen=" "

do_netns () {
    if [ -n "$1" ] && ! echo "$netns_seen" | grep -qF " $1 "; then
        netns_seen=" $1$netns_seen"
        echo === $2 ===
        nsenter --net=$2 ip addr show
    fi
}

for p in $(find /proc/[0-9]* -path '*/ns/net' -print) ; do
    do_netns "$(readlink $p 2>/dev/null)" $p
done

for p in $(find /proc/[0-9]* -path '*/ns/mnt' -print) ; do
    l=$(readlink $p)
    if ! echo "$mntns_seen" | grep -qF " $l "; then
        mntns_seen=" $l$mntns_seen"
        p=${p%/ns/mnt}
        grep "^proc " $p/mounts | while read dev mntpt fstype rest ; do
            n="$p/root$mntpt"
            do_netns "$(nsenter --net=$n readlink /proc/self/ns/net 2>/dev/null)" $n
        done
    fi
done


warning: unused variable: errcode

Describe the bug
warning: unused variable: errcode
--> src/b9/lua.rs:394:17
|
394 |             let errcode = Rc::new(RefCell::new(res.status().as_u16()));
|                 ^^^^^^^ help: if this is intentional, prefix it with an underscore: _errcode
|
= note: #[warn(unused_variables)] on by default
warning: webx (bin "webx") generated 1 warning
and websites don't loading
To Reproduce
Steps to reproduce the behavior:

Follow compilation for Mac OS
Run cargo run
3 Get the error

Expected behavior
website loading
Screenshots

Desktop (please complete the following information):

OS: Mac OS X
Version 14.5

Additional context

The warning has nothing to do with this I have this issue but only when first opening up the browser

but websites won't load @GStudiosX2

but websites won't load @GStudiosX2

Press ctrl + shift + s

MIMICKING - TYPE: debug, INFO: Failed to send HTTP request to DNS API.
@GStudiosX2

MIMICKING - TYPE: debug, INFO: Failed to send HTTP request to DNS API. @GStudiosX2

Yes press ctrl + shift + s show what the menu has

dns server "api.buss.lol"
@GStudiosX2

dns server "api.buss.lol" @GStudiosX2

Change it to https://api.buss.lol


Disable switch months animation by swipe(only default scroll months is required)

Version of flutter_calendar_carousel
flutter_calendar_carousel: ^1.4.10
Expected behavior
Disable month animation when switching months
Actual behavior
Months always change with shift/zoom animation
flutter doctor result (run flutter doctor in terminal)
[✓] Android Studio (version 3.5)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin version 42.1.1
• Dart plugin version 191.8593
• Java version OpenJDK Runtime Environment (build
1.8.0_202-release-1483-b49-5587405)
[✓] VS Code (version 1.40.2)
• VS Code at /Applications/Visual Studio Code.app/Contents
• Flutter extension version 3.7.0
[!] Connected device
! No devices available
! Doctor found issues in 1 category.
Steps to reproduce the behavior
Swipe months

Why would you want this? You can change without an animation if you want.

I need to disable it as it is causing overflow error when I swipe (due to animation).

Doesn't give any error when I change month using arrow keys


Fix for https://github.com/kubernetes/kube-ui/issues/10

FAIL: Missing 16 expected files caused by bad path

@jackgr — can you review https://github.com/kubernetes/kube-ui/pull/11 for me please when you've got a spare cycle or two.

@rrmckinley can you take a look at this?

LGTM


[WIP] Check the tests for t.switchToIframe() implementation

@testcafe-build-bot \retest

@testcafe-build-bot \retest

The PR covers different scenarios with iframes. You can see how does it look in the tests.
Functional tests are ok. Client tests are almost ok, it seems there is an issue in the client tests on Android but it doesn't depend to iframes, so it's ready to review
/cc @inikulin @helen-dikareva @VasilyStrelyaev

@AlexanderMoskovkin Can you describe in couple of sentences how it works?

Especially it's not clear for me why we have ClientDriverBase with only one descendant class - MainWindowDriver, can't they be merged?

Same for DriverAdapter and IFrameDriverAdapter

Sure. There are MainWindowDriver (in the top window)  and IframeDriver (in each iframe) (they are extend ClientDriverBase). (@inikulin it seems you've missed IframeDriver)
When MainWindowDriver need to execute a command in the iframe it just resend the command to the appropriate IframeDriver and wait for response.
To encapsulate inter-dirver communication we use DriverAdapter.
If we need to send a command to iframe1, we create var iframeDriverAdapter = new IframeDriverAdapter(iframe1Selector) and call iframeDriverAdapter.executeCommand(command).then(status => {//do anything}).
Adapter check iframe existence, has work with messageSandbox etc.. As a result the appropriate IframeDriver gets a command to execute and execute it. To return a status IframeDriver just call this.parentDriverAdapter.onCommandExecuted(status)

What about adapters.
In fact it should be DriverAdapterBase, ParentDriverAdapter, IframeDriverAdapter. But ParentDriverAdapter is equal with DriverAdapterBase, and IframeDriverAdapter extends DriverAdapterBase

in fact DriverAdapter - is an instance of the driver from another frame.

We need some better naming for adapter then, because it's purpose currently unclear from name.

Also, is ClientDriverBase  is abstract class? Because we use Base only for abstract classes. Otherwise, we shouldn't have common ancestor base class and MainWindowDriver should include ClientDriverBase  functionality, while IFrameDriver should be it's successor. Same for adapters.

\r-

Thinking about it a little bit more: we should have Driver and IframeDriver classes. IframeDriver inherits from Driver. For links we should have abstract DriverLinkBase and ParentIframeDriverLink and ChildIframeDriverLink

@inikulin Driver, IframeDriver or ClientDriver (as it is now), IframeDriver?

Driver, IframeDriver

lgtm

fpr

I'll review later, meanwhile others can take a look. I suggest to involve more people into review process since it's quite complicated and important piece of functionality.

I suggest to involve more people into review process since it's quite complicated and important piece of functionality.

agree.
/cc @helen-dikareva @georgiy-abbasov @churkin

ping @helen-dikareva @georgiy-abbasov @churkin @inikulin

lgtm

lgtm

lgtm

\r-

FPR

One last thing: can we rename iframe.js to iframe-driver.js?

yep

FPR

FYI: don't merge this before #598 is merged. I'll do rebase and merge this PR after #598 is closed (if this PR is lgtm for all now)

@AlexanderMoskovkin I guess you will need to rewrite it a little bit, because "ensure element" machinery was completely moved to action executor

FPR

\r-

FPR

lgtm

lgtm


[Feature] Add build arch info when showing FE/BE version

Why I'm doing:
User can rely on this info to determin whether it's the right package to run on current host.
What I'm doing:
Add build arch info when showing FE/BE version.
# sh bin/show_fe_version.sh
...
Build arch: arm64
...

Tested on macOS, AWS graviton, and x86 ECS,
the corresponding values are: arm64, aarch64, x86_64.
Fixes https://github.com/StarRocks/starrocks/issues/48575.
What type of PR is this:

[ ] BugFix
[x] Feature
[ ] Enhancement
[ ] Refactor
[ ] UT
[ ] Doc
[ ] Tool

Does this PR entail a change in behavior?

[ ] Yes, this PR will result in a change in behavior.
[x] No, this PR will not result in a change in behavior.

If yes, please specify the type of change:

[ ] Interface/UI changes: syntax, type conversion, expression evaluation, display information
[ ] Parameter changes: default values, similar parameters but with different default values
[ ] Policy changes: use new policy to replace old one, functionality automatically enabled
[ ] Feature removed
[ ] Miscellaneous: upgrade & downgrade compatibility, etc.

Checklist:

[x] I have added test cases for my bug fix or my new feature
[ ] This pr needs user documentation (for new or modified features or behaviors)

[ ] I have added documentation for my new feature or new function

[ ] This is a backport pr

Bugfix cherry-pick branch check:

[x] I have checked the version labels which the pr will be auto-backported to the target branch

[x] 3.3
[x] 3.2
[x] 3.1
[ ] 3.0
[ ] 2.5

@mergify backport branch-3.3

@mergify backport branch-3.2

@mergify backport branch-3.1


Security policy cleanups

We have a SECURITY.md in both this repo and the org.  With the proliferation of repos, it would be better to keep a canonical one for the org.
It still references Keybase which I, uh, logged out of when Typelevel updated theirs.
See related Typelevel issue proposing a move to the beta GitHub reporting.  This looks like a solid primary, with an e-mail backup for anyone who can't or won't use GitHub.

Out of curiosity: is there a reason http4s can't just delegate to the typelevel security policy?


Break hbgd into sub-packages

It has been proposed to break the hbgd package into sub-packages.  I've been thinking of doing this as well.
Here are 4 proposed packages:

hbgdData: data loading, checking, variable labels, meta data, etc.
hbgdModel: apply models
hbgdVis: summary visualization methods and trelliscope methods
growthstandards: WHO and INTERGROWTH growth standard calculations, as well as unit conversion functions and growth curve vis methods

The hbgd package would still exist but would just be an empty shell that loads all the other packages.  Ideally someone loading hbgd would be able to operate just as before.
@birdsarah, @schloerke, thoughts?

Makes sense.
So, re-export each method? Similar to ggplot2::arrow is grid::arrow?

Thanks for taking the initiative @hafen.
As an hbgd neohpyte, it would be extremely helpful if you could quickly list out which of the R files (e.g. plot_compare.R, analysis_want.R) fit into each of these four categories.

@hafen - just to keep you updated. It looks like the continuum team is being nudged in a different direction for the time being so there's no longer urgency / impetus from our side.
Have a great vacation!


feat: Add interpreter option to wait_for_cluster_cmd

PR o'clock
Description
Allow to configure interpreter item for the wait_for_cluster_cmd command. Potential improvement into compatibility with Windows
https://github.com/terraform-aws-modules/terraform-aws-eks/issues/680
Checklist

[x] Change added to CHANGELOG.md. All changes must be added and breaking changes and highlighted
[ ] CI tests are passing
[x] README.md has been updated after any changes to variables and outputs. See https://github.com/terraform-aws-modules/terraform-aws-eks/#doc-generation

rel.
https://github.com/terraform-aws-modules/terraform-aws-eks/pull/639
https://github.com/terraform-aws-modules/terraform-aws-eks/pull/701

module "eks" {
  source  = "terraform-aws-modules/eks/aws"
  # windows workaround
  wait_for_cluster_interpreter = ["c:/git/bin/sh.exe", "-c"]
  wait_for_cluster_cmd         = "until curl -sk $ENDPOINT >/dev/null; do sleep 4; done"
}

can this variable be added at node group, worker group level and not at cluster level ?

Doesn't this break Linux nodes?

@Type1J it is optional parameter, if not specified safe defaults will be used instead

I meant in the same cluster. I haven't tried it, but as @amitsehgal implied, the worker group could be Linux or Windows, and since this is specified at the module level, it seems that this parameter would affect both worker groups, so only 1 worker group would have the correct interpreter. Again, I haven't tried it, yet. I'm evaluating this module for use in a mixed (Linux and Windows) EKS cluster, so I'd like to understand it.

@Type1J not sure how it supposed to affect individual worker groups, the command being executed locally to confirm k8s api readiness

Oh. Thanks for the clarification.


File Uploader control - Not able to Disable

Hello,
I am working with the File Uploader control and I am passing abap_false to the "enabled" attribute as below but somehow it is not getting disabled.
ir_parent->_z2ui5( )->file_uploader(
  value             = ir_client->_bind_edit( val = me->ms_screen-file_value view = ir_client->cs_view-nested )
  path              = ir_client->_bind_edit( val = me->ms_screen-file_path view = ir_client->cs_view-nested )
  upload            = ir_client->_event( iv_event_id )
  buttononly        = abap_true
  buttontext        = TEXT-t23
  icononly          = abap_false
  checkdirectupload = abap_true
  enabled           = abap_false ).

May I request you to have a look and let me know how to fix it.
Regards,
Viraj Coulecar

hi Viraj, enabled property is missing from CC implementation.. should be added, hope i get the time to do so, feel free to add it if u want in the CC js code..

fixed with https://github.com/abap2UI5/abap2UI5/pull/1334

@VirajCoulecar the issue and tested from my side. i will close this one. just reopen if you have further questions.


Question?... using this to stream SEEK thermal video from a mavic mini?

i have a mini usb seek compact pro, and a mavic mini... what's the best way to get this done?
what's needed? parts list?

Sorry, you would need a companion computer (like a raspberry pi zero) at least, and currently Maverick only deals with Mavlink UAVs like Ardupilot/PX4.  We'd like to support DJI craft in the future but at the moment it's not possible/feasible.


nuclei: init at 2.2.0

Motivation for this change
Nuclei is used to send requests across targets based on a template
leading to zero false positives and providing effective scanning
for known paths. Main use cases for nuclei are during initial
reconnaissance phase to quickly check for low hanging fruits or
CVEs across targets that are known and easily detectable.
https://github.com/projectdiscovery/nuclei
Related to #81418
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.


Track 2 Speech Library Work Tracking Issue

This issue tracks work identified to get Speech APIs to Track 2 state
Many issues are tracked in API View:
https://apiview.dev/Assemblies/Review/f0c346649b824c449b0fabec867d6993
Additional high-level, cross-cutting  issues/questions:
More Urgent/Ambiguous

[ ] What "Clients" types should this library have? VoiceProfileClient should not use "Client" suffix
[ ] What's the auth story and specifically AAD support?
[ ] Some APIs call REST services and should follow the regular Azure SDK guidelines.
[ ] We cannot have "surprising" types be disposable. Should we copy data instead?
[ ] Do we need to refactor some types into a shared library (between Speech, Communications, and possibly other Cognitive)?

Less Urgent/Straightforward

[ ] The library needs to support mocking
[ ] Generic names need to be removed, e.g. Connection, User, Recognizer, DisposableBase
[ ] What namespace should we use?
[ ] Support distributed tracing, logging, telemetry
[ ] Add cancellation tokens to all APIs that do I/O
[ ] We should not have pubternal APIs, i.e. namespaces called "Internal".

Some additional high-level issues/questions:

[ ] Track 2 clients are immutable - should Speech clients be as well?
[ ] Clients lack composability - e.g. TranslationRecognizer adds translation and synthesis functionality directly into a recognizer.  Is this the right pattern for Cognitive in general?
[ ] Methods are async ... should there be sync methods as well?
[ ] Factory patterns are used in place of constructors - we avoid this in Track 2.

@pallavit :  Do you know if this is still an active workstream or if we can close out this issue?

No active stream here, closing as not planned.


How to migrate from v1 legacy helm chart?? Mapping of settings

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?
I'm guessing all the custom specific Helm settings got removed from values.yaml and instead we have to manually map the settings previously defined as Helm key:values into strings in additionalArguments: []. It would be extremely helpful to get a mapping of legacy helm key:value settings into their corresponding additionalArguments.
I.E.
ssl: *
kvprovider: *
acme: *
gzip.enabled: true
forwardedHeaders.enabled: true
forwardedHeaders.trustedIPs: []

Hello @nodesocket,
Thanks for this issue and your interest on Traefik.
There is a complete migration guide.
There has been many (breaking) changes since last version of Traefik v1, and so there is not really a mapping between v1 config and v2 config.
I'll close this issue but feel free to open a PR if you think you have a way to provide this mapping or (at least) some help for users coming from v1.


Remove Parrable browser plugin

Hi Snowplow, on behalf of Parrable I'd like to request that our browser plugin be removed.
It implements outdated functionality that we introduced 4 years ago (https://github.com/Parrable/snowplow-javascript-tracker/pull/1) and we have not had any installations using the Snowplow Parrable tracker in a long time.
Specifically, the functionality that the Parrable plugin provides is reading an optout cookie which has since been renamed from the value used here.
It appears that you're preparing the v3 release of this repo and now would be a good time to remove the plugin as it's part of the breaking version change.
I can put in the PR to remove our plugin, I just need to know where to look/remove things from. I've gathered this list:

plugins/browser-plugin-parrable
rush.json
common/config/rush.json
trackers/javascript-tracker/tracker.config.ts
trackers/javascript-tracker/tracker.lite.config.ts
trackers/javascript-tracker/configuration.js
trackers/javascript-tracker/features.ts

I'm not familiar with Rush so if there is an easy command to remove ourselves from its config please let me know.
Finally, the npm (https://www.npmjs.com/package/@snowplow/browser-plugin-parrable) can be marked as depricated.
Feel free to reach out to me at<EMAIL_ADDRESS>with any questions.

Hi Ian, Thanks for the update. I've been struggling to find the history of the Parrable features so this is really useful.
I think you've caught all the files that mention it there, I'm more than happy to accept a PR on this or I can remove it myself next week.
There's no easy rush command to remove a package, so manually removing from rush.json and running rush update should do the trick, it'll likely update a couple of common files that should be in the PR. Removing usages from the other files you mention should be enough and the JavaScript trackers package.json.

Hi Paul, thanks for the affirmation on the list of files! I'll put in a PR in the next few days.

Marked as deprecated on npm: https://www.npmjs.com/package/@snowplow/browser-plugin-parrable


NadekoBot being unresponsive.

It seems my life hates me today with the amount of issues I'm having with NadekoBot...
Basically, after I finally got it online I thought I had it working, after half an hour I decided to talk to it like for example "@Nadeko Hello!" and after a minute, still nothing.
I decided to venture out onto other servers that had Nadeko running and had noticed that it would respond back to me when I asked the exact same thing.
Help would be nice! :3

If u want it to response, you have to use this command first >cleverbot

Hello there and thanks for replying.
Since I am quite new to programming(but would be willing to learn), I have no idea on how to enter the command. A reply would be nice, thank you.

Type >cleverbot in the channel where your bot is and it should say "Enabled CleverBot..."
Then, proceed and it should work.

Hello!
I tried typing in "@Nadeko >clever bot" & ">cleverbot" by itself as well but I haven't gotten the message.

Enable cleverbot in the server using >cleverbot, then chat with Nadeko by mentioning the bot in front @Nadeko hi

nvm, It responded to me now, Thanks!