I have some questions regarding our functional testing

Ok, I was not quite attentive to what's going on with our functional testing. Looking at it currently I have some questions:

https://github.com/DevExpress/testcafe/blob/master/test/functional/fixtures/runner/uncaught-js-errors/uncaught-js-errors-test.js#L35 - why runTests resolves with error?
https://github.com/DevExpress/testcafe/blob/master/test/functional/fixtures/runner/uncaught-js-errors/uncaught-js-errors-test.js#L47 - Why tests that names starts with Should fail expects successful completion?
https://github.com/DevExpress/testcafe/tree/master/test/functional/fixtures/runner/api/click - it's hard to determine the actual test and testcafe-test, the difference with naming is minimal. Can we have subdirs, e.g. quarantine-mode/test.js - actual test, quarantine-mode/pages/*.html - markup, quarantine-mode/testcafe-fixtures/*.test.js - TC fixtures?
Why quarantine mode tests are not inside runner directory? BTW, I don't think we need runner directory` for now. We can start with the plain dir structure for now.
https://github.com/DevExpress/testcafe/blob/master/test/functional/fixtures/quarantine-mode/index-test.js#L40 - why we need additional server here? Can't we incorporate this functionality to the already existing test server?

\cc @AlexanderMoskovkin @georgiy-abbasov @AndreyBelym

2 . https://github.com/DevExpress/testcafe/blob/master/test/functional/fixtures/runner/uncaught-js-errors/uncaught-js-errors-test.js#L47 - Why tests that names starts with Should fail expects successful completion?

These tests should fail when the skipJsErrors option is disabled, but they should success when the option is enabled. So, we should change tests names. /cc @georgiy-abbasov

3 . https://github.com/DevExpress/testcafe/tree/master/test/functional/fixtures/runner/api/click - it's hard to determine the actual test and testcafe-test, the difference with naming is minimal. Can we have subdirs, e.g. quarantine-mode/test.js - actual test, quarantine-mode/pages/.html - markup, quarantine-mode/testcafe-fixtures/.test.js - TC fixtures?
4 . Why quarantine mode tests are not inside runner directory? BTW, I don't think we need runner directory` for now. We can start with the plain dir structure for now.

Sure we can. @georgiy-abbasov please do this

1 . https://github.com/DevExpress/testcafe/blob/master/test/functional/fixtures/runner/uncaught-js-errors/uncaught-js-errors-test.js#L35 - why runTests resolves with error?

As i remember we discussed this when functional-harness was implementing. @georgiy-abbasov please describe details of this here

5 .https://github.com/DevExpress/testcafe/blob/master/test/functional/fixtures/quarantine-mode/index-test.js#L40 - why we need additional server here? Can't we incorporate this functionality to the already existing test server?

I guess we can. We will discuss this with @AndreyBelym in private

This was done for pretty print if test unexpectedly fails.

Comparsion:
runtests without then
runtests with then

@georgiy-abbasov You should not sacrifice integrity and correct usage of tooling to achieve pretty printing in the edge cases.

@inikulin, we discussed first and second paragraphs with @AlexanderMoskovkin, and found complexity.
it(`Should success when peforming click action on the present element`,function () {
	return runTests(); // it resolves when success, and rejects when error occures
})

it('Shouldn\'t fail when performing click action on the missing element and shouldFail option enabled', function () {
	return runTests('fixture.test.js', 'testName', {shouldFail:true}); // it always rejects
})

We can refuse shouldFail argument, in that case "should fail" tests might look like this:
it('Shouldn\'t fail when performing click action on the missing element and shouldFail option enabled', function () {
	return runTests('fixture.test.js', 'testName')
        .then(function () {
           throw new Error('Test should be failed but it is succeed');
        })
        .catch(function (err) {
           expect(err).eql(expectedError);
        });
})

What do you think ?

I don't get it, so, what's the problem?

runTests method always rejects when shouldFail option enabled. And it resolves and rejects, when shouldFail option disabled. Different behavior, i mean. It's ok ?

Well, it's says it should fail and... it fails. What's wrong with it?

@inikulin, nothing, just made sure.

Cause we started work to refactor functional tests, i want to ask tech writers. \cc @VasilyStrelyaev, \cc @MargaritaLoseva
We have different test naming, for example:
Should success
Should be successful
Should pass
It's clear, that names are valid, but i think, test names should be more uniform.
And i have one more question. As @inikulin said, it's not clear why tests with name "Should fail" succeed. I have a one variant, @AlexanderMoskovkind suggested another two.

it('Should succes when element isn't present on the page and an exception is thrown')
it('Should not fail when element isn't present on the page if the shouldFail opt is enabled')
it('Should success when element isn't present on the page if the shouldFail opt is enabled')

What do you think ?

@georgiy-abbasov There are 3 options here and it feels like 1 doesn't belong here. Am I wrong?

@georgiy-abbasov
Should success is not a correct phrase at all
Should be successful seems too long
Should pass is ok. Let's stick to it if we want our tests to be named uniformly.

I didn't get the second question.
it('Shouldn\'t fail when performing click action on the missing element with the shouldFail option enabled', function () {

This name looks pretty. If it's not correct as to whether the test fails or not, we should change the first two words accordingly, choosing between should fail and should pass.
Is there a different problem

Ok, let it be 'Should pass when performing click action on the missing element with the shouldFail option enabled'. In that case i have false sense, that test pass only because shouldFail option enabled.

In that case i have false sense, that test pass only because shouldFail option enabled

Aaah, I've finally got it. You've messed it up. But in different way this time

When we say Should pass or Should fail we talk about underlying tescafe test, not the mocha test. Is it clear?

Yes, we mean testcafe behavior.

BTW shouldFailis the helper flag, it shouldn't leak to the test name. It should be just:
Should fail when performing click action on the missing element

In that case i have false sense, that test pass only because shouldFail option enabled

Here should be skipJsError TestCafe option instead of shouldFail. And we should have two tests like this:
Should fail if <condintion>
Should pass if <condintion> when 'skipJsError' is enabled

@AlexanderMoskovkin, thanks, that's correct, because TestCafe doesn't have option shouldFail, it's

Why close?

georgiy-abbasov closed this 10 minutes ago

Why? We haven't fix this yet

Clicked wrong button, sorry.

@VasilyStrelyaev, should we use if instead of when ?

Should fail if <condintion>
Should pass if <condintion> when 'skipJsError' is enabled

interchangeable in this context


[UI] Contact journal: duration field is hard to use

Avoid duplicates

[ ] Bug is not mentioned in the FAQ
[x] Bug is not already reported in another issue

Technical details

Device name: iPhone 8
iOS Version: iOS 14.4.1
App Version: cwa 1.14.4 (0)

Describe the bug

The contact diary has an optional entry for the duration of a contact location. I have discovered two methods how I can enter this duration:
a) scrolling through pre-defined values (granularity 15 minutes)
b) arbitrary values / manual entry with a numerical keyboard
But this numerical keyboard lacks a button for 'Done'.

if I tap the duration field of a line in the upper part of the screen I am lucky. The field stays visible while I enter the value. The work-around for the missing 'Done' button is to tap the line again. This is not very intuitive.
if the line with the duration field is in the lower part of the screen, it is hidden under the keyboard; this forces me to type blindly. If I am done, I can try either to scroll the screen up / the field into visibility; or tap any other line and then toggle it back to its original state.

Steps to reproduce the issue

open the contact diary
enter several locations for a day / fill the page
edit the duration field of the last line

Expected behaviour

the edit field auto-scrolls into visible upper part of the screen, and
a 'Done' button is added to the user interface

Possible Fix

Additional context

Internal Tracking ID: EXPOSUREAPP-5772

A done button on the numerical keyboard would also improve the entering of contact/place information on iPhone SE 1. Gen (https://github.com/corona-warn-app/cwa-app-ios/issues/2185).

Thanks.
Internal Tracking ID: EXPOSUREAPP-5772

Did anyone check the behavior on Android here? (cc @MikeMcC399) 😀

@Ein-Tim
The Android app uses the Android widget https://developer.android.com/reference/android/widget/NumberPicker to set the duration.
In Android it's also possible to use the onscreen keyboard to input times, however the minutes are constrained to 0, 15, 30 an 45 so if you want to type in 22 minutes, for instance, that doesn't work. On my Samsung devices, there is a Done button to complete the input. On a Google Pixel device a ✔ button was displayed instead of the Done button.
Swiping up and down is the easiest method of setting the duration in Android.
The NumerPicker pop-up is displayed at the top of the screen and keyboard is displayed below. I didn't see any problem with accessing any of the fields on Android.

@MikeMcC399
Thanks for the explanation and for the confirmation that everything works.

I just discovered that the picker for the duration looks and feels totally different on my two devices!
I will add screenshots later.
cwa 1.14.4(0) / iOS 14.4.1 / iPhone 8
cwa 1.14.4(0) / iOS 12.5.1 / iPhone 6

On my iPhone 6, there is plenty of room for the picker; it is easy to use; and I would not even consider to use the keyboard here.
On my iPhone 8, the picker is not really visible; it looks rather like an input field; although the picker works (if you know it).

@ndegendogo a new picker was integrated with iOS 14.

Is there any change to the UI in iOS 1.15.x for setting the duration of a place in the Contact Journal?
In Android 1.15.1 it is no longer possible to enter a place duration using the keyboard. The only option is to use the picker to fling hours and minutes up and down. The duration continues to be constrained to multiples of 15 minutes on Android up to a maximum of 23 hours and 45 minutes.

@MikeMcC399 Version 1.15.1 on iPhone 6s, no visible change/improvement.

I can't delete or change persons and places in the diary.
For example:
I click on (+ Ort hinzufügen) then I write the (Beschreibung/ Telefon/E-Mail). I save it.
The issue: If I wrote something wrong, I'm not able to change or delete the (Beschreibung/ Telefon/E-Mail) of the person or place.
On: iPhone X
iOS Version: iOS 14.4.2
App Version: cwa 2.0.3
Steps to reproduce the issue:
When you click on the name of a person/ place and you can edit the time and mask ect.
So my idea to reproduce the issue is to add a button (x) on the right side to delete or change the person/ place.
When you click on the button (x) opens a separate window with the option (Ändern) and (Löschen).
When you click on (Ändern) you can change the (Beschreibung/ Telefon/E-Mail).
When you click ond (Löschen) you delete the person/ place.
Important of the opened window: add a delete button on the right up corner if you don't want to change or delete the person/ place.

@ElenaA411
You can take a look at the blog post, there it is explained how to delete/change entries: https://www.coronawarn.app/de/blog/2020-12-28-corona-warn-app-version-1-10
Improvements reg. the usability are discussed here: #2196 & in the wishlist.

@ElenaA411
Also specifically see "Improve Contact Journal usability for editing and deleting entries" https://github.com/corona-warn-app/cwa-wishlist/issues/334.
Your comment in https://github.com/corona-warn-app/cwa-app-ios/issues/2209#issuecomment-827969646 about the difficulty of editing doesn't really belong in this topic of "[UI] Contact journal: duration field is hard to use".


Artist list sorted alphabetically in two parts

What version of Music Assistant has the issue?
2.0.0b143
What version of the Home Assistant Integration have you got installed?
2024.4.0
Have you tried everything in the Troubleshooting FAQ and reviewed the Open and Closed Issues and Discussions to resolve this yourself?

[X] Yes

The problem
When scrolling down the artist list the bands starting with Z were reached but then another alphabetically sorted list of remaining artists was then observed

How to reproduce
as above
Music Providers
Observed on instance #1 running file provider, tunein and radio browser as well as instance #2 running file provider, Spotify, Tidal , tunein and radio browser
Player Providers
N/A
Full log output
No response
Additional information
No response
What version of Home Assistant Core are your running
2024.4.4
What type of installation are you running?
Home Assistant OS
On what type of hardware are you running?
Raspberry Pi

The original problem seems to be resolved in b144. However, I now note that the list is sorted in twi parts by case which I don't think it should do?

are you sorting by name or sort name ?

I am sorting by name and I'm sure you are going to say that is correct due to the ASCII values! If you believe this is how it should go then no problems. I just did not expect bands that just happen to use lower case characters to end up at the bottom. I just can't find a sort I am happy with! Sort name I don't like as it uses surname (and I have too many to manually edit the tags!) and alphabetical is a pain as it considers "The" to be part of the name... First world problems I know...

Why not just correct those lowercase entries in your tags ?
You can fill the sortname tag if you want - it should be read by the tag scanner

Yep I can. I will probably go with fixing the lowercase letters and live with the bands with The in their name being down in T

INteresting this came up years ago and you fixed it! https://github.com/music-assistant/hass-music-assistant/issues/755


EventBridge will be disabled automatically if deleting instances in instance group

Describe the bug
EventBridge will be disabled automatically if deleting instances in instance group, so the status will not be updated.
Expected Behavior
N/A
Current Behavior
N/A
Reproduction Steps

Install log agent for instance ,  create instance group and include the instance to the group
Create ingestion for the instance group
After ingestion created successfully,  terminal the instance
check the status of EventBridge, it will turn to disabled
check the log of the lambda that EventBridge invoke , there are errors

Possible Solution
No response
Additional Information/Context
No response
Solution Version
v1.0.3
AWS Region. e.g., us-east-1
No response
Other information
No response

fixed in v2 https://github.com/aws-solutions/centralized-logging-with-opensearch/releases/tag/v2.0.0


Sublime-Babel-VSCode breaks vscode-ext-color-highlight

Just wanted to report that vscode-ext-color-highlight completely stops working when Sublime-Babel-VSCode is enabled.
Sublime-Babel-VSCode stays because it's more awesome. But I'd love to have both working. :-D

Hello, I also use that color highlight extension, but it works on my end. It seems they recently updated too. Not sure if updating to the latest version makes a difference on your end or not.

My Color Highlight version is 2.0.1 and my VSCode version is 1.11.1.

Ha!  Look what updated when I opened vscode today!

Everything working together now. 👍


In version 0.15.1, the --path and --host flags for the dump subcommand are switched.

Output of restic version
restic 0.15.1 compiled with go1.19.5 on linux/amd64
How did you run restic exactly?
First run
restic -r backups dump --path /root/temp/files latest files/hey

Output:
Fatal: failed to find snapshot: snapshot filter (Paths:[] Tags:[] Hosts:[/root/temp/files]): no snapshot found

Second run
restic -r backups dump --host myhost1 latest files/hey

Output:
Fatal: failed to find snapshot: snapshot filter (Paths:[myhost1] Tags:[] Hosts:[]): no snapshot found

Third run (working)
restic -r backups dump --path myhost1 --host /root/temp/files latest files/hey

Output:
hi

What backend/server/service did you use to store the repository?
Just a regular directory.
Expected behavior

To evaluate the specified flags correctly.
Actual behavior

The --host and --path are switched as can be seen in the output containing Fatal: failed....
Steps to reproduce the behavior

Simply test it with the dump subcommand.
Do you have any idea what may have caused this?
A bug.
Did restic help you today? Did it make you happy in any way?

Yes, it's awesome! :)

For documentation: this is a duplicate of #4211


Docker hub Alpine image

This issue follows https://github.com/roc-lang/roc/issues/6045, which was supposed to add an Alpine Linux Docker image.
The attempt has failed in https://github.com/roc-lang/roc/pull/6047 and a complete breakdown of the reason is available https://github.com/roc-lang/roc/pull/6047#issuecomment-1821853206.
The main issue is about Roc being currently built using dynamic libraries that are not available on Alpine (it seems):
$ ldd roc
        /lib64/ld-linux-x86-64.so.2 (0x7fe37268f000)
        librt.so.1 => /lib64/ld-linux-x86-64.so.2 (0x7fe37268f000)
        libdl.so.2 => /lib64/ld-linux-x86-64.so.2 (0x7fe37268f000)
        libpthread.so.0 => /lib64/ld-linux-x86-64.so.2 (0x7fe37268f000)
        libm.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fe37268f000)
        libz.so.1 => /lib/libz.so.1 (0x7fe36e264000)
Error loading shared library libtinfo.so.6: No such file or directory (needed by roc)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x7fe36e016000)
        libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x7fe36dff8000)
        libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7fe37268f000)
        ld-linux-x86-64.so.2 => /lib/ld-linux-x86-64.so.2 (0x7fe36dff2000)
Error relocating roc: mallinfo: symbol not found
Error relocating roc: del_curterm: symbol not found
Error relocating roc: setupterm: symbol not found
Error relocating roc: __memcpy_chk: symbol not found
Error relocating roc: set_curterm: symbol not found
Error relocating roc: __register_atfork: symbol not found
Error relocating roc: tigetnum: symbol not found
Error relocating roc: __snprintf_chk: symbol not found
Error relocating roc: gnu_get_libc_version: symbol not found
Error relocating roc: __res_init: symbol not found

If anybody having knowledge on low level C-compilation could help unfold this it would be great!

It looks like the roc executable is relying on a shared library claled libtinfo which does not seem to exist (yet) in the Alpine packages, but does exist under the libtinfo-dev package in Ubuntu.
It's safe to say that using Roc on Alpine is not trivial at all and will require some work to support this operating system for containers.
Notice that using Roc in Ubuntu (and Debian), whether it is on a bare-metal or a container does work as expected.

I've been working on building roc with llvm built with musl, but it's a difficult process.
Once that's done the problems with alpine should be gone.

Tracking issue for llvm musl: https://github.com/roc-lang/roc/issues/6083


'NoneType' object is not iterable on az acr repository list --name

Hello,
Describe the bug
On mac os x el capitan got an error when trying this command
az acr repository list --name xxxx --output table
'NoneType' object is not iterable
Traceback (most recent call last):
File "/usr/local/Cellar/azure-cli/2.0.42/libexec/lib/python3.7/site-packages/knack/cli.py", line 197, in invoke
cmd_result = self.invocation.execute(args)
File "/usr/local/Cellar/azure-cli/2.0.42/libexec/lib/python3.7/site-packages/azure/cli/core/commands/init.py", line 369, in execute
six.reraise(*sys.exc_info())
File "/usr/local/Cellar/azure-cli/2.0.42/libexec/lib/python3.7/site-packages/six.py", line 693, in reraise
raise value
File "/usr/local/Cellar/azure-cli/2.0.42/libexec/lib/python3.7/site-packages/azure/cli/core/commands/init.py", line 343, in execute
result = cmd(params)
File "/usr/local/Cellar/azure-cli/2.0.42/libexec/lib/python3.7/site-packages/azure/cli/core/commands/init.py", line 182, in call
return self.handler(*args, **kwargs)
File "/usr/local/Cellar/azure-cli/2.0.42/libexec/lib/python3.7/site-packages/azure/cli/core/init.py", line 436, in default_command_handler
result = op(**command_args)
File "/usr/local/Cellar/azure-cli/2.0.42/libexec/lib/python3.7/site-packages/azure/cli/command_modules/acr/repository.py", line 255, in acr_repository_list
top=top)
File "/usr/local/Cellar/azure-cli/2.0.42/libexec/lib/python3.7/site-packages/azure/cli/command_modules/acr/repository.py", line 212, in _obtain_data_from_registry
result_list += result
TypeError: 'NoneType' object is not iterable
Environment summary
Darwin mac-343.local 15.6.0 Darwin Kernel Version 15.6.0: Thu Jun 23 18:25:34 PDT 2016; root:xnu-3248.60.10~1/RELEASE_X86_64 x86_64
Thanks !

I can confirm that this error is thrown if there are no images (and thus, no repositories) in the specified registry. Error is thrown in local install of 2.0.43 as well as Cloud Shell.
@xadag-yogarik Do you know if you had any images in your registry when this error was thrown?
Cc: @sajayantony

@yugangw-msft  - can you tag this as acr?

This has been fixed in https://github.com/Azure/azure-cli/pull/6980

Thanks @djyou


theme.editorFontFamily not working in 2.4.8 on Mac

Describe the bug
when I set theme.editorFontFamily, the font doesn't change.
To Reproduce

In settings, under "Specifies the font family for the editors", enter monospace. Save settings.
Alternately, in settings advanced mode, specify "theme.editorFontFamily": "monospace". Eg.

{
  "theme": "dark",
  "language": "en-US",
  "addQueryDepthLimit": 3,
  "tabSize": 2,
  "theme.editorFontFamily": "monospace",
  "theme.fontsize": 24,
  "plugin.list": [],
  "enableExperimental": false,
  "schema.reloadOnStart": true
}

Expected behavior
I expect to see a monospace font. I don't see that. I've tried the following:

monospace
Iosevka Term
Menlo
Iosevka Term, Menlo, Monaco, 'Courier New', monospace (what my VS Code is using)

Screenshots

Desktop (please complete the following information):

OS: MacOS 10.15.4
Platform: Electron app
Version 2.4.8

Thanks for reporting this! I'd look into it as soon as I can.


Spacing is required in how can you help para

Before email spacing is required

Hello @1Shubham7 please assign this issue to me under gssoc 24

fixed already.


mdoc_or_fallback: Refactor

Centralize its definition and update its documentation.

Why do you work on the documentation?

I'm asking because it's risky to refactor the code in use by another contributor.

I’m not working in the documentation in particular. I’m just currently working on a project that has a lot of potential side-effects on the Nit tools and I discovered that mdoc_or_fallback had multiple redundant definitions.
As for the risks, I mitigate them taking care that my changes do not affect neither the behavior (they are just a minor refactoring) nor the API. The only client that used the original definitions of mdoc_or_fallback was model_json. So, I edited it to exhibit the old behaviour.
Furthermore, this refactoring will allow me to easily propagate some of my changes to all tools that consume documentation. I think it is better to publish this refactoring now than later to avoid conflicting changes.

:recycle: Without copyright notice update

:recycle:
@Morriar, please confirm or infirm that nitweb behaves as expected.  :P

♻ on top of nit/master

Since this PR no longer conflict with NitWeb, I think we can now remove the need_work tag. @privat, do you agree?


protractor hangs indefinitely on "[launcher] Running 1 instances of WebDriver" - when running with xvfb

At first glance this issue seems to be related with #1764 but I don't see how a network issue can cause the hanging here (directConnect is set to true). So here is the setup:
protractor-config.js
'use strict';

/* globals jasmine, browser */
exports.config = {
    allScriptsTimeout: 300000, // 5 min

    // Spec patterns are relative to this directory.
    specs: [
        'protractor/*.js'
    ],

    capabilities: {
        'browserName': 'chrome',
        version: '',
        platform: 'ANY'
    },

    directConnect: true,

    baseUrl: 'http://localhost:3000/', // gets overwritten

    troubleshoot: true,

    framework: 'jasmine',
    onPrepare: function beforeProtractorRuns() {
        browser.driver.manage().window().setSize(1280, 1024);

        // Disable animations so e2e tests run more quickly
        var disableNgAnimate = function () {
            angular.module('disableNgAnimate', []).run([
                '$animate',
                function ($animate) {
                    $animate.enabled(false);
                }
            ]);
        };
        browser.addMockModule('disableNgAnimate', disableNgAnimate);

        // see: https://github.com/angular/protractor/issues/60
        require('jasmine-reporters');
        var capsPromise = browser.getCapabilities();
        capsPromise.then(function setOutputDir(caps) {
            var browserName = caps.caps_.browserName.toUpperCase();
            var browserVersion = caps.caps_.version;
            var filePrefix = browserName + '-' + browserVersion + '-';
            jasmine.getEnv().addReporter(
                new jasmine.JUnitXmlReporter(
                    'build/reports/testresults',
                    true, //consolidate: save nested describes within the same file as their parent
                    true, //useDotNotation: separate suite names with dots rather than spaces (ie "Class.init" not "Class init")
                    filePrefix
                )
            );
        });
    },

    jasmineNodeOpts: {
        isVerbose: true,
        showColors: true,
        includeStackTrace: true,
        defaultTimeoutInterval: 300000, // 5 min
    }
};

Here is an extract of the essential parts of the Jenkins Job console log:
⋮
13:28:22 DEBUG - Running with --troubleshoot
13:28:22 DEBUG - Protractor version: 2.1.0
13:28:22 DEBUG - Your base url for tests is http://localhost:57505/
13:28:22 Using ChromeDriver directly...
13:28:22 [launcher] Running 1 instances of WebDriver
13:28:22 DEBUG - WebDriver session successfully started with capabilities { caps_:
13:28:22    { acceptSslCerts: true,
13:28:22      applicationCacheEnabled: false,
13:28:22      browserConnectionEnabled: false,
13:28:22      browserName: 'chrome',
13:28:22      chrome: { userDataDir: '/tmp/.com.google.Chrome.AuA2qr' },
13:28:22      cssSelectorsEnabled: true,
13:28:22      databaseEnabled: false,
13:28:22      handlesAlerts: true,
13:28:22      javascriptEnabled: true,
13:28:22      locationContextEnabled: true,
13:28:22      mobileEmulationEnabled: false,
13:28:22      nativeEvents: true,
13:28:22      platform: 'Linux',
13:28:22      rotatable: false,
13:28:22      takesHeapSnapshot: true,
13:28:22      takesScreenshot: true,
13:28:22      version: '44.0.2403.125',
13:28:22      webStorageEnabled: true } }
13:28:30 Testing foobar
13:28:30   Setup
13:28:30     should display foobar - pass
⋮                                                   <--- more describe-s and it-s
13:28:35 Finished in 12.616 seconds
13:28:35 2 tests, 9 assertions, 0 failures
13:28:35
13:28:35 [launcher] 0 instance(s) of WebDriver still running
13:28:35 [launcher] chrome #1 passed
⋮                                                   <--- other tests scenarios also run successfully
13:28:47 DEBUG - Running with --troubleshoot
13:28:47 DEBUG - Protractor version: 2.1.0
13:28:47 DEBUG - Your base url for tests is http://localhost:34976/
13:28:47 Using ChromeDriver directly...
13:28:47 [launcher] Running 1 instances of WebDriver <--- hanging from here,
                                                          can't figure out why,
                                                          wish I had logs : [
15:05:23 Xvfb stopping                               <--- canceled build manually,
                                                          see time difference, no timeouts triggered,
                                                          neither from Protractor nor from WebDriver : [
15:05:23 Build has been canceled

Note that it is not always the same tests scenario which leads to the hanging.
Same problems with node 0.10.33 as with 0.12.7.
Using Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-37-generic x86_64).
$ file /opt/google/chrome/chrome
/opt/google/chrome/chrome: ELF 64-bit LSB shared object, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.26, BuildID[sha1]=0xe4fc0257b42110fc269782274f1e774718135349, stripped

I opened that other issue. In my case, I was running protractor inside of Vagrant and had port 4444 forwarded in my Vagrantfile. protractor silently failed/hung in this scenario

I had the same issue but it got fixed when I ran webdriver-manager start in the foreground ie
webdriver-manager start &
protractor conf.js #hangs
but
webdriver-manager start
protractor conf.js #works

Oddly both styles seem to work now. I'm not sure but I think the nature of the tests may also determine whether protractor hangs or not. I had a test that was infinitely trying to reach a nonexistent location because I hadn't set the baseUrl. Protractor showed the same symptoms.

I'm getting hanging behaviour, running tests with sharding on Codeship CI.
I run the same tests with Firefox and Chrome - I've split these into 2 separate config files but other than the browser setting they're the same.
The process sometimes hangs at the end of the Chrome file, and sometimes at the end of the Firefox one.
Consistently seems to be "1 instances" left running (rather than 2 or more).
It's run as a foreground process so no help from @caninemwenja 's comment...

I've got a similar issue, where it hangs at
Using ChromeDirver directly...
[launcher] Running 1 instances of WebDriver

about 50% of the time. It will hang there indefinitely. However, even if it hangs you can start other instances which may or may not succeed in the same manner.

I've experienced the issue both with and without directConnect so that's not part of the issue

Yeah, I've just confirmed that the same things happens with directConnect and standalone selenium.

Also seeing the problem, but only on our Ubuntu build servers.  Haven't seen the issue yet on the Windows servers.  Using Google Chrome 44.0.2403.130 and ChromeDriver 2.15.322448.

I don't know how significant it is, but its also our Ubuntu build servers which are affected. We have fedora, ubuntu, and OSX systems, but its only the Ubuntu servers which hang at the ChromeDriver start up.

Ubuntu for me too. Using Chromium 43.0.2357.130 and ChromeDriver 2.16. It works now though (with no apparent change).

Ditto - using Codeship and their servers are based on Ubuntu Trusty

We're on Ubuntu as well (updated issue description with system information "Ubuntu 12.04.5 LTS (GNU/Linux 3.13.0-37-generic x86_64)").

The ubuntu servers also use Xvfb (X Virtual Frame Buffer) to use the browser without a window manager.

Interesting; i've experienced some weird hang ups on Debian (wheezy) when using Xvfb. They seemed to be due to the browser not being able to attach to the headless display. Is everyone here attempting to run things via Xvfb?

If you're having problems racing with Xvfb startup try using xdpyinfo to wait for X to be ready:
MAX=120 # About 60 seconds
CT=0
while ! xdpyinfo >/dev/null 2>&1; do
    sleep 0.50s
    CT=$(( CT + 1 ))
    if [ "$CT" -ge "$MAX" ]; then
        LOG "FATAL: $0: Gave up waiting for X server $DISPLAY"
        exit 11
    fi
done

LOG "X is available"

Also, you can get more logs from chromedriver itself.  Those often have more details about what went wrong (but often don't have enough useful info, either).  Often we have to look into the chrome debug logs, too.  See http://stackoverflow.com/questions/31662828/how-to-access-chromedriver-logs-for-protractor-test for suggestions on how to get additional chromedriver logs.

Yup, using xvfb-run on ubuntu and (obviously) not using it on the windows build servers so that sounds like a definite possibility.  @tullmann do you use your script in conjunction with xvfb-run or Xvfb?

We have put xvfb in our init scripts, so as far as I know it is running soon after startup. Unless there is something else that needs to be done to make sure that it's "Ready" to accept connections, then I think xvfb is "ready" in my case.

@tullmann We also have xvfb running from the beginning and some of the tests run fine before the hanging. But thanks for the chromedriver logs hint. Will try that as soon as possible.

I'm using windows server 2012. If I run webdriver-manager start in the foreground there is no problem. But if I run it in the background, similar "hanging behavior" will happen- about 1.5 minute for each browser.
I also try standalone selenium server so that I can skip the step webdriver-manager start. The test runs without problem if I start it locally. But if I remotely use psexec on other machine to run the test, it will run in background and the hanging behavior will happen again.

I managed to enable chrome driver logs (using this method).
Here is the result:
[0,014][INFO]: COMMAND InitSession {
  "desiredCapabilities": {
     "browserName": "chrome",
     "count": 1,
     "platform": "ANY",
     "version": ""
  }
}
[0,014][INFO]: Populating Preferences file: {
  "alternate_error_pages": {
     "enabled": false
  },
  "autofill": {
     "enabled": false
  },
  "browser": {
     "check_default_browser": false
  },
  "distribution": {
     "import_bookmarks": false,
     "import_history": false,
     "import_search_engine": false,
     "make_chrome_default_for_user": false,
     "show_welcome_page": false,
     "skip_first_run_ui": true
  },
  "dns_prefetching": {
     "enabled": false
  },
  "profile": {
     "content_settings": {
        "pattern_pairs": {
           "https://*,*": {
              "media-stream": {
                 "audio": "Default",
                 "video": "Default"
              }
           }
        }
     },
     "default_content_settings": {
        "geolocation": 1,
        "mouselock": 1,
        "notifications": 1,
        "popups": 1,
        "ppapi-broker": 1
     },
     "password_manager_enabled": false
  },
  "safebrowsing": {
     "enabled": false
  },
  "search": {
     "suggest_enabled": false
  },
  "translate": {
     "enabled": false
  }
}
[0,014][INFO]: Populating Local State file: {
  "background_mode": {
     "enabled": false
  },
  "ssl": {
     "rev_checking": {
        "enabled": false
     }
  }
}
[0,015][INFO]: Launching chrome: /opt/google/chrome/google-chrome --disable-background-networking --disable-client-side-phishing-detection --disable-component-update --disable-default-apps --disable-hang-monitor --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-logging --ignore-certificate-errors --load-extension=/tmp/.com.google.Chrome.NqAJ9w/internal --log-level=0 --metrics-recording-only --no-first-run --password-store=basic --remote-debugging-port=12199 --safebrowsing-disable-auto-update --safebrowsing-disable-download-protection --test-type=webdriver --use-mock-keychain --user-data-dir=/tmp/.com.google.Chrome.LqJPTu data:,
[0,016][DEBUG]: DevTools request: http://<IP_ADDRESS>:12199/json/version
[0,077][DEBUG]: DevTools request failed
[1:1:0909/154445:ERROR:image_metadata_extractor.cc(111)] Couldn't load libexif.
Xlib:  extension "RANDR" missing on display ":2".
[0,127][DEBUG]: DevTools request: http://<IP_ADDRESS>:12199/json/version
[0,128][DEBUG]: DevTools request failed
[0,178][DEBUG]: DevTools request: http://<IP_ADDRESS>:12199/json/version
[0,179][DEBUG]: DevTools request failed
Xlib:  extension "RANDR" missing on display ":2".
[0,229][DEBUG]: DevTools request: http://<IP_ADDRESS>:12199/json/version
[0,230][DEBUG]: DevTools request failed
[58787:58787:0909/154445:ERROR:sandbox_linux.cc(345)] InitializeSandbox() called with multiple threads in process gpu-process
[0,280][DEBUG]: DevTools request: http://<IP_ADDRESS>:12199/json/version

You can hide/avoid the "multiple threads in process gpu-process" by adding --disable-gpu to the chrome command line.  Generally when running under XVFB, you're not leveraging a GPU anyway, so disabling it shouldn't be bad.  Anyway, I believe this (and the RANDR and the libexif messages) are harmless messages and just distracting.
Its odd that chromedriver isn't timing out (it looks like you're waiting an hour or more?).  You might get more useful information from the chrome logs about what's going on.  (The "DevTools request" stuff is from chromedriver trying to establish a basic connection to chrome -- it just polls repeatedly until it gets a connection).  It looks like chromedriver receives no reply, but doesn't timeout either ... might be worth comparing this log to a "normal" case to see what the differences are in your setup.)
To get more chrome debug logging add the following arguments to chrome's arguments (in your protractor config): enable-logging, v=1 and userDataDir=<somedir> where <somedir> is a new directory private to this run.  (You can leave off userDataDir and chrome will pick a random directory in /tmp, but it can be annoying to figure out which one...)

Seems like enabling chrome logs fixes a race condition. The build job with chrome logging enabled refuses to hang while the build job without logging still hangs on a regular basis.

Also enabled logging and still had it hang, but the log has perhaps something useful at the end:
(google-chrome:13094): GConf-WARNING **: Client failed to connect to the D-BUS daemon:
//bin/dbus-launch terminated abnormally without any error message
[13132:13132:0929/003546:ERROR:sandbox_linux.cc(345)] InitializeSandbox() called with multiple threads in process gpu-process

The gpu-process issue has been discussed earlier, but could the d-bus message be related?

I'm hoping that this is fixed with the new version of chromedriver in Protractor 2.3.0 and higher. Can anyone confirm?

@juliemr we've had it running for a few days now and a few hundred builds on 2.4 and haven't seen it hang, so yes, that seems to have fixed it.

Whee! Closing - please open up a new issue if this crops up again.

I'm sorry for the late reply and also sorry for letting you know that the hanging persists with protractor 2.4. Shall I really open up a new issue even if we still do not know what is really the root cause of the problem?

I've also had hanging since 2.4. Oddly, I had had an extended period without any hanging before it happened a few times last week.

This issue still occurs. on protractor 2.5.1

I can confirm that this issues still occurs on most recent versions of Protractor (used versions corresponding to updates for chromedriver & webdriver).
I've been having this problem running on an Ubuntu CI environment with parallel machines ("containers") for each build. Recently ran with --troubleshoot and observed the following.
Output for a successful container:
DEBUG - Running with --troubleshoot
DEBUG - Protractor version: 1.8.0
DEBUG - Your base url for tests is undefined
Using ChromeDriver directly...
[launcher] Running 1 instances of WebDriver
DEBUG - WebDriver session successfully started with capabilities { caps_:
...

Output for a hanging container:
DEBUG - Running with --troubleshoot
DEBUG - Protractor version: 1.8.0
DEBUG - Your base url for tests is undefined
Using ChromeDriver directly...

[launcher] Running 1 instances of WebDriver command protractor protractor.conf.js --troubleshoot --suite=container_suite took more than 10 minutes since last output

It appears that a webdriver session never gets started. @juliemr, can this issue be reopened?

So we were able to ssh in to both a successful container and a hanging container simultaneously and view running processes. This is the output of running ps auxwf.
Successful container:
ubuntu    17473  2.0  0.0  85024  5988 ?                S    15:48   0:27  |   \_ sshd: ubuntu@pts/0
ubuntu    20741  0.0  0.0  14820  1508 pts/0    Ss+  15:59   0:00  |       \_ /bin/bash ./circle_scripts/test_override.sh
ubuntu    21057  1.1  0.0<PHONE_NUMBER>8 pts/0    Sl+  15:59   0:06  |           \_ node /home/ubuntu/nvm/v0.10.33/bin/protractor protractor.conf.js --suite=container_suite
ubuntu    21061  0.0  0.0 378208  6560 pts/0    Sl+  15:59   0:00  |               \_ /home/ubuntu/nvm/v0.10.33/lib/node_modules/protractor/selenium/chromedriver --port=56618
ubuntu    21064  0.0  0.0<PHONE_NUMBER>8 pts/0    Sl+  15:59   0:00  |                   \_ /opt/google/chrome/chrome --disable-setuid-sandbox --disable-background-networking --disable-client-side-phishing-detection --disable-component-update --disable-default-apps --disable-hang-mo
ubuntu    21072  0.0  0.0   9664   616 pts/0    S+   15:59   0:00  |                       \_ cat
ubuntu    21073  0.0  0.0   9664   620 pts/0    S+   15:59   0:00  |                       \_ cat
ubuntu    21076  0.0  0.0<PHONE_NUMBER>4 pts/0    S+   15:59   0:00  |                       \_ /opt/google/chrome/chrome --type=zygote --enable-logging --log-level=0 --user-data-dir=/tmp/.com.google.Chrome.1bhwCh
ubuntu    21077  0.0  0.0  28012  1964 pts/0    S+   15:59   0:00  |                       |   \_ /opt/google/chrome/nacl_helper
ubuntu    21080  0.0  0.0 341532  7764 pts/0    S+   15:59   0:00  |                       |   \_ /opt/google/chrome/chrome --type=zygote --enable-logging --log-level=0 --user-data-dir=/tmp/.com.google.Chrome.1bhwCh
ubuntu    21117  0.0  0.0<PHONE_NUMBER>2 pts/0    Sl+  15:59   0:00  |                       \_ /opt/google/chrome/chrome --type=gpu-process --channel=21064.0.776113428 --enable-logging --log-level=0 --user-data-dir=/tmp/.com.google.Chrome.1bhwCh --supports-dual-gpus=false --gpu-dri
ubuntu    21118  0.2  0.0<PHONE_NUMBER>4 pts/0    S+   15:59   0:01  |                       \_ /opt/google/chrome/chrome --disable-setuid-sandbox --disable-background-networking --disable-client-side-phishing-detection --disable-component-update --disable-default-apps --disable-han

The only discernible difference is the preference of chrome instances with type=renderer in the successful container.

If you're running into problems with chrome occasionally hanging at startup, its probably a Chrome bug.  See https://code.google.com/p/chromium/issues/detail?id=309093 where Google ran into this problem in their chrome testing setup, and worked around it in their test infrastructure.
Basically, chrome is mulit-threaded, and relies on some standard gconf libraries, one of those libraries does a fork+exec to start up "dbus" if it is not already running.  Doing a fork+exec in a multi-threaded application is bad because you will occasionally fork while a different thread has the malloc lock (or other critical lock) and the child will then deadlock when it tries to acquire that lock, and everything grinds to a halt.  Generally on a desktop, dbus is already running, but in many stripped-down test environments dbus does not get started.
Our work-around is to make sure dbus is running by having our scripts launch that XVFB run its child processes via dbus-launch --exit-with-session.  (We also have a script that polls for X to be ready before proceeding, that seems to have helped, but we're less confident its strictly necessary).
Here's a lightly modified version of the xvfb wrapper script we use that starts xvfb, dbus, and waits for X to be ready: https://gist.github.com/tullmann/2d8d38444c5e81a41b6d
And here's the waitForX script that depends on:
https://gist.github.com/tullmann/476cc71169295d5c3fe6

@tullmann How do you use those scripts? Do you start up xvfb before every run? Or do you have those as part of startup scripts? Are they just wrappers around Xvfb?

@Callmenorm We use the bb-xfvb script to wrap each call to the protractor script in a private XVFB instance.  So if you normally run protractor foo.js, you can do bb-xvfb protractor foo.js to run it under an XVFB instance.  (The script is just a wrapper around xvfb-run.)
If you're starting XVFB (or a real X server) in some other way (well before you get around to starting protractor), you will want to use the "dbus-launch --exit-with-session" and/or waitForX scripts as necessary in your environment.

Thanks @tullmann! We will give it a try in the next sprint.
Anyway, protractor should timeout in case of a deadlock during dbus startup.

Thank you @tullmann !
I have just integrated your scripts as part of our testing on Codeship. It's now run once, and for the first time in ages all of the tests finished :)
I'll monitor it over the coming week and will shout if any issues, but in the meantime: THANK YOU :)

Likewise @tullmann's scripts have solved our CI builds timing out randomly. Thanks!

@tullmann, you're a hero.

we also have problems with hanging chrome browsers, running in docker containers, which are used as ci-agents (teamcity). When the container is started, it also starts xvfb as a service and runs for several days.
Now Protractor starts Chrome himself with the "--directConnect=true" option and also starts several browsers in a single test. Some builds run smoothly, some hang indefinitly.
@tullmann any idea how i can integrate your scripts?

@Sabartius make sure when you start xvfb that you also start dbus.  I don't think my scripts are specifically useful in your scenario, so you'll need to figure out a different way to make sure dbus is running.  Its probably as simple as just having your container run dbus-launch in the right place (see the man page for more details).

Aww - after 2 weeks without an issue, my last 3 builds have hung.
Haven't yet had time to investigate why. Anyone else seen this @tullmann @jas13 @Callmenorm @borisdiakur ?

Seems to have fixed itself at some point this morning... very strange

@tullmann How do you get (install) dbus-launch? I have installed dbus but there isn't a dbus-launch command there. I'm using debian:jessie based docker container.

Looks like its part of the dbus-x11 package:
# apt-cache search dbus-launch
dbus-x11 - simple interprocess messaging system (X11 deps)

Not sure this is chrome specific. I have the same issue when running against firefox.

It probably isn't because sometimes it hangs even when using remote selenium grid.

I'm currently running protractor version 3.0.0, and have been seeing hanging builds specifically when running chrome (with directConnect) on Xvfb. I enabled chromedriver logs and chrome logs using the methods mentioned in this thread earlier.
I see this at the end of chrome's logs:
[9504:9504:0419/185420:ERROR:sandbox_linux.cc(338)] InitializeSandbox() called with multiple threads in process gpu-process
[9504:9504:0419/213227:ERROR:x11_util.cc(82)] X IO error received (X server probably went away)
[9407:9461:0419/213227:WARNING:channel.cc(358)] RawChannel write error

And this at the end of chromedriver's logs:
[9504:9504:0419/185420:ERROR:sandbox_linux.cc(338)] InitializeSandbox() called with multiple threads in process gpu-process
[9504:9504:0419/213227:ERROR:x11_util.cc(82)] X IO error received (X server probably went away)

We start Xvfb at the beginning of our test suite before running four end-to-end test suites - two with Firefox and two with Chrome. Often a build will have already run a few of these suites (maybe even a chrome suite) before hanging. The hanging is not as often as others report though - in my last test, one out of ten repeated builds got hung.
I'll report back on this thread after trying to run the test suites with --disable-gpu. I'll also try to locate Xvfb logs to see if something went wrong with it.

So.. reporting back:
Running with --disable-gpu does not fix the hanging. Also, we're running Xvfb using a simple wrapper around it with pyvirtualdisplay, and getting hold of Xvfb's output would have meant not using that wrapper, so I abandoned that approach.
I went on to run the tests inside a dbus-launch --exit-with-session wrapper, and it worked out all great.
I also came across this bug report, which seems to indicate that simply setting DBUS_SESSION_BUS_ADDRESS to /dev/null should prevent chrome from hanging - I'll test that approach too and report back.

It looks like setting DBUS_SESSION_BUS_ADDRESS to /dev/null alone is sufficient to prevent chrome from deadlocking. I ran a whole bunch of iterations of my test suite, and not a single hang.

@jrharshath Do you have the working configuration somewhere on github?

Wow! Thanks!
I set the environment variable with export DBUS_SESSION_BUS_ADDRESS=/dev/null and no longer have any hanging chromedriver processes!
I ran one file that had an empty it statement with 12 concurrent browser sessions, and looped it 6000 times. After almost 2 hours of continuously running, there was not a single hanging process.
[12:20:33] Protractor ran 6000 files (6000 specs) -- 6000 passed
[12:20:33]
[12:20:33] Finished 'protractor' after 1.92 h

Thanks a ton @jrharshath!

@cnishina the problem for Protractor here is that we should time out, instead of hanging, with a reasonable error, if chrome can't start up. Can you take this one?

Hi everyone! I plan to look into the hanging error and improve error reporting.
On a side note, I just created a Jenkins server this weekend to try out a few Protractor tests. It appears there are Xvfb issues. If you are using Jenkins, there is an Xvfb plugin. This is my setup:

NodeJS Plugin and have Jenkins install NodeJS 6.3.1 automatically.
Xvfb plugin

install Xvfb on the machine running the job and set the Xvfb Plugin executable directory to /usr/bin/
in the job, enable to option to "start Xvfb before the build, and shut it down after."

Job build step:

webdriver-manager update
npm install
npm test

Console output snippets:
Xvfb starting$

+ npm install
npm WARN deprecated<EMAIL_ADDRESS>Please update to minimatch 3.0.2 or higher to avoid a RegExp DoS issue

npm WARN<EMAIL_ADDRESS>No repository field.
+ npm test

><EMAIL_ADDRESS>test /var/lib/jenkins/workspace/protractor-cookbook-jasmine-junit-reports/tests
> jasmine

Started

><EMAIL_ADDRESS>pretest /var/lib/jenkins/workspace/protractor-cookbook-jasmine-junit-reports/jasmine-junit-reports
> webdriver-manager update

[11:06:07] I/downloader - selenium standalone: downloading version 2.53.1
[11:06:07] I/downloader - curl -o /var/lib/jenkins/workspace/protractor-cookbook-jasmine-junit-reports/jasmine-junit-reports/node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-2.53.1.jar https://selenium-release.storage.googleapis.com/2.53/selenium-server-standalone-2.53.1.jar
[11:06:07] I/downloader - chromedriver: downloading version 2.22
[11:06:07] I/downloader - curl -o /var/lib/jenkins/workspace/protractor-cookbook-jasmine-junit-reports/jasmine-junit-reports/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.22linux64.zip https://chromedriver.storage.googleapis.com/2.22/chromedriver_linux64.zip
[11:06:07] I/update - chromedriver: unzipping /var/lib/jenkins/workspace/protractor-cookbook-jasmine-junit-reports/jasmine-junit-reports/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.22linux64.zip
[11:06:07] I/update - chromedriver: setting permissions to 0755 for /var/lib/jenkins/workspace/protractor-cookbook-jasmine-junit-reports/jasmine-junit-reports/node_modules/protractor/node_modules/webdriver-manager/selenium/chromedriver_2.22

><EMAIL_ADDRESS>test /var/lib/jenkins/workspace/protractor-cookbook-jasmine-junit-reports/jasmine-junit-reports
> protractor conf.js

[11:06:09] I/direct - Using ChromeDriver directly...
[11:06:09] I/launcher - Running 1 instances of WebDriver
Started
.F.F

4 specs, 2 failures
Finished in 5.971 seconds
[11:06:15] I/launcher - 0 instance(s) of WebDriver still running
[11:06:15] I/launcher - chrome #01 failed 2 test(s)
[11:06:15] I/launcher - overall: 2 failed spec(s)
[11:06:15] E/launcher - Process exited with error code 1

Xvfb stopping

I'm facing the same issue on Windows. When I try to debug my tests from VSCode Protractor hangs forever at

I/launcher - Running 4 instances of WebDriver

My VSCode launch config runs a powershell script starting the SUT and selenium server in separate processes (using the Start-Process cmdlet). Only after both respond with HTTP 200 the launch config invokes protractor. VSCode debug setup is similar to that of Webstorm as described in the protractor docs. VSCode eventually invokes protractor like follows:
node --debug-brk=<randomPort> node_mdoules\protractor\bin\protractor src\test\protractorConf.js
I also tried using node_modules\protractor\built\cli.js but got the same result. Experimenting with protractor's --debug, debug and --debuggingServer command line options also got me nowhere.
Simply executing the tests from gulp (using gulp-angular-protractor) works fine though.
The only difference I can see between the two (apart from debugger config) is that when running via gulp selenium, browsersync and protractor share standardInput/Output, while in debug mode they are separate. But that wouldn't make a difference, would it?

I'm facing a similar problem on Windows 7 without xvfb. Tests will run but the process never terminate:
tsc && concurrently "http-server -s" "protractor protractor.config.js"

[1] [14:24:54] I/local - Starting selenium standalone server...
[1] [14:24:54] I/launcher - Running 1 instances of WebDriver
[1] [14:24:55] I/local - Selenium standalone server started at http://<IP_ADDRESS>:57125/wd/hub
[1] AppDir: ./
[1]   Suite: QuickStart E2E Tests
[1]     passed - should display: My First Angular 2 App
[1]   Suite passed: QuickStart E2E Tests
[1] [14:25:01] I/local - Shutting down selenium standalone server.
[1] [14:25:01] I/launcher - 0 instance(s) of WebDriver still running
[1] [14:25:01] I/launcher - phantomjs #01 passed
[1] protractor protractor.config.js exited with code 0

If I use the following command (copied from the angular quickstart):
tsc && concurrently "http-server -s" "protractor protractor.config.js" --kill-others --success first

[1] AppDir: ./
[1]   Suite: QuickStart E2E Tests
[1]     passed - should display: My First Angular 2 App
[1]   Suite passed: QuickStart E2E Tests
[1] [14:30:48] I/local - Shutting down selenium standalone server.
[1] [14:30:48] I/launcher - 0 instance(s) of WebDriver still running
[1] [14:30:48] I/launcher - phantomjs #01 passed
[1] protractor protractor.config.js exited with code 0
--> Sending SIGTERM to other processes..

It will hang at the last  command.

I got the same issue on running protractor tests in gitlab CI via docker executor. At the beginning tests run fast and everything is good but after some period of time (30-40 min) tests become extremely slow and protractor hangs out.
First it fails with Async callback was not invoked within timeout specified by jasmine.DEFAULT_TIMEOUT_INTERVAL and then WebDriverError: no such session because of page crush.
I use official docker container openjdk:7 and install node, chrome, xvfb  and set DBUS_SESSION_BUS_ADDRESS =/dev/null. Our application ( on play framework) is also run in this container.
Xvfb :21 -screen 0 1920x1280x24 &
export DISPLAY=:21.0
grunt test

Protractor 4.0.9, chrome 53, chromederiver 2.24
logs: chromedriver.txt

We also had this issue and I can confirm that doing export DBUS_SESSION_BUS_ADDRESS=/dev/null helps 👍

We have the protractor hanging after
14:50:50 [14:50:48] I/hosted - Using the selenium server at http://localhost:7840/wd/hub```
even when using the DBUS_SESSION_BUS_ADDRESS workaround. It happens about 20-30% of the cases in our Jenkins builds (even on the very same Jenkins slave).

node.js 6.9.5
protractor 5.1.1
chromedriver 2.28
selenium 3.1.1
webdriver-manager 12.0.2
chrome 56.0.2924.87
(we have fixed these versions from constantly changing and potentially break things)
Jenkins slaves are running on CentOS 7
The build does not use docker (yet).

protractor is started by a npm script (in package.json):
`    "ci-e2e": "bash -c \"set -o pipefail ; export DBUS_SESSION_BUS_ADDRESS=/dev/null ; protractor protractor-conf.js --seleniumAddress http://localhost:${npm_package_config_seleniumPort}/wd/hub 2>&1 | tee .ci/protractor.log\"",`
(of course there are pre and post scripts as well to start/stop things)

chromedriver logs are enabled by the following shell script line (run by the pre npm script):
`  nohup webdriver-manager start --versions.standalone $SELENIUM_STANDALONE_EXPECTED_VERSION --versions.chrome $SELENIUM_CHROMEDRIVER_EXPECTED_VERSION --chrome_logs ${THIS_SCRIPT_DIR}/../.ci/chromedriver.log --seleniumPort $SELENIUM_PORT >.ci/webdriver-manager_start.log 2>&1 &`
(there is a 5 seconds sleep after that)

Xvfb is started before webdriver in a similar style (nohup + background)

I just checked the chromedriver log and it shows:

[0.096][INFO]: COMMAND InitSession {
"alwaysMatch": {
"count": 1,
"platform": "ANY",
"version": "ANY"
},
"capabilities": {
"desiredCapabilities": {
"browserName": "chrome",
"chromeOptions": {
"args": [ "--no-sandbox", "--test-type=browser" ],
"prefs": {
"download": {
"default_directory": "/tmp/",
"prompt_for_download": false
}
}
},
"count": 1,
"platform": "ANY",
"version": "ANY"
},
"requiredCapabilities": {
  }

},
"desiredCapabilities": {
"browserName": "chrome",
"chromeOptions": {
"args": [ "--no-sandbox", "--test-type=browser" ],
"prefs": {
"download": {
"default_directory": "/tmp/",
"prompt_for_download": false
}
}
},
"count": 1,
"platform": "ANY",
"version": "ANY"
},
"firstMatch": [ {
"browserName": "chrome",
"chromeOptions": {
"args": [ "--no-sandbox", "--test-type=browser" ],
"prefs": {
"download": {
"default_directory": "/tmp/",
"prompt_for_download": false
}
}
}
} ],
"requiredCapabilities": {
}
}
[0.099][INFO]: Populating Preferences file: {
"alternate_error_pages": {
"enabled": false
},
"autofill": {
"enabled": false
},
"browser": {
"check_default_browser": false
},
"distribution": {
"import_bookmarks": false,
"import_history": false,
"import_search_engine": false,
"make_chrome_default_for_user": false,
"show_welcome_page": false,
"skip_first_run_ui": true
},
"dns_prefetching": {
"enabled": false
},
"download": {
"default_directory": "/tmp/",
"prompt_for_download": false
},
"profile": {
"content_settings": {
"pattern_pairs": {
"https://,": {
"media-stream": {
"audio": "Default",
"video": "Default"
}
}
}
},
"default_content_setting_values": {
"geolocation": 1
},
"default_content_settings": {
"geolocation": 1,
"mouselock": 1,
"notifications": 1,
"popups": 1,
"ppapi-broker": 1
},
"password_manager_enabled": false
},
"safebrowsing": {
"enabled": false
},
"search": {
"suggest_enabled": false
},
"translate": {
"enabled": false
}
}
[0.100][INFO]: Populating Local State file: {
"background_mode": {
"enabled": false
},
"ssl": {
"rev_checking": {
"enabled": false
}
}
}
[0.107][INFO]: Launching chrome: /opt/google/chrome/google-chrome --disable-background-networking --disable-client-side-phishing-detection --disable-default-apps --disable-hang-monitor --disable-popup-blocking --disable-prompt-on-repost --disable-sync --disable-web-resources --enable-automation --enable-logging --ignore-certificate-errors --load-extension=/tmp/.org.chromium.Chromium.ekVmsH/internal --log-level=0 --metrics-recording-only --no-first-run --no-sandbox --password-store=basic --remote-debugging-port=12521 --safebrowsing-disable-auto-update --test-type=browser --use-mock-keychain --user-data-dir=/tmp/.org.chromium.Chromium.6KPDEf data:,
Does anyone know how to track this down or how can I provide more debugging information (when it happens)?
Is there some more specific bug report for this somewhere?
Could updating any of the above SW components (e.g. chrome, chrome driver) help?

I updated chromedriver to 2.29 and chrome to 57. It still happened.
I realized that --enable-logging is passed to chrome (https://www.chromium.org/for-testers/enable-logging) therefore I checked chrome_debug.log in its user data dir (also passed to chrome).
[7072:7072:0406/121917.369242:WARNING:audio_manager.cc(321)] Multiple instances of AudioManager detected
[7072:7072:0406/121917.369280:WARNING:audio_manager.cc(278)] Multiple instances of AudioManager detected
[7146:7146:0406/121917.570450:ERROR:gl_surface_glx.cc(406)] glxQueryVersion failed
[7146:7146:0406/121917.570506:ERROR:gl_initializer_x11.cc(136)] GLSurfaceGLX::InitializeOneOff failed.
[7146:7146:0406/121917.572327:ERROR:child_thread_impl.cc(762)] Request for unknown Channel-associated interface: ui::mojom::GpuMain
[7146:7146:0406/121917.572698:ERROR:gpu_child_thread.cc(330)] Exiting GPU process due to errors during initialization

However on successful runs this also happens and the log continues:
[32566:32598:0406/144120.367781:ERROR:browser_gpu_channel_host_factory.cc(113)] Failed to launch GPU process.
[32566:32598:0406/144120.367832:ERROR:browser_gpu_channel_host_factory.cc(113)] Failed to launch GPU process.
[32566:32598:0406/144120.367863:ERROR:browser_gpu_channel_host_factory.cc(113)] Failed to launch GPU process.
[32566:32598:0406/144120.367888:ERROR:browser_gpu_channel_host_factory.cc(113)] Failed to launch GPU process.
[32566:32598:0406/144120.367912:ERROR:browser_gpu_channel_host_factory.cc(113)] Failed to launch GPU process.
(then the logs from the tests follow)

It seems that https://bugs.chromium.org/p/chromedriver/issues/detail?id=1298 is the related bug report, which was closed without any real solution.

I updated chromedriver to 2.29 and chrome to 57. It still happened.
I realized that --enable-logging is passed to chrome (https://www.chromium.org/for-testers/enable-logging) therefore I checked chrome_debug.log in its user data dir (also passed to chrome).
[7072:7072:0406/121917.369242:WARNING:audio_manager.cc(321)] Multiple instances of AudioManager detected
[7072:7072:0406/121917.369280:WARNING:audio_manager.cc(278)] Multiple instances of AudioManager detected
[7146:7146:0406/121917.570450:ERROR:gl_surface_glx.cc(406)] glxQueryVersion failed
[7146:7146:0406/121917.570506:ERROR:gl_initializer_x11.cc(136)] GLSurfaceGLX::InitializeOneOff failed.
[7146:7146:0406/121917.572327:ERROR:child_thread_impl.cc(762)] Request for unknown Channel-associated interface: ui::mojom::GpuMain
[7146:7146:0406/121917.572698:ERROR:gpu_child_thread.cc(330)] Exiting GPU process due to errors during initialization

However on successful runs this also happens and the log continues:
[32566:32598:0406/144120.367781:ERROR:browser_gpu_channel_host_factory.cc(113)] Failed to launch GPU process.
[32566:32598:0406/144120.367832:ERROR:browser_gpu_channel_host_factory.cc(113)] Failed to launch GPU process.
[32566:32598:0406/144120.367863:ERROR:browser_gpu_channel_host_factory.cc(113)] Failed to launch GPU process.
[32566:32598:0406/144120.367888:ERROR:browser_gpu_channel_host_factory.cc(113)] Failed to launch GPU process.
[32566:32598:0406/144120.367912:ERROR:browser_gpu_channel_host_factory.cc(113)] Failed to launch GPU process.
(then the logs from the tests follow)

It seems that https://bugs.chromium.org/p/chromedriver/issues/detail?id=1298 is the related bug report, which was closed without any real solution.

I have this random issue too.
npm logs:
> NODE_ENV=e2e node_modules/.bin/protractor protractor.others.conf.js

[10:28:22] I/hosted - Using the selenium server at http://selenium-52640-others:4444/wd/hub
[10:28:22] I/launcher - Running 1 instances of WebDriver
ERROR: Job failed: execution took longer than 20m0s seconds

Selenimu logs:
31/05/2017 10:28:0810:28:08.341 INFO - Selenium Server is up and running
31/05/2017 10:28:2210:28:22.780 INFO - SessionCleaner initialized with insideBrowserTimeout 0 and clientGoneTimeout 1800000 polling every 180000
31/05/2017 10:28:2210:28:22.815 INFO - Executing: [new session: Capabilities [{count=1, browserName=chrome, chromeOptions={prefs={download={directory_upgrade=true, default_directory=/tmp/, prompt_for_download=false}}}, version=ANY, platform=ANY}]])
31/05/2017 10:28:2210:28:22.836 INFO - Creating a new session for Capabilities [{count=1, browserName=chrome, chromeOptions={prefs={download={directory_upgrade=true, default_directory=/tmp/, prompt_for_download=false}}}, version=ANY, platform=ANY}]
31/05/2017 10:28:23Starting ChromeDriver 2.27.440175 (9bc1d90b8bfa4dd181fbbf769a5eb5e575574320) on port 4676
31/05/2017 10:28:23Only local connections are allowed.

Then nothing until timeout.

Great news for everyone in the thread: from version 59 Chrome will be supporting headless mode, so xvfb will not be needed anymore. Details are here: https://developers.google.com/web/updates/2017/04/headless-chrome

Hm, the issue with headless chrome (v. 59) is, that sendkey interactions are not supported (you can not enter data into an input field 👎 )
See https://bugs.chromium.org/p/chromedriver/issues/detail?id=1772

I am getting similar issue where 1 instance of webdriver remains forever until I abort the test run in jenkins. Protractor hangs at
I/launcher - 1 instance(s) of WebDriver still running
Setup  (protractor | headless chrome | docker | jenkins)
protractor 5.3.2
chromedriverVersion: '2.40.565383'
chrome 'version' => '68.0.3440.75'
platform=Linux 3.10.0-862.3.2.el7.x86_64 x86_64)
Docker image :
FROM node:9-stretch
RUN apt-get update &&
DEBIAN_FRONTEND="noninteractive"
apt-get install -y --no-install-recommends
chromium
dbus-x11
dumb-init
libgconf-2-4
openjdk-8-jre-headless
&& rm -rf /var/lib/apt/lists/*
USER node
ENV CHROME_BIN /usr/bin/chromium
ENV DBUS_SESSION_BUS_ADDRESS /dev/null
protractor.conf.js
directConnect: true,
capabilities: {
shardTestFiles: true,
maxInstances: 6,
    'browserName': 'chrome',
    'chromeOptions': {
        args: ['no-sandbox','headless','disable-gpu','window-size=1366,768','enable-logging' ,'v=1','disable-dev-shm-usage'],
    }
},

Tried using : ENV DBUS_SESSION_BUS_ADDRESS /dev/null  as suggested in docker file but error still exist.

Any progress with this issue? I am using protractor 5.4.0 with "protractor-cucumber-framework": "6.0.0", and if some test fails in parallel mode, instance of webdriver is not shut down and hangs indefinitely.

seeing this as well
Version 5.4.0
Google Chrome 69.0.3497.100

Also seeing this. At first it would only happen intermittently and could be fixed with a restart, now it seems to happen every time.
Protractor 5.4.1
Chrome 69.0.3497.100
/** Protractor configuration */
exports.config = {
  ...
  capabilities: {
    browserName: 'chrome',
    loggingPrefs: {
      browser: 'SEVERE',
    },
    chromeOptions: {
      args: [
        '--allow-running-insecure-content',
        '--use-fake-device-for-media-stream',
        '--use-fake-ui-for-media-stream',
        '--window-size=1920,1080',
        '--enable-gpu-rasterization',
        '--enable-impl-side-painting',
        '--no-first-run',
        '--no-sandbox',
        '--incognito',
        '--headless',
        '--disable-infobars',
        '--disable-session-crashed-bubble',
        '--noerrdialogs',
        '--disable-touch-adjustment',
        '--disable-touch-events',
        '--disable-pinch',
        '--overscroll-history-navigation=0',
        '--disable-setuid-sandbox',
        '--js-flags="--expose-gc"',
      ]
    }
  },
  directConnect: true,
  framework: 'jasmine',
  getPageTimeout: 5000,
  allScriptsTimeout: 5000,
  ...
};

(related)[https://github.com/angular/protractor/issues/4966]

I am still facing same error.
I am not using

onComplete
below is my
`
exports.config = {
framework: 'jasmine2',
getPageTimeout: pageLoadTimeout,
allScriptsTimeout: allScriptsTimeout,
customerCode:customerCode,
useAllAngular2AppRoots: true,
testData:webpackHelper.getTestData(),
//directConnect: true, // this runs selenium server on the fly and it has faster execution + parallel execution efficiently
//and tests are more stable with local server started instead of directConnection.
baseUrl: 'http://localhost:3000',
capabilities: {
browserName: 'chrome',
shardTestFiles: true,
maxInstances: 5,
chromeOptions: {
args: [
'disable-extensions',
'disable-web-security',
'--start-fullscreen', // enable for Mac OS
'--headless', // start on background
'--disable-gpu',
'--window-size=2880,1800'
]
},
'moz:firefoxOptions': {
args: ['--headless']
}
},
jasmineNodeOpts: {
defaultTimeoutInterval: extendedDefaultTimeoutInterval,
isVerbose: true,
showTiming: true,
includeStackTrace: true,
realtimeFailure: true,
showColors: true
},
suites: {
regression: [
// login logout tests
testBaseDir + 'login.test.js',
],
/**
* This suite is for development environment and always all dev tests will be executed.
*/
development: [
testBaseDir + 'dev1.js',
testBaseDir + 'dev2.js'
]
},
onCleanUp: function (results) {
retry.onCleanUp(results);
},
onPrepare() {
retry.onPrepare();

//console.log('Running instance at '+ new Date());
jasmine.getEnv().addReporter(new SpecReporter({
  displayStacktrace: true,
  displaySpecDuration: true,
  displaySuiteNumber: true
}));

browser.manage().timeouts().pageLoadTimeout(pageLoadTimeout);
browser.manage().timeouts().implicitlyWait(2000);

let jasmineReporters = require('jasmine-reporters');
let junitReporter = new jasmineReporters.JUnitXmlReporter({
  savePath: protractorPath,

  // conslidate all true:
  //   output/junitresults.xml
  //
  // conslidate all set to false:
  //   output/junitresults-example1.xml
  //   output/junitresults-example2.xml
  consolidateAll: true
});

jasmine.getEnv().addReporter(new JSONReporter({
  file: 'target/jasmine-results.json', // by default it writes to jasmine.json
  beautify: true,
  indentationLevel: 4 // used if beautify === true
}));

jasmine.getEnv().addReporter(junitReporter);

var AllureReporter = require('jasmine-allure-reporter');
jasmine.getEnv().addReporter(new AllureReporter({
  resultsDir: 'target/allure-results'
}));
jasmine.getEnv().afterEach(function(done){
  browser.takeScreenshot().then(function (png) {
    allure.createAttachment('Screenshot', function () {
      return new Buffer(png, 'base64')
    }, 'image/png')();
    done();
  })
});

//browser.driver.manage().window().maximize(); // disable for Mac OS
browser.get(browser.baseUrl);
return browser.wait(() => {
  return browser.getCurrentUrl().then(url => {
    return /login/.test(url);
  });
}, pageResolveTimeout);

},
beforeLaunch: function () {
},
afterLaunch: function() {
return retry.afterLaunch(maxRetryForFailedTests);

}
};
`

Guys & girls, seems like I have just found a workaroung, not very nice but atleast working:
webdriver-manager clean
webdriver-manager update
and you are ready to go!

I've been through this case before.
The issue was that one of my tests ( since I was running them in // ) was hanging because of a explicit waiting condition that had a very big timeout value.
So what I'd advise you to do is, run them in // ( Here's how to do it [https://stackoverflow.com/a/38694255/10273452]) and put maxInstances = 1 and try to identify the tests that's causing the hanging.
Good luck !

I've been through this case before.
The issue was that one of my tests ( since I was running them in // ) was hanging because of a explicit waiting condition that had a very big timeout value.
So what I'd advise you to do is, run them in // ( Here's how to do it [https://stackoverflow.com/a/38694255/10273452]) and put maxInstances = 1 and try to identify the tests that's causing the hanging.
Good luck !


[DOC] Including details on tenant deletion

Description:
The following documents [1][2] should be updated with the steps and the complications of deleting tenants in the API-Manager server. These should be updated with details on using the "TenantMgtAdminService" to delete the tenants instead of using "RemoteTenantManagerService".
[1]. https://docs.wso2.com/display/AM260/Managing+Tenants
[2]. https://apim.docs.wso2.com/en/latest/administer/product-administration/multitenancy/managing-tenants/
This is further explained in the following issue [3] created in carbon-kernel. And the relevant steps are discussed in the following pull request [4].
[3]. https://github.com/wso2/carbon-kernel/issues/1967
[4]. https://github.com/wso2/carbon-kernel/pull/1923
Affected Product Version:
APIM-2.6.0
APIM-3.0.0

@lkokila , thanks for reporting! We need more clarification in this regard. We will reach out to you soon.

The configuration to enable tenant deletion is not templated in carbon.xml.j2 file in 3.x versions. Created [1] to track this. We need to update doc space of 3.x version after fixing this issue in 3.x version.
[1] https://github.com/wso2/product-apim/issues/9352

We will not be fixing this as this issue is based on an older version of the product.


unify name for taxonomy field

My feeling is that we should do the mapping the other way around, and have the field produced by GTDB_tk be the canonical key rather than the key in the meta data file

👍


Fix AddToSlack link

A user reached out to us at Beep Boop and was having problem adding your project to Slack via the button in the README. This fixes that with the link that redirects through Beep Boop first that knows where to redirect and knows what oauth scopes you are requesting and such.

Fantastic, thanks!


Migrate from bintray for publishing

Done in https://github.com/simonpoole/material-range-bar/commit/8707a42cee5a3c2fa0696c5a8328bda7112ddd17


Fix the crash!

Big thanks to @mcous, who I can't seem to tag on this PR (maybe he's not in the viam-labs org?)!
I'd like to test this again another day, but it sure seems believable that this fixes it: before I cleaned up our debugging info, we shared and stopped sharing a screen a dozen times without a crash.

Yup, tried at my desk: even after the commit labeled "pr feedback," HRB is able to re-open the participants list after I've shared and unshared my screen half a dozen times!


#161 KMeans CPU fallback

#161 fall back to scikit CPU kmeans implementation when no GPU selected/present.

@pseudotensor yes all thanks to you explicitly creating model_h2o4gpu and model_sklearn beforehand. Another added bonus of that is that in DAI we can do model.sklearn = OTHER_OBEJCT since for example in DAI they are using MiniBatchKMeans and not KMeans.


DynamoDB Service Resource batch_get_item fails with TypeError: unhashable type: 'dict'

To repro:
I have a unit test using the @mock_dynamodb2 decorator that fails when this request is called:
Update: found that moto testing works when the method is called on boto3.client, so revised this repro example to show the issue with the dynamodb Service Resource
dynamo_resource = boto3.resource("dynamodb")
dynamo_resource.batch_get_item(
    RequestItems={
        "table_name": {
            "Keys": [
                {"some_key": {"S": "some_key_value"}},
                {"some_key": {"S": "another_key_value"}},
                {"some_key": {"S": "yet_another_key_value"}},
            ]
        }
    }
)

This raises an exception, TypeError: unhashable type: 'dict'
Traceback:
File "/.virtualenvs/some_app/python3.6/site-packages/boto3/resources/factory.py", line 520, in do_action
  response = action(self, *args, **kwargs)
File "/.virtualenvs/some_app/python3.6/site-packages/boto3/resources/action.py", line 83, in __call__
  response = getattr(parent.meta.client, operation_name)(**params)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/client.py", line 357, in _api_call
  return self._make_api_call(operation_name, kwargs)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/client.py", line 648, in _make_api_call
  operation_model, request_dict, request_context)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/client.py", line 667, in _make_request
  return self._endpoint.make_request(operation_model, request_dict)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/endpoint.py", line 102, in make_request
  return self._send_request(request_dict, operation_model)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/endpoint.py", line 137, in _send_request
  success_response, exception):
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/endpoint.py", line 231, in _needs_retry
  caught_exception=caught_exception, request_dict=request_dict)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/hooks.py", line 356, in emit
  return self._emitter.emit(aliased_event_name, **kwargs)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/hooks.py", line 228, in emit
  return self._emit(event_name, kwargs)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/hooks.py", line 211, in _emit
  response = handler(**kwargs)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/retryhandler.py", line 183, in __call__
  if self._checker(attempts, response, caught_exception):
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/retryhandler.py", line 251, in __call__
  caught_exception)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/retryhandler.py", line 269, in _should_retry
  return self._checker(attempt_number, response, caught_exception)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/retryhandler.py", line 317, in __call__
  caught_exception)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/retryhandler.py", line 223, in __call__
  attempt_number, caught_exception)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/retryhandler.py", line 359, in _check_caught_exception
  raise caught_exception
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/endpoint.py", line 197, in _do_get_response
  responses = self._event_emitter.emit(event_name, request=request)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/hooks.py", line 356, in emit
  return self._emitter.emit(aliased_event_name, **kwargs)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/hooks.py", line 228, in emit
  return self._emit(event_name, kwargs)
File "/.virtualenvs/some_app/python3.6/site-packages/botocore/hooks.py", line 211, in _emit
  response = handler(**kwargs)
File "/.virtualenvs/some_app/python3.6/site-packages/moto/core/models.py", line 292, in __call__
  status, headers, body = response_callback(request, request.url, request.headers)
File "/.virtualenvs/some_app/python3.6/site-packages/moto/core/responses.py", line 117, in dispatch
  return cls()._dispatch(*args, **kwargs)
File "/.virtualenvs/some_app/python3.6/site-packages/moto/core/responses.py", line 200, in _dispatch
  return self.call_action()
File "/.virtualenvs/some_app/python3.6/site-packages/moto/core/utils.py", line 264, in _wrapper
  response = f(*args, **kwargs)
File "/.virtualenvs/some_app/python3.6/site-packages/moto/dynamodb2/responses.py", line 64, in call_action
  response = getattr(self, endpoint)()
File "/.virtualenvs/some_app/python3.6/site-packages/moto/dynamodb2/responses.py", line 299, in batch_get_item
  item = self.dynamodb_backend.get_item(table_name, key)
File "/.virtualenvs/some_app/python3.6/site-packages/moto/dynamodb2/models.py", line 764, in get_item
  return table.get_item(hash_key, range_key)
File "/.virtualenvs/some_app/python3.6/site-packages/moto/dynamodb2/models.py", line 455, in get_item
  if hash_key in self.items:
File "/.virtualenvs/some_app/python3.6/site-packages/moto/dynamodb2/models.py", line 38, in __hash__
  return hash((self.type, self.value))
TypeError: unhashable type: 'dict'

Expectation
To receive a 200 status and no exceptions, since this appears to be working againt Amazon's downloadable dev Dynamo
What Happens
The TypeError: unhashable type: 'dict' exception with  the above stacktrace.
Version of Moto and Boto3 / Botocore

moto==1.3.7
boto==2.48.0
boto3==1.9.118
botocore==1.12.118

Debugging observations and questions
Attempted to debug further, noticed that the DynamoJsonEncoder.body has a request that is oddly changed:
'{
    "RequestItems": {
        "table_name": {
            "Keys": [
                {
                    "some_key": {
                        "M": {
                            "S": {
                                "S": "some_value"
                            }
                        }
                    }
                },
                {
                    "some_key": {
                        "M": {
                            "S": {
                                "S": "another_key_value"
                            }
                        }
                    }
                },
                {
                    "some_key": {
                        "M": {
                            "S": {
                                "S": "yet_another_key_value"
                            }
                        }
                    }
                }
            ]
        }
    }
}'

Looks like the key dictionaries are getting nested somehow? Where does the "M" key come from? Why and where does this body get set?
Since the keys are now nested, the hash method will fail since it's receiving a dictionary value (rather than a string value). I tried modifying the DynamoJsonEncoder body back to the original request during debugging, and it seems to fix the issue. However, I am unsure of where the request body is getting modified.
Would love any insight into what's happening here. Thanks!

Aha! Turns out I had accidentally been calling batch_get_item on a dynamodb.ServiceResource, rather than a boto3.client. I am surprised that boto3 allows that in the first place. Mystery solved.

Double-checked the docs, looks like batch_get_items is a method that should work for both Service Resource and Client. Will reopen this issue in case there's a problem with boto3.resource("dynamodb").batch_get_items
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html

In the tests we have for this, we seem to pass tuples instead of dictionaries: https://github.com/spulec/moto/blob/master/tests/test_dynamodb/test_dynamodb_table_with_range_key.py#L523
Can you confirm that works? If so it seems like we should update the code to handle dictionaries as well.

FYI, the following test passes against both AWS and moto:
@mock_dynamodb2
def test_batch_items_using_resource_returns_all():
    _create_user_table()
    res = boto3.resource("dynamodb", region_name="us-east-1")
    res_batch = res.batch_get_item(
        RequestItems={
            "users": {
                "Keys": [
                    {"username": "user0"},
                    {"username": "user1"},
                    {"username": "user2"},
                    {"username": "user3"}
                ],
                "ConsistentRead": True,
            }
        }
    )['Responses']['users']
    assert sorted([item["username"] for item in res_batch]) == sorted(["user1", "user2", "user3"])

So the batch_get_item() is supported against ServiceResource, as long as the keys are passed in as a string, as opposed to DynamoDB's JSON format ({'S': key}
When passing in the dict ({"username": {"S": "user0"}}) against the ServiceResource, AWS actually gives an error as well:
An error occurred (ValidationException) when calling the BatchGetItem operation: The provided key element does not match the schema

Going to close this as I think it's been solved - feel free to reopen if I've missed something

Maybe will be useful for someone: in boto3==1.16.52 if more than 1 table added in payload - Validation error will be raised.
Update for newer version to be able to use Resource for batch_get_item method.


Filesystem provider extenion not reactived after updateWorkspaceFolders is invoked

Issue Type: Bug
repo

Start the fs-provider example: https://github.com/Microsoft/vscode-extension-samples/tree/master/fsprovider-sample
Invoke MemFS: Setup workspace

Bug
The extension is deactived and then not reactived
If you reload the window, then the extension is resolved properly
VS Code version: code-oss-dev 1.37.0 (Commit unknown, Date unknown)
OS version: Darwin x64 18.6.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-4770HQ CPU @ 2.20GHz (8 x 2200)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onnative_gpu_memory_buffers: enabledoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_deferred_display_list: disabled_offskia_renderer: disabled_offsurface_synchronization: enabled_onvideo_decode: enabledviz_display_compositor: disabled_offwebgl: enabledwebgl2: enabled

Load (avg)
2, 2, 3

Memory (System)
16.00GB (0.13GB free)

Process Argv
.

Screen Reader
no

VM
0%

We should activate them after extension host restart. Happy for a PR if someone wants to chime in with a reasonably small fix.

This was an exception thrown between restarting the extension host, good catch!

Ok, I'm seeing the extension activated now but the sample still doesn't work so I'm reopening this:

After running this command, I actually see memfs activated twice which is strange:

I attached to the extension host to debug but did not see any obvious crashes
Feel free to split this out into a new issue if it is not related to the original bug.

@mjbvz I cannot reproduce that, did you start from an empty workspace?

Btw since this fix landed in our recovery release already last month, I am quite confident that it works.

I can confirm it works when you run that command in an empty workspace.
The example extension still fails for me when I run MemFS: Setup workspace with a folder already open

Moving to @jrieken for the extension and @isidorn for the explorer. I see the folder is added but shows with a "!". Maybe a consequence of us restarting the extension host when the first folder is added, which would mean this is a duplicate of https://github.com/microsoft/vscode/issues/69335

The extension always forgets everything after reload, you always need to run the 'create files' command

Ok then the remaining issue is the "!" for the folder, I would think that it should not happen. Maybe this is a race condition from adding the first folder and restarting the extension host meanwhile.

The issue here is the following:

We are transitioning to a workspace, there is no previous view state, so the explorer decides to expand all the root nodes (as a heuristic)
Since the memfs can not be expanded (the MemFS Create Files was not yet triggered) - FileService returns a Canceled promise when I do fileService.resolve
Since I got the error from the FileService I simply show it as a broken root in the explorer

Suggestions on how to tackle this are welcome.
I am also not sure why the FileService returns a Canceled instead of giving an empy array of children?


Fix some typos in the comments

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] At least skimmed through adding new extractor tutorial and youtube-dl coding conventions sections
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
Some small typos in the comments which may cause confusion since IFF is also a file format.

#11004


Rails upgrade to 4.2

4.0 is no longer maintaned and 4.1 is about to EOL as soon as 5.0 ships.
This migrates us up to 4.2, with almost all specs passing. The only concern is this test:
SearchControllerTest#test_should_search [/vagrant/test/controllers/search_controller_test.rb:17]:
Expected: 1
  Actual: 0

it fails every other run. Super odd.

It looks like there are other changes in here besides changing the Rails version. I think it makes sense to first try to get the vagrant changes (issue #149) figured out and then come back to this.

Agreed. They build off of each other. Most of the changes here are actually vagrant development environment changes. Should have squashed them.
I didn't want to start really futzing with stuff until we had a stable, repeatable development environment.


This operation can't be cancelled

op, err := c.ExecContainer("some-ubuntu", req, &args)
if err != nil {
fmt.Println(err)
}
op.Cancel() // err: This operation can't be cancelled

That's correct, LXD cannot cancel an exec operation.

Not all operations are cancel-able. In general operation that are handling HTTP transfers can be canceled, the rest cannot.
For exec, you may be able to interrupt the process in the container by either running another command to kill the first or if still attached to the initial command by using its control socket to send a kill signal to the process.


support CPR

close #55
the function report_device_status is copied from pyte by changing \x9b to \x1b[

Well, it is not working very probably. Don't not merge.

it seems that gateone may be a solution to this. pyte is quite buggy.


feature switch accounts

Brother, please add a feature to switch accounts. Because each account has a request limit. Thank You.
prompt = 'string hello world'
newchat = claude_obj.start_new_conversation("New Conversation", f"Hi Claude! {prompt}")
if newchat is not None:
// Doing something according to the concept
else:
// HTTP Error 429: Too Many Requests
// None
// Switch accounts

As @Xceron said, the current way you can do yhis is by  catching the error and using a new client for the account you want to switch to.
Currently the interface isnt super ergonomic for this use case, but I can add a switch_account() method to the ClaudeWrapper to make this slightly easier.

I do this from outside, i.e., by catching the error and then starting the script/a new request from scratch

Yes, like example my code before.
newchat = claude_obj.start_new_conversation("New Conversation", f"Hi Claude!")
if newchat is not None:
// do something
else:
// change account
Or you give another ideas?

@pendekarcode I just added a new method to the ClaudeWrapper class that may help out. Its not on pip, but you can use it if you download the git repo as a pip package. Example usage:
newchat = claude_obj.start_new_conversation("New Conversation", f"Hi Claude!")
if newchat is not None:
    # do something
else:
    # change account
    # here, you have to sign into a new account
    new_client = claude_client.ClaudeClient(SESSION_KEY)
    claude_obj.switch_account(new_client)
    # set the conversation context for `claude_obj` like normal and continue using it

You might be able to make it slightly cleaner based on your use case:
newchat = claude_obj.start_new_conversation("New Conversation", f"Hi Claude!")
if newchat is None:
    # fallback to using another client
    new_client = claude_client.ClaudeClient(SESSION_KEY)
    claude_obj.switch_account(new_client)
    newchat = claude_obj.start_new_conversation("New Conversation", f"Hi Claude!")

# Do something with `newchat`

@pendekarcode I just added a new method to the ClaudeWrapper class that may help out. Its not on pip, but you can use it if you download the git repo as a pip package. Example usage:
newchat = claude_obj.start_new_conversation("New Conversation", f"Hi Claude!")
if newchat is not None:
    # do something
else:
    # change account
    # here, you have to sign into a new account
    new_client = claude_client.ClaudeClient(NEW_SESSION_KEY)
    claude_obj.switch_account(new_client)
    # set the conversation context for `claude_obj` like normal and continue using it

You might be able to make it slightly cleaner based on your use case:
newchat = claude_obj.start_new_conversation("New Conversation", f"Hi Claude!")
if newchat is None:
    # fallback to using another client
    new_client = claude_client.ClaudeClient(NEW_SESSION_KEY)
    claude_obj.switch_account(new_client)
    newchat = claude_obj.start_new_conversation("New Conversation", f"Hi Claude!")

# Do something with `newchat`

thank you brother....

@pendekarcode if it works, lmk and ill close the issue.

@pendekarcode if it works, lmk and ill close the issue.

yes brother. thank you very much.


Cannot Set Y Axis Min Greater than Max for Inverted Axis since 4.0

When upgrading from 3.0 to 4.0 I am unable to set Y Axis Min Value to be greater than the Max value to have an inverted axis (ie 0 at the top and 50 at the bottom)
Working example with 3.0:
y: {
    max: -10,
    min: 50,
      padding: {
                top: 10,
                bottom: 0
      }
}

This produces a graph like this

How could I get this to work again?
Or what are my options for having an inverted y axis?

Hi, I fixed this issue and additionally I introduced axis.y.inverted option to inverted the direction of y axis as your use case. So, now you can do that by setting as you did like this example, or using this new option like axis.y.inverted = true.
Anyway, can you try these again? I'll release this in the next version v0.4.9 shortly.

@masayuki0812 - Perfect! It's working now.
Here is my test code and screenshot below of the axis inversion.

y: {
              inverted: true,
              max: 50,
              min: 0,
              padding: {
                top: 5,
                bottom: 0
              }
            }

Thank you :+1:

v0.4.9 has been released, so please let me close.


fix(conformance): OCI-Filters-Applied should return a literal

https://github.com/opencontainers/distribution-spec/issues/448
Should only indicate what filter-type was applied and not what exact values it was filtered on.

What type of PR is this?

Which issue does this PR fix:
What does this PR do / Why do we need it:
If an issue # is not available please add repro steps and logs showing the issue:
Testing done on this change:

Automation added to e2e:

Will this break upgrades or downgrades?
Does this PR introduce any user-facing change?:

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

If you rebase that zap scan failure should go away.

Let me coordinate with Brandon about this PR

[FAILED] Expected
: artifactType
to equal
: application/vnd.nhl.peanut.butter.bagel
In [It] at: /home/runner/work/zot/zot/distribution-spec/conformance/03_discovery_test.go:326 @ 07/21/23 21:05:21.231
^ this should really be the only failure if we plan to merge this.


Integration Test - Release - 2019/03/21 02:04:19

Auto create for integration test. AnotherAuthorUpdatedArticleFlow

@PRMergerTest2 : Thanks for your contribution! The author, @v-caxian, has been notified to review your proposed change.


Prototype api asks token in the dev portal

Description:
Once I created prototype API and navigate to dev portal, it asks token to invoke the prototype API.
Steps to reproduce:
Affected Product Version:

Environment details (with versions):

OS:
Client:
Env (Docker/K8s):

Optional Fields
Related Issues:

Suggested Labels:

Suggested Assignees:

https://github.com/wso2/carbon-apimgt/pull/9089