const user is null when await this.userManager.signinCallback(url); in production only

Not sure if this is a similar or different problem. Using IdentityServer4 (4.0) from the Boilerplate of the Angular 8 .net core application. Running in iis everything works. as soon as I publish to IIS I get the following.
There was an error signing in: Error: (400)
at XMLHttpRequest.o.onload [as __zone_symbol__ON_PROPERTYload] (main-es2015.ae9ca0e58964647235f0.js:1)
at XMLHttpRequest.w (polyfills-es2015.5b10b8fd823b6392f1fd.js:1)
at a.invokeTask (polyfills-es2015.5b10b8fd823b6392f1fd.js:1)
at Object.onInvokeTask (main-es2015.ae9ca0e58964647235f0.js:1)
at a.invokeTask (polyfills-es2015.5b10b8fd823b6392f1fd.js:1)
at s.runTask (polyfills-es2015.5b10b8fd823b6392f1fd.js:1)
at c.invokeTask [as invoke] (polyfills-es2015.5b10b8fd823b6392f1fd.js:1)
at u (polyfills-es2015.5b10b8fd823b6392f1fd.js:1)
at XMLHttpRequest.p (polyfills-es2015.5b10b8fd823b6392f1fd.js:1)
Listing the number of different ways I have tried to fix this results in the same error. I have narrowed it down to the user being null in authorisation.service.ts
public async completeSignIn(url: string): Promise {
try {
await this.ensureUserManagerInitialized();
//user is null on production server
const user = await this.userManager.signinCallback(url);
this.userSubject.next(user && user.profile);
return this.success(user && user.state);
} catch (error) {
console.log('There was an error signing in: ', error);
return this.error('There was an error signing in.');
}
}

Sorry you will have to do more debugging on your side.

The data.css_injector[1] is also undefined in gd.js but only in production

Most of the fixes already propose, such as services.configure(×=>x.ClaimsIdentiy... do not fix the problem.
There is no other errors other than the one displayed.
I have even rewritten using Version 2.3.2 which works, but not recommended

I'm sorry -- I don't know what the issue is. It feels like something in your minification process might be the reason?

I would have thought that was also, so buit without the --prod and debug right to the point of failure this.usermanager.signingCallback use is null.
The OidcController returns all the correct values.  So between the OidcController and the signinCallback, something is breaking.
Watching with fiddler, the token call fails.
This happens on vs2019 vanilla build of Angulare .net core 3.1 but only on production build in iis.  Express with production is fine

I've just come back to this after a fe days working on something else
The failure is only on iis with valid certificate and only at the point of the signinCallback (await this.userManager.signinCallback(url);)
lthe sturcture of the url in the callback is the same as the working localhost;
To replicated
dotnet new angular -o <output_directory_name> -au Individual
cd to ClientApp
npm install
ng build
change DefaultConnection to named user with rights to sqlexpress
run in visual studio iis express - All working
publish to local folder
point iis to folder
Evertything runs as expected but login returns error "There was an error signing in."
Error:  (400)
at XMLHttpRequest.s.onload [as __zone_symbol__ON_PROPERTYload] (oidc-client.min.js:1)
at XMLHttpRequest.wrapFn (zone-evergreen.js:1191)
at ZoneDelegate.invokeTask (zone-evergreen.js:391)
at Object.onInvokeTask (core.js:39680)
at ZoneDelegate.invokeTask (zone-evergreen.js:390)
at Zone.runTask (zone-evergreen.js:168)
at ZoneTask.invokeTask [as invoke] (zone-evergreen.js:465)
at invokeTask (zone-evergreen.js:1603)
at XMLHttpRequest.globalZoneAwareCallback (zone-evergreen.js:1640)

Getting closer to where the problem is
Playing around with iis and different certificate configurations.  When using a valid *.pa2020.co.uk path for the CN then it fails.  but works with localhost and other self signed certificates.
Next step, try other valid certificates

SOLVED
This required changes to the code and to the IIS server
The certificate turned out to be partially the issue, so in the startup I added the following at the top of ConfigureServices
var cert = new X509Certificate2("my_private_key.pfx", Configuration["Authentication:Certificate:Pwd"]);
on the IIS Server I used certlm.msc to install the certificate
on the IIS Application Pool I changed the application pool identity from "ApplicationPool" to "NetworkService"
Now working as expected

Ok, glad it's working.


Filter templates by sourceType

When creating a template, you can (but you do not have to) choose three different source types: Git, Helm repo, and OCI registry. Similar to how you can filter modules based on status, implement a filter of templates based on sourceType.

Can I work?

@quest-bot embark


corrected the bug of navbar logo hovering effect

Related Issue
Closes: #1903
Description
This PR fixes the issue where the navbar logo goes out of the navbar when hovered, as described in issue #1903 . The problem was that the logo's hover effect caused it to exceed the navbar bounds and overlap with the text.
Fix:
Added CSS styling to scale the logo on hover without exceeding the navbar bounds.
Updated the header class to include overflow: hidden; to prevent elements from exceeding its boundaries.
Added margin to the text elements adjacent to the logo to prevent overlap when the logo is hovered.
Screenshots
Provide screenshots to preview the changes.

Checklist
My code adheres to the established style guidelines of the project.
I have included comments in areas that may be difficult to understand.
My changes have not introduced any new warnings.
I have conducted a self-review of my code.

please assign this issue to me under Gssoc 2024
this is my first time and i am getting too much confused with this
i have even corrected the issue and this is image of the issue

created pr without being assigned an issue is not allowed.


it fails on import copy

this simple file test.py:
import copy

transcrypt fails with:
$ transcrypt -b test.py

Transcrypt (TM) Python to JavaScript Small Sane Subset Transpiler Version 3.6.24
Copyright (C) Geatec Engineering. License: Apache 2.0

Error while compiling (offending file last):
	File '/Users/david/test.py', line 1, at import of:
	File '/Users/david/.virtualenvs/py3-data/lib/python3.6/copy.py', line 51, at import of:
	File '/Users/david/.virtualenvs/py3-data/lib/python3.6/types.py', line 4, namely:

	Attempt to import module: sys
	Can't find any of:
		/Users/david/sys.py
		/Users/david/__javascript__/sys.mod.js
		/Users/david/.virtualenvs/py3-data/lib/python3.6/site-packages/transcrypt/modules/sys.py
		/Users/david/.virtualenvs/py3-data/lib/python3.6/site-packages/transcrypt/modules/__javascript__/sys.mod.js
		/Users/david/.virtualenvs/py3-data/bin/sys.py
		/Users/david/.virtualenvs/py3-data/bin/__javascript__/sys.mod.js
		/Users/david/.virtualenvs/py3-data/lib/python36.zip/sys.py
		/Users/david/.virtualenvs/py3-data/lib/python36.zip/__javascript__/sys.mod.js
		/Users/david/.virtualenvs/py3-data/lib/python3.6/sys.py
		/Users/david/.virtualenvs/py3-data/lib/python3.6/__javascript__/sys.mod.js
		/Users/david/.virtualenvs/py3-data/lib/python3.6/lib-dynload/sys.py
		/Users/david/.virtualenvs/py3-data/lib/python3.6/lib-dynload/__javascript__/sys.mod.js
		/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/sys.py
		/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/__javascript__/sys.mod.js
		/Users/david/.virtualenvs/py3-data/lib/python3.6/site-packages/sys.py
		/Users/david/.virtualenvs/py3-data/lib/python3.6/site-packages/__javascript__/sys.mod.js

Another project that also has import copy, it fails with:
$ transcrypt -b test.py

Transcrypt (TM) Python to JavaScript Small Sane Subset Transpiler Version 3.6.24
Copyright (C) Geatec Engineering. License: Apache 2.0

Error while compiling (offending file last):
	File '/Users/david/test.py', line 5, at import of:
	File '/Users/david/.virtualenvs/py3-data/lib/python3.6/copy.py', line 51, at import of:
	File '/Users/david/.virtualenvs/py3-data/lib/python3.6/types.py', line 15, at import of:
	File '/Users/david/.virtualenvs/py3-data/lib/python3.6/site-packages/lxml/__init__.py', line 9, at import of:
	File '/Users/david/.virtualenvs/py3-data/lib/python3.6/os.py', line 25, at import of:
	File '/Users/david/.virtualenvs/py3-data/lib/python3.6/abc.py', line 6, at import of:
	File '/Users/david/.virtualenvs/py3-data/lib/python3.6/_weakrefset.py', line 5, namely:

	Attempt to import module: _weakref
	Can't find any of:
		/Users/david/_weakref.py
		/Users/david/__javascript__/_weakref.mod.js
		/Users/david/.virtualenvs/py3-data/lib/python3.6/site-packages/transcrypt/modules/_weakref.py
		/Users/david/.virtualenvs/py3-data/lib/python3.6/site-packages/transcrypt/modules/__javascript__/_weakref.mod.js
		/Users/david/.virtualenvs/py3-data/bin/_weakref.py
		/Users/david/.virtualenvs/py3-data/bin/__javascript__/_weakref.mod.js
		/Users/david/.virtualenvs/py3-data/lib/python36.zip/_weakref.py
		/Users/david/.virtualenvs/py3-data/lib/python36.zip/__javascript__/_weakref.mod.js
		/Users/david/.virtualenvs/py3-data/lib/python3.6/_weakref.py
		/Users/david/.virtualenvs/py3-data/lib/python3.6/__javascript__/_weakref.mod.js
		/Users/david/.virtualenvs/py3-data/lib/python3.6/lib-dynload/_weakref.py
		/Users/david/.virtualenvs/py3-data/lib/python3.6/lib-dynload/__javascript__/_weakref.mod.js
		/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/_weakref.py
		/usr/local/Cellar/python3/3.6.1/Frameworks/Python.framework/Versions/3.6/lib/python3.6/__javascript__/_weakref.mod.js
		/Users/david/.virtualenvs/py3-data/lib/python3.6/site-packages/_weakref.py
		/Users/david/.virtualenvs/py3-data/lib/python3.6/site-packages/__javascript__/_weakref.mod.js

I tried also on docker, with the same result:
docker run -ti python bash
echo "import copy" >test.py
pip install transcrypt
transcrypt -b test.py

Transcrypt (TM) Python to JavaScript Small Sane Subset Transpiler Version 3.6.24
Copyright (C) Geatec Engineering. License: Apache 2.0

Error while compiling (offending file last):
	File '//test.py', line 1, at import of:
	File '/usr/local/lib/python3.6/copy.py', line 51, at import of:
	File '/usr/local/lib/python3.6/types.py', line 4, namely:

	Attempt to import module: sys
	Can't find any of:
		//sys/__init__.py
		//sys/__javascript__/__init__.mod.js
		/usr/local/lib/python3.6/site-packages/transcrypt/modules/sys.py
		/usr/local/lib/python3.6/site-packages/transcrypt/modules/__javascript__/sys.mod.js
		/usr/local/bin/sys.py
		/usr/local/bin/__javascript__/sys.mod.js
		/usr/local/lib/python36.zip/sys.py
		/usr/local/lib/python36.zip/__javascript__/sys.mod.js
		/usr/local/lib/python3.6/sys.py
		/usr/local/lib/python3.6/__javascript__/sys.mod.js
		/usr/local/lib/python3.6/lib-dynload/sys.py
		/usr/local/lib/python3.6/lib-dynload/__javascript__/sys.mod.js
		/usr/local/lib/python3.6/site-packages/sys.py
		/usr/local/lib/python3.6/site-packages/__javascript__/sys.mod.js

Aborted

Hi,
Unfortunately the 'copy' standard library is not yet supported by Transcrypt.
TS mostly relies on JS libs:
http://sterlicht.alwaysdata.net/transcrypt.org/docs/html/what_why.html#the-ecosystem-different-batteries
We strive to make a limited number of standard libs available, to ease the transition.
Currently available are seed, randint, choice, and random, which are meant just as a starting point. Actually we hope that someone will pick it up and complete it, same as was done for re, which was high on our list.
Kind regards
Jacques

Ok, thanks.
do you plan to support the "collections" library?

There were no plans in that direction, but actually that may be a useful one to support.
In general for libraries we rely on third party contributions.
KR
Jacques

Revisiting this.  I know copy is not supported yet, but the message I get is slightly different so I wanted to add to this thread:
I'm trying to use deepcopy from the built-in copy module copy.deepcopy(), but Transcrypt complains that it can't find PyStringMap when trying to import it
import copy
Error while compiling (offending file last):
        File '/home/data/Python/Transcrypt/demo3/app.py', line 11, at import of:
        File 'copy', line 60, namely:

        Import error, can't find any of:
                /home/data/Python/Transcrypt/demo3/org/python/core/PyStringMap.py
                /home/data/Python/Transcrypt/demo3/org/python/core/PyStringMap.js
                /home/data/Python/Transcrypt/demo3/venv/lib/python3.7/site-packages/transcrypt/modules/org/python/core/PyStringMap.py
                /home/data/Python/Transcrypt/demo3/venv/lib/python3.7/site-packages/transcrypt/modules/org/python/core/PyStringMap.js
                /home/data/Python/Transcrypt/demo3/venv/bin/org/python/core/PyStringMap.py
                /home/data/Python/Transcrypt/demo3/venv/bin/org/python/core/PyStringMap.js
                /usr/lib/python3.7/org/python/core/PyStringMap.py
                /usr/lib/python3.7/org/python/core/PyStringMap.js
                /usr/lib/python3.7/lib-dynload/org/python/core/PyStringMap.py
                /usr/lib/python3.7/lib-dynload/org/python/core/PyStringMap.js
                /home/data/Python/Transcrypt/demo3/venv/lib/python3.7/site-packages/org/python/core/PyStringMap.py
                /home/data/Python/Transcrypt/demo3/venv/lib/python3.7/site-packages/org/python/core/PyStringMap.js

...

In the mean time I've had some luck with using the lodash.clonedeep() JS library, but it seems to return dictionaries that have to be run through Python dict() to be valid.

After getting a bit more experience with Transcrypt and re-reading this, I realized my previous post was already answered in that the Python copy library itself is not implemented.
Related to this though, I see there are copy and deepcopy functions in the Transcrypt JS runtime module.  However that deepcopy function does not appear to actually deep copy JavaScript objects.   I have worked around this issue by using a JS library (both deepcopy and lodash.cloneDeep work), but was wondering if the deepcopy in the Transcrypt runtime was intended to replace the Python copy.deepcopy function, and if so are there known limitations?  Or am I just misunderstanding something?

copy module with copy and deepcopy  is currently added in dev_3.9.3 branch to be released in v3.9.3
Need to do a bit more testing on it before releasing.


Some small fixes

Prettier linter now doesn't show a warning for files that don't require any formatting changes (are already formatted)
ESLintLinter and PrettierLinter now don't throw an error because of return status code 1
Fix ESLinter failing because of missing source parameter in some of messages in eslint output

ESLintLinter and PrettierLinter now don't throw an error because of return status code 1
Can you help me understand better why this is desirable? For instance, it suppresses the failure when ./node_modules/* dne (i.e., when --cwd is set or the de facto binary has not been installed).

Is there a need for the wrapper scripts outside of exit code suppression? If not, we would should remove them. That said, your commit definitely exposes some improvements to PrettierEslintLinter.php that were never back-ported so to speak to EslintLinter.php & PrettierLinter.php like the getDefaultBinary() lookup.
Note: The only reason for the node4_proxy wrapper existing was b/c it was the only way to support node 4 and it's need for the --harmony_array_includes feature flag utilized in the prettier-eslint-cli source. Since neither eslint nor prettier have that same need, we would want to avoid a wrapper script to ensure linter logic is consolidated.

Could you elaborate on the reason for adding the wrapper scripts?

Sure. When eslint encounters a lint issue with "error" severity, it returns the normal JSON output to stdout, but exits with exit code 1. This causes Arcanist to assume that something went badly:
 Exception
Some linters failed:
    - CommandException: Command failed with error #1!
      COMMAND
      '/home/kuba/projects/sealcode/ejko/.pinterest-linters/src/.eslint-zero.sh' '--format=json' '--no-color' '/home/kuba/projects/sealcode/ejko/config.js'

      STDOUT
      [{"filePath":"/home/kuba/projects/sealcode/ejko/config.js","messages":[{"ruleId":"no-console","severity":1,"message":"Unexpected console statement.","line":1,"column":1,"nodeType":"MemberExpression","messageId":"unexpected","endLine":1,"endColumn":12},{"ruleId":"no-unused-vars","severity":2,"message":"'a' is assigned a value but never used.","line":3,"column":7,"nodeType":"Identifier","endLine":3,"endColumn":8}],"errorCount":1,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"console.log(\"HELP ME\");\n\nconst a = 0;\n\nmodule.exports = {\n\tlogger: {\n\t\tlevel: process.env.SEALIOUS_LOG_LEVEL || \"info\",\n\t},\n\tupload_path: \"/tmp\",\n\tdatastore_mongo: {\n\t\thost: \"db\",\n\t\tdb_name: \"sealious\",\n\t},\n\timage_formats: {\n\t\tmedium: {\n\t\t\tsize: [300, 180],\n\t\t},\n\t\tsmall: {\n\t\t\tsize: [100, 100],\n\t\t},\n\t},\n\t\"www-server\": {\n\t\tport: 8082,\n\t},\n\tsmtp: {\n\t\thost: \"mailcatcher\",\n\t\tport: 1025,\n\t\tuser: \"any\",\n\t\tpassword: ... (280 more bytes) ...

      STDERR
      (empty)
(Run with `--trace` for a full exception trace.)

Is there a need for the wrapper scripts outside of exit code suppression? If not, we would should remove them.

No, exit code suspension was my only motivation here.

Sure. When eslint encounters a lint issue with "error" severity, it returns the normal JSON output to stdout, but exits with exit code 1.

Ah. You can tell Arcanist that a non-zero exit is normal:
  /**
   * Return true to continue when the external linter exits with an error code.
   * By default, linters which exit with an error code are assumed to have
   * failed. However, some linters exit with a specific code to indicate that
   * lint messages were detected.
   *
   * If the linter sometimes raises errors during normal operation, override
   * this method and return true so execution continues when it exits with
   * a nonzero status.
   *
   * @param bool  Return true to continue on nonzero error code.
   * @task bin
   */
  public function shouldExpectCommandErrors() {
    return true;
  }

The default value changed from false to true in 2015 in D11322. Are you perhaps running an old Arcanist installation?
We can also add an explicit shouldExpectCommandErrors implementation to these linters that returns true.

Are you perhaps running an old Arcanist installation?

I'm on the newest version:
~ >>> arc version
arcanist d9a4293ae734756823b4a3ca202f185c57f3e834 (3 Aug 2018)
libphutil 5b341cc09ca9bb707be469c7f23bbf6a961bc593 (15 Aug 2018)

Closing in favor of https://github.com/pinterest/arcanist-linters/pull/8.
(Still needs testing, but wanted to move the conversation forward)
@kuba-orlik If you'd like, feel free to submit a new PR with just the #1 & #3 fixes from this commit, and I'll land mine on top.

Thanks for picking it up! As #8 already contains those fixes, I think it'd be best to just keep them there :)


Broken link in "A Tool Developer's Guide..." for graph_metrics.py

In this page,
graph_metrics.py link broken. graph_metrics.py is deleted by this commit.

Thanks for the report.  Internal bug opened, but community fix welcome also.

Is anyone working on this internally? I can work on this. If yes, then should I just remove that line or replace it with a link to some other file?

So far as I know, no one is working on it yet.  @danmane ?


WebP filter to generate image srcset for .webp files

Is your feature request related to a problem? Please describe.

I've liked to use the towebp filter on the srcset of the images, but the filter works only on a single file.
Describe the solution you’d like

I wrote the function below to filter an image object and generate srcset of webp files:
add_action('timber/twig/filters', function ($twig) {
    $twig->addFilter(
        new TwigFilter('towebpSrcset', function ($img) {
            $dir = dirname($img->guid);
            $arr = [];
            foreach ($img->sizes as $size) {
                array_push($arr, ImageHelper::img_to_webp($dir.'/'.$size['file']) .' '. $size['width'] .'w');
            }
            return join(', ', $arr);
        })
    );
    return $twig;
});

So I can use it on my twig files like this:
{{ imgObject|towebpSrcset }}

and it will generate the srcset of webp files for the given image object.
I like to put this feature in the Timber core. I would like to hear your opinions.

@HanifBirgani I like where you're going, but interested to see if there's a more generic way of describing the utility? Perhaps if towebp returned an array when sent its argument as an array, one could use ...
img_array | towebp | join(', ')
... would that satisfy your use-case?

Do I understand it right that the function takes the image sizes that were defined through add_image_size()? In that case, I think there should be a way to pass your own images sizes, because oftentimes, the default image sizes don’t match with what you need exactly.

And how would it work in combination with the resize filter?

@gchtr I think we'd need to adapt the resize filter to accept arrays too. That would bring up a bunch of questions around how the arguments should be structured that would require a deep knowhow ...

... not impossible, but already I can feel my head spinning.
There's currently an Image::srcset method. I feel like this is where users should be able to set something like:

... we'd need to do a little monkeying with the Image::srcset argument order, but same patterns we've used elsewhere to migrate to argument arrays.

I think one of the base problems is the way which Timber filters work. Currently, the towebp and resize filters operate on a single URL string, but the output of Image::srcset is not a URL string, because it directly returns the output of wp_get_attachment_image_srcset.
I suggest doing two things to maintain backward compatibility and solve the problems mentioned above:

Modifying the filters (or image helpers) to accept arrays as input too.
Defining a new property for the Image (like Image::srcsetArray) to return image sizes as an array [ (url1, size1), (url2, size2), ... ]

The twig code would be like:

... then in the image helpers (e.g., img_to_webp), we should check if the input is a string or an array. If the input is a simple URL string, the filter will do its primary job like before. On the other hand, if the input is an array, the filter will loop through its items, do the operation on all URLs, then return a concatenated srcset string:
(img_to_webp pseudocode)
IF the input is a string
    convert the image to webp
    RETURN webp url

ELSE IF the input is an array
    DEFINE an empty srcset string
    FOR EACH image size in the input
         convert the image to webp
         APPEND webp url and size to the srcset string
    END FOR
    RETURN srcset string
END IF

The resize filter needs more details to be backward compatible:

(resize helper pseudocode)
IF the input is a string
    resize the image to (width, height)
    RETURN resized url

ELSE IF the input is an array
    IF (width, height) is in the input array
        RETURN input array
    ELSE
        resize the image to (width, height)
        APPEND resized url and size to the input array
    END IF
    create srcset string by joining the array
    RETURN srcset string
END IF

It would be more complicated if the user wants to pass multiple sizes to resize filter, and it's not currently supported by timber.

I think one of the base problems is the way which Timber filters work.

It definitely is.
I want to throw in a couple of links to issues here, because we already thought about different ways to handle image filters and use cases before, and the bigger picture should definitely be considered. (Everything is a bit hidden in a couple of places, sorry for that).

https://github.com/timber/timber/issues/857#issuecomment-364782702 – Definitely read this one
https://github.com/timber/timber/pull/1916
https://github.com/timber/timber/pull/1942

Currently I don’t know what the best way to go here is. But my hunch is still that we should maybe have only one filter for image manipulation that works with an array of input arguments and ditch the rest of the filters, including |webp. In that sense, the thing that @jarednova proposed feels like a good way to solve it on the first look.

But that doesn’t speak against looking at other solutions.

... filter for image manipulation that works with an array of input arguments ...

I agree with you about input arrays completely. What about backward compatibility? Do you wanna drop support for themes that use old filters?
IMO dropping support is a reasonable move regarding the flexibility of input arrays.

@HanifBirgani @gchtr the uses of images has changed a lot since those filters were originally developed. I'm all for taking a fresh crack at best-practices here to make sure we're considering the state of media handling in 2020. However, I feel like this is something we should defer as a team until we have 2.x out the door and then can triage a big change like this against other needs

I think Mozilla responsive images could be a good starting point to decide which features should be implemented in the filter.


Automated cherry pick of #9108: Hotfix/qx guest delete

Cherry pick of #9108 on release/3.6.
#9108: Hotfix/qx guest delete

Codecov Report

Merging #10542 (b4a8a5c) into release/3.6 (b9d30c0) will increase coverage by 2.20%.
The diff coverage is 0.00%.

@@               Coverage Diff                @@
##           release/3.6   #10542       +/-   ##
================================================
+ Coverage         5.86%    8.07%    +2.20%
================================================
  Files              828      107      -721
  Lines           129133    13010   -116123
================================================
- Hits              7577     1050     -6527
+ Misses          120876    11840   -109036
+ Partials           680      120      -560

Flag
Coverage Δ

aFlag
8.07% <0.00%> (+2.20%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/apigateway/handler/auth.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/auth_totp.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/idp.go
1.84% <0.00%> (ø)

pkg/apigateway/handler/misc.go
0.00% <0.00%> (ø)

pkg/apigateway/handler/resource.go
0.00% <0.00%> (ø)

pkg/monitor/alerting/eval_context.go
34.25% <0.00%> (-3.89%)
:arrow_down:

pkg/monitor/alerting/rule.go
1.86% <0.00%> (-1.03%)
:arrow_down:

pkg/multicloud/esxi/manager.go
0.61% <0.00%> (-0.09%)
:arrow_down:

pkg/util/sysutils/kvm.go
2.91% <0.00%> (-0.06%)
:arrow_down:

pkg/multicloud/esxi/host.go
0.77% <0.00%> (-0.01%)
:arrow_down:

... and 619 more

Continue to review full report at Codecov.

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

/lgtm
/approve


fix: scrolling on Windows

Fix bug introduced by #361 .
With this bug mouse scrolling does not work on Windows.

Thank you for your PR @gera2ld  and sorry for the delay, can you please add some tests?

There are already tests for this, maybe they didn't pass when the bug is introduced to master.


Is the new provider api available

I'm having trouble getting the new API : https://github.com/atom-community/autocomplete-plus/wiki/Provider-API to work. Is it deployed? I see the version number to be 1.1.0 https://atom.io/packages/autocomplete-plus

See #186. This will be released in the next 24 hours.

This is now in master. Will be released @ 8:00 am Mountain (US) time tomorrow morning.

@joefitzgerald great job with documenting the new API. Thanks, can't wait to use it!


ffi.DynamicLibrary. Error in open loading vs2012 compiled DLL

I have sought various ways and tried various ways. There is still this problem. The following is a screenshot of my system parameter information and error reporting。
Operating system: Windows
Dart environment: dart SDK version: 2.17.5 (stable) (Tue Jun 21 11:05:10 2022+0200) on "windows_x64"
Compiling DLL environment: vs2012
Error reporting log:
Unhandled exception:
Invalid argument(s): Failed to load dynamic library './full_all/Dll164.dll': error code 126
#0 _open (dart:ffi-patch/ffi_dynamic_library_patch.dart:12:43)
https://github.com/flutter/flutter/pull/1 new DynamicLibrary.open (dart:ffi-patch/ffi_dynamic_library_patch.dart:23:12)
https://github.com/flutter/flutter/pull/2 main (file:///c:/Users/Administrator/Desktop/dart/newuser.dart:27:40)
https://github.com/flutter/flutter/pull/3 _delayEntrypointInvocation. (dart:isolate-patch/isolate_patch.dart:295:32)
https://github.com/flutter/flutter/issues/4 _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:192:12)
c code
`#include <windows.h>
int add(int a, int b){
return a + b;
}
void showBox(){
MessageBox(NULL,"Hello Dart","Title",MB_OK);
}`
dart code
`iimport 'dart:ffi' as ffi;
import 'dart:io' show Platform, Directory;
import 'package:path/path.dart' as path;
void main(List args) {
final _kernel32 = ffi.DynamicLibrary.open(
path.join(Directory.current.path, 'full_all', 'Dll164.dll'));
print(_kernel32);
}
`
Screenshot of operation

The same problem, the following figure is the result I detected with sigcheck

/cc @dcharkes

@xz-zone, error code 126 on Windows often is missing dependencies. See https://stackoverflow.com/a/14362289/8136619.
In order for me to troubleshoot your problem, please provide a repository with a minimal reproduction. Please include the Dart and C source code and the specific reproduction steps (especially how you build the C sources to a dynamic library).
Also, please specify the specific versions of all tools used. (What version of vs2012?)
Do you succeed with using other compilers? For example with clang?

@xz-zone, error code 126 on Windows often is missing dependencies. See https://stackoverflow.com/a/14362289/8136619.
In order for me to troubleshoot your problem, please provide a repository with a minimal reproduction. Please include the Dart and C source code and the specific reproduction steps (especially how you build the C sources to a dynamic library). Also, please specify the specific versions of all tools used. (What version of vs2012?)
Do you succeed with using other compilers? For example with clang?

I use the tool visual studio 2012

@xz-zone did you resolve this issue?  If so, how?

pendencies. See https:/

Use visual studio 2012 and change the compilation mode to x64 bit


The "CompressorTask" task was not found.

I have followed the tutorial in https://www.youtube.com/watch?v=Cj8MHPCubuM
I am getting below error:
I am using VS 2019 in windows 10 - everything is latest as of Feb 2020

C:\Users\I868962\Documents\repos\WebApp1\yui>msbuild compressor.xml
Microsoft (R) Build Engine version 16.4.0+e901037fe for .NET Framework
Copyright (C) Microsoft Corporation. All rights reserved.

Build started 4/3/2020 8:54:55 PM.

Project "C:\Users\I868962\Documents\repos\WebApp1\yui\compressor.xml" on node 1 (default targets).

C:\Users\I868962\Documents\repos\WebApp1\yui\compressor.xml(10,5): error MSB4036: The "CompressorTask" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.) The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with  in the project file, or in the *.tasks files located in the "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin" directory.
Done Building Project "C:\Users\I868962\Documents\repos\WebApp1\yui\compressor.xml" (default targets) -- FAILED.

Build FAILED.

"C:\Users\I868962\Documents\repos\WebApp1\yui\compressor.xml" (default target) (1) ->
(CompressFiles target) ->  C:\Users\I868962\Documents\repos\WebApp1\yui\compressor.xml(10,5): error MSB4036: The "CompressorTask" task was not found. Check the following: 1.) The name of the task in the project file is the same as the name of the task class. 2.)The task class is "public" and implements the Microsoft.Build.Framework.ITask interface. 3.) The task is correctly declared with  in the project file, or in the *.tasks files located in the "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\MSBuild\Current\Bin" directory.

0 Warning(s)

1 Error(s)

Time Elapsed 00:00:00.06

There was a small mistake. the name in usingtask element had an 's' in the end. I corrected it and this time it gives me below error.

C:\Users\I868962\Documents\repos\WebApp1\yui\compressor.xml(9,5): error MSB4062: The "CompressorTask" task could not be loaded from the assembly C:\Users\I868962\Documents\repos\WebApp1\yui..\bin\Yahoo.Yui.Compressor.MsBuild.dll.  Confirm that the  declaration is correct, that the assembly and all its dependencies are available,and that the task contains a public class that implements Microsoft.Build.Framework.ITask.

I even tried msbuild yui\compressor.xml and the result is the same as shown below:

This time put the compressor.xml in the root and removed the relative path (..) in the xml file. Still its the same result as shown in below screen


Can muda be used alone in tauri v1.4?

Can muda be used alone in tauri v1.4?

Unfortunately no, however it is used in latest tauri v2 alpha


The  element violates custom elements specification

According to the HTML Custom Elements specification, every custom element must contain at least one hyphen (-) sign in its name. Here is the relevant part of the grammar under the Core Concepts section.
PotentialCustomElementName ::= [a-z] (PCENChar)* '-' (PCENChar)*

And here is the relevant note describing the reasoning behind it.

They contain a hyphen, used for namespacing and to ensure forward compatibility (since no elements will be added to HTML, SVG, or MathML with hyphen-containing local names in the future).

This restriction is not new, it has been there since its early drafts.

ReDoc has been rewritten to React and using  tag is just backward compatibility now.
Closing this issue.
Feel free to continue the discussion here!
Thanks!


activerecord: Support QueryObject Pattern for AR::Base.scope

ActiveRecord::Base.scope can take an object having call method as 2nd argument "body".  QueryObject pattern is a technique to implement complicated query using a class having call method.
This allows to pass a QueryObject (_Callable) to the scope definition.
refs:

https://github.com/rails/rails/blob/v<IP_ADDRESS>/activerecord/lib/active_record/scoping/named.rb#L171
https://github.com/Selleo/pattern/blob/master/lib/patterns/query.rb
https://takaokouji.github.io/output/query-object/ (Japanese)

/merge


Fix typo delete ‘a’

Fix typo delete ‘a’

/assign @piosz

/assign @directxman12

/lgtm

/assign @brancz

@brancz  Thank you for your prompt, I have revised it.

/assign @kawych

/assign @brancz

/lgtm
/approve


cannot send different FQDN to AD

Version: ANY
OS/Distro: Linux / ANY
Issue/Impact:
Cannot use the Kerberos ticket if the server domain name is different from the Active Directory Domain.
With SSSD (namely sssd_ad), through the tool adcli, it is possible to overwrite the FQDN using the option --host-fqdn=<blahblah.domain.com>, but with PBIS it seems to be impossible (or it's kept secret, as I found nothing in the documentation).

you register server.domain.net on the Active Directory domain domain.com
PBIS, instead of sending to AD the proper FQDN, attempts to change the hostname on your server
you roll back the hostname (because you don't want PBIS to change your hostname)
you cannot login with your kerberos ticket.
you can login only using the password.

please note, that with SSSD_AD this procedure was made technically possible: hence if they do it, I assume you could do it as well.
Output/Error:
Server not found in Kerberos database

Try leaving the hostname they way you want it and using the domainjoin option "--disable hostname"

[root@cent7r ~]# /opt/pbis/bin/domainjoin-cli join --disable hostname bt3.com admin
Joining to AD Domain:   bt3.com
With Computer DNS Name: cent7r.bt1.com
<EMAIL_ADDRESS>password:
SUCCESS
[root@cent7r ~]# /opt/pbis/bin/domainjoin-cli query
Name = cent7r
Domain = BT3.COM
Distinguished Name = CN=CENT7R,CN=Computers,DC=bt3,DC=com
[root@cent7r ~]# cat /etc/hosts
<IP_ADDRESS> cent7r.bt1.com cent7r localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
[root@cent7r ~]# /opt/pbis/bin/klist -e -k /etc/krb5.keytab | head -n 4
Keytab name: WRFILE:/etc/krb5.keytab
KVNO Principal
3<EMAIL_ADDRESS>(aes256-cts-hmac-sha1-96)
[root@cent7r ~]# ssh BT3\admin@localhost
Password:
-sh-4.2$ /opt/pbis/bin/adtool -a lookup-object --dn CN=CENT7R,CN=Computers,DC=bt3,DC=com --attr servicePrincipalName
HOST/cent7r
HOST/cent7r.bt1.com

OMG! I've spent a year to try to guess a solution.
Perhaps you should create a more comprehensive online help. There is not man page, and if I run domainjoin-cli --help I see nothing relevant.... or perhaps I should have read your pdf.
Anyway: THANKS-THANKS-THANKS !!

It is listed under "join options" but I do agree that it does not have any information as to what it does or what are the modules. I'm going to log a task to look at expanding the help/usage options.


Decide and document official supported GCC version

As part of the work from Add Ubuntu 18.04 support to libcxx_tests, we found out that the GCC testing stages from 18.04 fail due to the fact that the default GCC version shipped with Ubuntu 18.04 is GCC 7, and it causes our libcxx tests to fail.
This doesn't happen on Ubuntu 16.04 since the default is GCC 5. To have https://github.com/Microsoft/openenclave/pull/1324 unblocked, I installed the GCC 5 on Ubuntu 18.04 as well.
We should decide what's the official OE supported GCC version and document it.
The CI seems to be stable with GCC 5 (on both 18.04 and 16.04), and this is what we have there installed right now.
CC @andschwa @johnkord @anitagov

@ionutbalutoiu We'll disable the libcxx tests that fail to build with GCC 7.*, and because our standard build works with GCC 7, we'll continue forward with that for this 0.5.0 release. As for supporting a specific version of GCC in the future, this is still to be decided.

This is related to issue #937.

@ionutbalutoiu - Can you also document why the libcxx tests fail to build with GCC 7.*? This can be part of an issue or documented in the libcxx folder. Thanks.

@anitagov
The libcxx test failure with GCC 7.* has been described by @aserdean in the issue https://github.com/Microsoft/openenclave/issues/1559.
I just reopened the issue, and associated the milestone Future to it for further tracking. So far, this is not blocking anything, since we disabled the test (PR https://github.com/Microsoft/openenclave/pull/1560) as a workaround.

Let's move all of our GCC versions to one standard version across the Ubuntu platforms. Is GCC 7 available on Ubuntu 16.04? @ionutbalutoiu

@johnkord
GCC-7 or GCC-8 are not available in the standard Ubuntu 16.04 PPAs, while the default Ubuntu 18.04 PPAs have them. The default 16.04 PPAs offer only GCC-5.
However, we can have GCC-7 / GCC-8 on Ubuntu 16.04 installed via the 3rd party ppa:ubuntu-toolchain-r/test. From what I've read this is an official PPA from the Ubuntu ToolChain team, and it should be safe to use.
So, we can move both platforms builds on either GCC-7 or GCC-8.
Just as a side node: If we choose to use GCC-8, there are a couple of warnings to be ignored from the tests (otherwise they are treated as fatal), see my commit https://github.com/ionutbalutoiu/openenclave/commit/892af1048fc7c31db8688a9f93ab26c824800c4f. I'm willing to submit this change if we choose GCC-8, and they look good to you guys.

@johnkord please follow up as needed to make a decision on this.


port change

You are using the SRS well.
First, thank
rtmp tell us how you can change the default listen port of 1935 think I appreciated.
Version that you are using 1.0r3 release (1.0.30) of http://ossrs.net/ version is in use by installing and raspberry pi2 and "/ usr / local / srs / conf" file in the conf files from 1935 to 1936 the changes I've changed in 1936 does not accept the RTMP streams.
Let me know if this solution going to receive the same IP for multiple streams.

You can change the config file:
listen              1935;


No description when imports block has no comma

This is due to an incomplete and experimental tokenizer I wrote. When I find time I can fix it.


Upload MacOS fixture test logs

Goal
Generates and attaches MacOS test fixture logs to the run step.
Depends on https://github.com/bugsnag/maze-runner/pull/230, and will need to be updated on next MR release.

Closing in favour of #1019


Added filter for order status update hook

Codecov Report

Merging #167 (9274c27) into master (9ef8d48) will increase coverage by 0.03%.
The diff coverage is 100.00%.

:exclamation: Current head 9274c27 differs from pull request most recent head df0d667. Consider uploading reports for the commit df0d667 to get more accurate results

@@             Coverage Diff              @@
##             master     #167      +/-   ##
============================================
+ Coverage     30.59%   30.62%   +0.03%
- Complexity     2505     2506       +1
============================================
  Files            95       95
  Lines          7809     7810       +1
============================================
+ Hits           2389     2392       +3
+ Misses         5420     5418       -2

Impacted Files
Coverage Δ

retailcrm/retailcrm.php
20.75% <100.00%> (+0.32%)
:arrow_up:

Continue to review full report at Codecov.

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


Flutter Project in Android Studio Flamingo

Bug report
Describe the bug
On macOS Venture 13.4.1, Android Studio Flamingo, Flutter 3.10.5, Dart 3.0.5, flutterfire 0.2.7: Unhandled exception when running the flutterfire CLI configure for Android, ios, macos and web. Does not even let me answer Y or N and jumps to error.
Steps to reproduce
On macOS Venture 13.4.1, Android Studio Flamingo, Flutter 3.10.5, Dart 3.0.5, flutterfire 0.2.7: Go through the initial setup steps for a Firebase Flutter project. Run flutterfire configure (for your project) and get the list for android, ios, macos and web and run the command you will get the issue and sometimes it will skip past the Y or N and give the long error that start with, Unhandled exception: followed by a long explanation.
Expected behavior
Normally you answer Yes and get the full registration information in the terminal and can proceed with the next steps of setting up Firebase.
Sample project
This is a complex Flutter project so I am showing the terminal window results.
Bobbys-MBP:firebasenotworkingproject bobbytaylor$ flutterfire configure --project=fir-notworkingwithflutter i Found 4 Firebase projects. Selecting project fir-notworkingwithflutter.                                                                                ✔ Which platforms should your configuration support (use arrow keys & space to select)? · android, ios, macos, web                                          i Firebase android app com.example.firebasenotworkingproject registered.                                                                                i Firebase ios app com.example.firebasenotworkingproject registered.                                                                                i Firebase macos app com.example.firebasenotworkingproject.RunnerTests registered.                                                                          i Firebase web app firebasenotworkingproject (web) registered.                                                                                Unhandled exception: Exception: /Library/Ruby/Site/2.6.0/rubygems/core_ext/kernel_require.rb:88:in require': cannot load such file -- xcodeproj (LoadError)
from /Library/Ruby/Site/2.6.0/rubygems/core_ext/kernel_require.rb:88:in require'         from -e:1:in '
#0      ConfigCommand.run (package:flutterfire_cli/src/commands/config.dart:540:11)

#1      CommandRunner.runCommand (package:args/command_runner.dart:212:13)

#2      main (file:///Users/bobbytaylor/.pub-cache/hosted/pub.dev/flutterfire_cli-0.2.7/bin/flutterfire.dart:57:5)

Bobbys-MBP:firebasenotworkingproject bobbytaylor$
`
Please link to the public repository URL.

Additional context
If you do flutterfire config (your project) and just select android and register and then answer yes - no issue. Same for web. However, macOS and iOS both have the error.

Flutter doctor
Run flutter doctor and paste the output below:
Click To Expand
[✓] Flutter (Channel stable, 3.10.5, on macOS 13.4.1 22F82 darwin-x64, locale en)
    • Flutter version 3.10.5 on channel stable at /Users/bobbytaylor/Flutter/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 796c8ef792 (2 weeks ago), 2023-06-13 15:51:02 -0700
    • Engine revision 45f6e00911
    • Dart version 3.0.5
    • DevTools version 2.23.1

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/bobbytaylor/Library/Android/sdk
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.3.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14E300c
    • CocoaPods version 1.12.1

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2022.2)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b802.4-9586694)

[✓] VS Code (version 1.79.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.66.0

[✓] VS Code (version 1.78.2)
    • VS Code at /Volumes/TOSHIBA EXT/Downloads/Visual Studio Code.app/Contents
    • Flutter extension version 3.66.0

[✓] Connected device (3 available)
    • Android SDK built for x86 (mobile) • emulator-5554 • android-x86    • Android 8.1.0 (API 27) (emulator)
    • macOS (desktop)                    • macos         • darwin-x64     • macOS 13.4.1 22F82 darwin-x64
    • Chrome (web)                       • chrome        • web-javascript • Google Chrome 114.0.5735.198

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Flutter dependencies
Run flutter pub deps -- --style=compact and paste the output below:
Click To Expand
Dart SDK 3.0.5
Flutter SDK 3.10.5
firebasenotworkingproject 1.0.0+1

dependencies:
- cupertino_icons 1.0.5
- firebase_core 2.14.0 [firebase_core_platform_interface firebase_core_web flutter meta]
- flutter 0.0.0 [characters collection js material_color_utilities meta vector_math sky_engine]

dev dependencies:
- flutter_lints 2.0.2 [lints]
- flutter_test 0.0.0 [flutter test_api path fake_async clock stack_trace vector_math async boolean_selector characters collection js matcher material_color_utilities meta source_span stream_channel string_scanner term_glyph]

transitive dependencies:
- async 2.11.0 [collection meta]
- boolean_selector 2.1.1 [source_span string_scanner]
- characters 1.3.0
- clock 1.1.1
- collection 1.17.1
- fake_async 1.3.1 [clock collection]
- firebase_core_platform_interface 4.8.0 [collection flutter flutter_test meta plugin_platform_interface]
- firebase_core_web 2.6.0 [firebase_core_platform_interface flutter flutter_web_plugins js meta]
- flutter_web_plugins 0.0.0 [flutter js characters collection material_color_utilities meta vector_math]
- js 0.6.7 [meta]
- lints 2.1.1
- matcher 0.12.15 [async meta stack_trace term_glyph test_api]
- material_color_utilities 0.2.0
- meta 1.9.1
- path 1.8.3
- plugin_platform_interface 2.1.4 [meta]
- sky_engine 0.0.99
- source_span 1.9.1 [collection path term_glyph]
- stack_trace 1.11.0 [path]
- stream_channel 2.1.1 [async]
- string_scanner 1.2.0 [source_span]
- term_glyph 1.2.1
- test_api 0.5.1 [async boolean_selector collection meta source_span stack_trace stream_channel string_scanner term_glyph matcher]
- vector_math 2.1.4

@AllyTechEngineering
flutterfire configure related issues need to be reported in dedicated repo: https://github.com/invertase/flutterfire_cli/issues
Closing from here.


Update contracts to ligo 1.0.0

DO NOT MERGE
Entrypoint names and order of arguments changed in the output. The entrypoints are easily fixed but order is worse

Updates the sample contract to use LIGO 1.0.0, ~I don't think there's any difference in the output~.
cc @Laucans

Closing as this is outdated.


Check typos in CI

This would nice to have checked, but we'd need a way to exclude expect test output somehow, which I'm not sure is supported: https://github.com/crate-ci/typos
$ typos --exclude '*.csv'
error: `nam` should be `name`
  --> ./guide/expressions.ml:584:40
    |
584 |     │ last_name  ┆ first_name ┆ middle_nam ┆ suffix ┆ … ┆ ballotped ┆ washingto ┆ icpsr_id ┆ wikipedia │
    |                                        ^^^
    |
error: `Dimond` should be `Diamond`
  --> ./guide/expressions.ml:825:59
    |
825 |     │ AK    ┆ Mark Begich      ┆ Thomas Cale    ┆ Anthony Dimond     ┆ M      │
    |                                                           ^^^^^^
    |
error: `Remvoe` should be `Remove`
  --> ./test/panic_test.ml:23:9
   |
23 |      (* Remvoe all digits which may correspond to line/column numbers *)
   |         ^^^^^^
   |

Ehh this seems not worth the effort getting something working on github actions.


RayCast3D.get_collider does not return a CollisionShape3D

Tested versions

Reproducible in: v4.3.stable.steam [77dcf97d8]
and probably everything before that.

System information
Godot v4.3.stable (77dcf97d8) - Windows 10.0.19045 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 2060 SUPER (NVIDIA; <IP_ADDRESS>03) - Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz (8 Threads)
Issue description
The documentation of RayCast3D makes it clear that it is meant to detect collisions with CollisionObject3D:

Class:   RayCast3D
Inherits:   Node3D <   Node <   Object
Inherited by:   BdMousePick
A ray in 3D space, used to find the first CollisionObject3D it intersects.
Description
A raycast represents a ray from its origin to its target_position that finds the closest CollisionObject3D along its path, if it intersects any.

However, the method RayCast3D.get_collider returns an Object, not a CollectionObject3D as one would expect from the documentation.
Casting that Object to CollisionObject3D does not work with constructive solid geometry. Indeed, get_collider can return a CSGShape3D which cannot be cast to CollisionObject3D.
Steps to reproduce

Point a RayCast3D node at a nearby CSGBox3D.
Give the RayCast3D node a target_position that ensures it reaches the box.
Tick use_collision on the CSGBox3D node, under CSGShape3D.
Add this script to the RayCast3D node:

extends RayCast3D
func _physics_process(_delta: float) -> void:
    var hovered_unclear := get_collider()
    var hovered_collision_object_3D := hovered_unclear as CollisionObject3D
    if (hovered_unclear and not hovered_collision_object_3D):
        push_error("TypeError: RayCast3D.get_collider() returned a node that is not a CollisionObject3D")
        assert(false)  # Or place a break-point on the previous line.

See in the debugger that hovered_unclear is a GSGBox3D.

Minimal reproduction project (MRP)
raycast3d-get_collision.zip

Yes, the documentation is wrong (too narrow). In addition to CSG there's also GridMap. Fixes to the documentation are welcome.


WeatherAgent throws "Exception during check. User(#70289704464880) expected, got User(#70289757252520)" exceptions and refuses to run.

I've isolated the source of the "Exception during check. User(#70289704464880) expected, got User(#70289757252520)" exceptions - it's WeatherAgent, and it crashes entirely and will not run.  I'm running HEAD on a fresh checkout, and it's the same if I manually apply the patches mentioned in comments in issue #771 or not.  Here's the stack trace:
Exception during check. User(#70289704464880) expected, got User(#70289757252520): /home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/associations/association.rb:216:in `raise_on_type_mismatch!'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/associations/belongs_to_association.rb:12:in `replace'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/associations/singular_association.rb:17:in `writer'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/associations/builder/association.rb:123:in `user='
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/attribute_assignment.rb:54:in `public_send'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/attribute_assignment.rb:54:in `_assign_attribute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/protected_attributes-1.0.8/lib/active_record/mass_assignment_security/attribute_assignment.rb:67:in `block in assign_attributes'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/protected_attributes-1.0.8/lib/active_record/mass_assignment_security/attribute_assignment.rb:61:in `each'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/protected_attributes-1.0.8/lib/active_record/mass_assignment_security/attribute_assignment.rb:61:in `assign_attributes'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/protected_attributes-1.0.8/lib/active_record/mass_assignment_security/core.rb:8:in `init_attributes'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/core.rb:281:in `initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/inheritance.rb:61:in `new'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/inheritance.rb:61:in `new'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/protected_attributes-1.0.8/lib/active_record/mass_assignment_security/reflection.rb:5:in `build_association'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/protected_attributes-1.0.8/lib/active_record/mass_assignment_security/associations.rb:5:in `build_record'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/protected_attributes-1.0.8/lib/active_record/mass_assignment_security/associations.rb:42:in `block in create_record'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/associations/collection_association.rb:183:in `block in transaction'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `block in transaction'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/transaction.rb:188:in `within_new_transaction'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/connection_adapters/abstract/database_statements.rb:213:in `transaction'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/transactions.rb:220:in `transaction'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activerecord-4.2.1/lib/active_record/associations/collection_association.rb:182:in `transaction'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/protected_attributes-1.0.8/lib/active_record/mass_assignment_security/associations.rb:41:in `create_record'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/protected_attributes-1.0.8/lib/active_record/mass_assignment_security/associations.rb:30:in `create!'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/protected_attributes-1.0.8/lib/active_record/mass_assignment_security/associations.rb:64:in `create!'
/home/drwho/huginn/app/models/agent.rb:108:in `create_event'
/home/drwho/huginn/app/models/agents/weather_agent.rb:179:in `check'
/home/drwho/huginn/app/models/agent.rb:437:in `async_check'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/performable_method.rb:30:in `perform'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:94:in `block in invoke_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:91:in `invoke_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:204:in `block (2 levels) in run'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:91:in `block in timeout'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:101:in `call'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:101:in `timeout'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:204:in `block in run'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:203:in `run'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `block in reserve_and_run_one_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `reserve_and_run_one_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:187:in `block in work_off'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `times'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `work_off'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:150:in `block (4 levels) in start'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:149:in `block (3 levels) in start'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:148:in `block (2 levels) in start'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `loop'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `block in start'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `block (2 levels) in <class:ClearLocks>'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block (2 levels) in add'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block in add'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:146:in `start'
bin/threaded.rb:46:in `block (2 levels) in <top (required)>'
bin/threaded.rb:16:in `safely'
bin/threaded.rb:43:in `block in <top (required)>'

The same thing happens with the TwitterUserAgent (same stacktrace), and RSSAgent (ditto).  If I run them manually (Actions -> Run) they seem to operate normally... most of the time, anyway.
Looking at the stack traces, I think app/models/agent.rb:437:in `async_check' is where the problem might be creeping in.

Is it possible that you have one of the your background workers or the application itself running on different versions of the code? For example a processes did not stop properly and is still running.

It's possible but unlikely.  I was running from a brand-new checkout of cantino/huginn/ yesterday after a reboot of the server.  I don't autostart Huginn.

I got a clean run last night through the scheduler.  I've just done a git pull to merge in the last couple of commits so we'll see what happens.

:crossing fingers:

Let you know tomorrow when that agent fires again.

Nope.  32 failed jobs, all this this error.

Another 8 failed jobs, including one that immediately failed with the same message when I clicked the retry button on the Background Jobs page.  I'm switching to the older version with separate processes to see if it makes a difference.

I'm switching to the older version with separate processes to see if it makes a difference.

When you switch versions, do you also switch the database? If not, do or did you have two different versions running at the same time?

By "switching to the older version" I mean the part of huginn/Procfile with the comment "Old version with separate processes..." instead of the threaded worker.  The separate process worker model instead of the newer multi-threaded model.  Is there something in the database that has to be frobbed to make this work more reliably?
For what it's worth, the threaded worker ran for something like 33 hours before it went into a coma and stopped running.  The separate-process worker ran for about eight and a half hours (I cut over a little after midnight PDT last night) before it hung up and left me with 537 jobs in the queue.
I thought of something this morning waking up (guess I was dreaming about it last night because I was doing some research on this problem) - this seems to happen at least once in a while after an HTTP error, like an endpoint not being available (HTTP error 408), Twitter throwing one of its cute error-420's, or some other error like the following one that WebsiteAgent throws a lot for me (slightly sanitized):
Error when fetching url: Failed: #<Faraday::Response:0x0000000dff7320 @on_complete_callbacks=[], @env=#<Faraday::Env @method=:get @body="{\n  \"success\": false,\n  \"error_type\": \"transaction\",\n  \"error\": \"Cannot read property '_connected' of undefined\"\n}" @url=#<URI::HTTP:0x0000000d3f1080 URL:http://api.example.com:31337/v1/fooble/APIkey/data> @request=#<Faraday::RequestOptions (empty)> @request_headers={"User-Agent"=>"Huginn - https://github.com/cantino/huginn"} @ssl=#<Faraday::SSLOptions verify=true> @response_headers={"Access-Control-Allow-Origin"=>"*", "Access-Control-Allow-Headers"=>"X-Requested-With, Content-Type", "Content-Type"=>"application/json; charset=utf-8", "Content-Length"=>"114", "ETag"=>"W/\"72-a8d5c07e\"", "Date"=>"Mon, 27 Apr 2015 10:32:24 GMT", "Connection"=>"keep-alive"} @status=500>>
/home/drwho/huginn/app/models/agents/website_agent.rb:171:in `check_url'
/home/drwho/huginn/app/models/agents/website_agent.rb:164:in `block in check_urls'
/home/drwho/huginn/app/models/agents/website_agent.rb:163:in `each'
/home/drwho/huginn/app/models/agents/website_agent.rb:163:in `check_urls'
/home/drwho/huginn/app/models/agents/website_agent.rb:157:in `check'
/home/drwho/huginn/app/models/agent.rb:437:in `async_check'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/performable_method.rb:30:in `perform'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:94:in `block in invoke_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:91:in `invoke_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:204:in `block (2 levels) in run'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:91:in `block in timeout'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:101:in `call'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:101:in `timeout'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:204:in `block in run'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:203:in `run'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `block in reserve_and_run_one_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `reserve_and_run_one_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:187:in `block in work_off'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `times'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `work_off'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:150:in `block (4 levels) in start'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:149:in `block (3 levels) in start'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:148:in `block (2 levels) in start'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `loop'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `block in start'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `block (2 levels) in <class:ClearLocks>'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block (2 levels) in add'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block in add'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:146:in `start'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/command.rb:124:in `run'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/command.rb:112:in `block in run_process'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/daemons-1.1.9/lib/daemons/application.rb:255:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/daemons-1.1.9/lib/daemons/application.rb:255:in `block in start_proc'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/daemons-1.1.9/lib/daemons/application.rb:264:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/daemons-1.1.9/lib/daemons/application.rb:264:in `start_proc'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/daemons-1.1.9/lib/daemons/application.rb:296:in `start'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/daemons-1.1.9/lib/daemons/controller.rb:73:in `run'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/daemons-1.1.9/lib/daemons.rb:197:in `block in run_proc'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/daemons-1.1.9/lib/daemons/cmdline.rb:109:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/daemons-1.1.9/lib/daemons/cmdline.rb:109:in `catch_exceptions'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/daemons-1.1.9/lib/daemons.rb:196:in `run_proc'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/command.rb:110:in `run_process'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/command.rb:91:in `block in daemonize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/command.rb:89:in `times'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/command.rb:89:in `daemonize'
script/delayed_job:5:in `<main>'

...what it - just what if - the error was coming from the exception being stored in the database as one class, but the agent was expecting an instance of a different class, and that mismatch caused it to freak out?  I'm totally pulling this out of the gates of horn and ivory here, but how plausibl does this sound?

By "switching to the older version" I mean the part of huginn/Procfile with the comment "Old version with separate processes..." instead of the threaded worker. The separate process worker model instead of the newer multi-threaded model.

Gotcha, I thought you meant a different version of huginn. You do not need to change anything in the database, switching the processes in the Procfile like you described should be enough.

before it hung up and left me with 537 jobs in the queue.

It just hung, or died due to an exception?

the error was coming from the exception being stored in the database as one class, but the agent was expecting an instance of a different class, and that mismatch caused it to freak out?

I don't think that is possible, the event is stored as a JSON blob in the database, afaik we never serialize a object into the database. The initial exception is really odd, I have to double check that we dont serialize objects and follow the stacktrace to see if I can come up with a different explanation, other then a huginn version mismatch between the workers.
@cantino With the installation running in development, DJ started with bundle exec script/delayed_job run and the scheduler with bundle exec rails runner bin/schedule.rb, do you think one of the two could reload a class even if the code did not change? Maybe some git command touching a file.

It appeared to have hung.  Scouring the development.log file around the time it appeared to have done so (based upon the time of the last jobs executed) I didn't find any exceptions or stack traces.
While doing some research on this problem last night, I found a few threads on Stackexchange talking about similar problems, and for some of the solved threads it was due to the user's code expecting an instance of one class but being given a slightly different one instead.  Or maybe there's a bug somewhere in the code that isn't recovering from an exception thrown earlier; I'll continue reading through the code and see if anything jumps out at me.

Can you change your config/environments/development.rb to have config.cache_classes = true? That way we can eliminate code reloading as the cause for the initial issue.

Done, and I've just bounced Huginn.  Let's see what happens.

It's been slightly over 24 hours and after making that change, @dsander, Huginn hasn't hung up, locked up, crashed, gone into a coma, or done anything else weird.

Seems like we need to get you running Huginn in production mode.

@virtadpt Nice!
@cantino I have been thinking about writing an installation guide like gitlab has, but am a bit worried about maintaining another 'official' way to install huginn.

@cantino, I'd like to do that so I can document it for everybody else.  My attempts in doing so have not been fruitful at all and I really don't know what I'm doing wrong.  I'm also thinking that making config.cache_classes = true the default for development mode might be a good idea.
@dsander Huginn isn't nearly as wiggy as Gitlab is to install and maintain.  I mean... geez, looking over that link the first thing I thought was "That would make an interesting install.sh script to write."

We could remove some of the other guides?

I'd like to close this issue.  @dsander, do you want to start a new issue for a potential guide?

Sure, will do once I have a rough sketch.

This is an interesting development - after updating to 8e361f8d594aec7db8b993b700cd3864be68720c 32 hours ago, I've got a queue of 310 background jobs and climbing and I'm not sure what happened.  I'm using the threaded scheduler in development mode, and I have config.cache_classes = true set in config/environments/development.rb.  Judging by when the single failed task was logged, it happened about two hours ago.  After killing all of the Huginn processes, I noticed that bin/threaded.rb didn't die when everything else did (which is unusual in my observation).  I have no idea how long it's going to take to get the queue down but I'm analyzing the log file.  If I find anything I'll post it here.

AnsiEsc (http://vim.sourceforge.net/scripts/script.php?script_id=302) is indeed life-changing.  Check this out (slightly reformatted):
[ActiveJob] [AgentCheckJob] [a72004da-2fe0-4143-9278-33a78256dacc] SQL (1.3ms)
INSERT INTO `agent_logs` (`level`, `message`, `agent_id`, `created_at`, `updated_at`)
VALUES (4, 'Error when fetching url: Failed: #<Faraday::Response:0x00000007af1db8
@on_complete_callbacks=[], @env=#<Faraday::Env @method=:get
@body=\"{\\n  \\\"success\\\": false,\\n  \\\"error_type\\\": \\\"transaction\\\",\\n  \\\"error\\\": \\\"Cannot read property \'_connected\' of undefined\\\"\\n}\"
@url=#<URI::HTTP:0x00000007af6ac0 URL:http://server:port/v1/my/stuff/here>
@request=#<Faraday::RequestOptions (empty)>
@request_headers={\"User-Agent\"=>\"Huginn - https://github.com/cantino/huginn\"}
@ssl=#<Faraday::SSLOptions verify=true>
@response_headers={\"Access-Control-Allow-Origin\"=>\"*\", \"Access-Control-Allow-Headers\"=>\"X-Requested-With, Content-Type\", \"Content-Type\"=>\"application/json; charset=utf-8\", \"Content-Length\"=>\"114\", \"ETag\"=>\"W/\\\"72-a8d5c07e\\\"\", \"Date\"=>\"Sun, 03 May 2015 20:01:02 GMT\", \"Connection\"=>\"keep-alive\"}
@status=500>>
/home/drwho/huginn/app/models/agents/website_agent.rb:171:in `check_url'
/home/drwho/huginn/app/models/agents/website_agent.rb:164:in `block in check_urls'
/home/drwho/huginn/app/models/agents/website_agent.rb:163:in `each'
/home/drwho/huginn/app/models/agents/website_agent.rb:163:in `check_urls'
/home/drwho/huginn/app/models/agents/website_agent.rb:157:in `check'
/home/drwho/huginn/app/jobs/agent_check_job.rb:7:in `perform'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activejob-4.2.1/lib/active_job/execution.rb:32:in `block in perform_now'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:117:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:117:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:555:in `block (2 levels) in compile'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:505:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:505:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:498:in `block (2 levels) in around'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:343:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:343:in `block (2 levels) in simple'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activejob-4.2.1/lib/active_job/logging.rb:23:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activejob-4.2.1/lib/active_job/logging.rb:23:in `block (4 levels) in <module:Logging>'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/notifications.rb:164:in `block in instrument'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/notifications.rb:164:in `instrument'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activejob-4.2.1/lib/active_job/logging.rb:22:in `block (3 levels) in <module:Logging>'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activejob-4.2.1/lib/active_job/logging.rb:43:in `block in tag_logger'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/tagged_logging.rb:68:in `block in tagged'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/tagged_logging.rb:26:in `tagged'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/tagged_logging.rb:68:in`tagged'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activejob-4.2.1/lib/active_job/logging.rb:43:in `tag_logger'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activejob-4.2.1/lib/active_job/logging.rb:19:in `block (2 levels) in <module:Logging>'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:441:in `instance_exec'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:441:in `block in make_lambda'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:342:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:342:in `block in simple'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:497:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:497:in `block in around'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:505:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:505:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:92:in `_run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:776:in `_run_perform_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activesupport-4.2.1/lib/active_support/callbacks.rb:81:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activejob-4.2.1/lib/active_job/execution.rb:31:in `perform_now'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activejob-4.2.1/lib/active_job/execution.rb:21:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/activejob-4.2.1/lib/active_job/queue_adapters/delayed_job_adapter.rb:34:in `perform'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:94:in `block in invoke_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/backend/base.rb:91:in `invoke_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:204:in `block (2 levels) in run'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:91:in `block in timeout'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:101:in `call'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/timeout.rb:101:in `timeout'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:204:in `block in run'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:203:in `run'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `block in reserve_and_run_one_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:280:in `reserve_and_run_one_job'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:187:in `block in work_off'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `times'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:186:in `work_off'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:150:in `block (4 levels) in start'
/home/drwho/.rvm/rubies/ruby-2.1.5/lib/ruby/2.1.0/benchmark.rb:294:in `realtime'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:149:in `block (3 levels) in start'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:148:in `block (2 levels) in start'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `loop'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:147:in `block in start'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/plugins/clear_locks.rb:7:in `block (2 levels) in <class:ClearLocks>'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block (2 levels) in add'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:61:in `block in initialize'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:79:in `block in add'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `call'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:66:in `execute'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/lifecycle.rb:40:in `run_callbacks'
/home/drwho/.rvm/gems/ruby-2.1.5/gems/delayed_job-4.0.6/lib/delayed/worker.rb:146:in `start'
bin/threaded.rb:47:in `block (2 levels) in <top (required)>'
bin/threa', 319, '2015-05-03 20:01:02', '2015-05-03 20:01:02')

Up to 944 queued jobs and nothing's running.  After that exception was thrown, the rest of the log file is full of these:
[ActiveJob]   SQL (0.5ms)  INSERT INTO `delayed_jobs` (`queue`, `handler`, `priority`,
`run_at`, `created_at`, `updated_at`) VALUES ('default', '---
!ruby/object:ActiveJob::QueueAdapters::DelayedJobAdapter::JobWrapper job_data:
job_class: AgentCheckJob  job_id: 7ac20a71-ba58-4e96-8e11-8b26eeb82c51
queue_name: default  arguments:  - 519', 10, '2015-05-05 00:00:59',
'2015-05-05 00:00:59', '2015-05-05 00:00:59')

I don't know if that's relevant or not, but there are so many of them they look like they could be useful.

So, I think I figured out what happened.  The web service I was hitting with WebsiteAgent was broken and throwing a nonstandard error ("error": "Cannot read property '_connected' of undefined").  WebsiteAgent was hanging for its maximum runtime of 1200 seconds.  The agents in question fire every ten minutes so they kept piling up and piling up and piling up... because the agent went into retry mode rather than giving up.
The fix, strangely, was to track down the four agents that were hitting that service and Disable them on their detail pages.  In the hour or so it took to come home, their jobs had been purged from the database.  I'm going to keep them deactivated for the time being.
I'm not sure what approach would be appropriate for a permanent fix.  Not letting WebsiteAgent run for 1200 seconds seems reasonable - 20 minutes to load a single page is more appropriate to a dialup connection than a VM running on a server in a data center somewhere.  Having an option "do not retry" would be useful to have on such Agents but I don't yet know how much would need to change to make that happen.  This also implies that issue #796 would be useful.

You could certainly reduce the maximum delayed_job running time in config/initializers/delayed_job.rb, and / or variables it with an ENV variable set in .env and send a PR.
That's very odd that the website agent would be hanging, though, unless the remote service wasn't closing the connection?

destroy_failed_jobs could also be set to 'true', so if they error out and are marked as failed, they'll be purged from the list of jobs in the queue.
I did some digging, and it's a little more exotic than that.  The web service that my WebsiteAgents were hitting was online and responsive.  However, the web service relies upon three other web services run by other parties.  One of them was unresponsive, and is now considered extremely unreliable.  So, it was trying to hit that one dead service, couldn't, and was throwing a weird error.  It doesn't handle its upstreams going unresponsive well at all, which is the core of the problem.
I disabled the handful of WebsiteAgents that were causing the problem and the queue cleared itself without comment.
I think there's a better way to handle weird stuff like this, but I don't know what it is right now.

Setting DELAYED_JOB_MAX_RUNTIME to 5 has helped significant with this.  I can probably cut it even lower (to 3 minutes, say).

Maybe we need a timeout around all WebsiteAgents?

That might be helpful.  Maybe make the default whatever the value of DELAYED_JOB_MAX_RUNTIME is?

The default of 20 minutes seems like it's way too long.  Do you folks agree?

Yes.  It's kind of excessive for any service, really.

@cantino I agree, 1 minute should be long enough for almost all agent, even if it times out DJ will retry it later if I am not mistaken

See #931.

Are you still seeing this issue @virtadpt?

No, I haven't seen it for many months now.  Feel free to close out.

Great!


Bug/get dba agent schedule sql connect

Fixes #
Get-DbaAgentSchedule was using the oldConnect-SqlServer command. This has been corrected to Connect-SqlInstance
Has been tested on minimum requirements:

[ ]  Powershell 3
[ ]  Windows 7
[ ]  SQL Server 2000

Has been tested on maximum requirements:

[ ]  SQL Server vNext
[x]  Windows 10
[ ]  Azure Database

Tests for tester:

[ ] Working/useful help content, including link to command on dbatools web site
[ ] All examples work as advertised
[ ] Does not contain template content
[ ] Does not contain excessive/unnecessary amounts of comments
[ ] Works remotely
[ ] Works locally
[ ] Works on lower versions or throws error specifying version not supported
[ ] Works with named instances
[ ] Works with clustered instances
[ ] Handles offline/read only databases
[ ] Supports multiple servers (at the command line or piped from Get-SqlRegisteredServerName)
[ ] No un-handled errors which stop the command working with multiple servers

bon, merci! 👍


Fix-78915 Webview not handing CustomEvent

@mjbvz , Here is the fix for #78915.
I could have just changed MouseEvent to CustomEvent here but I thought adding a try catch was a better approach ( Please let me know if you find it otherwise or need some more change)

Thanks!


[INLONG-10940][SDK] Transform SQL support arithmetic functions(Including cot, tanh, cosh, asin, atan and atan2)

Fixes #10940
Motivation
Add six arithmetic function classes: CotFunction, TanhFunction, CoshFunction, AsinFunction, AtanFunction and Atan2Function. Also, add the corresponding unit test codes

Modifications

Verifying this change
(Please pick either of the following options)

[ ] This change is a trivial rework/code cleanup without any test coverage.

[x] This change is already covered by existing tests, such as:
(please describe tests)

[ ] This change added tests and can be verified as follows:
(example:)

Added integration tests for end-to-end deployment with large payloads (10MB)
Extended integration test for recovery after broker failure

Documentation

Does this pull request introduce a new feature? (yes / no)
If yes, how is the feature documented? (not applicable / docs / JavaDocs / not documented)
If a feature is not applicable for documentation, explain why?
If a feature is not documented yet in this PR, please create a follow-up issue for adding the documentation

@MOONSakura0614 if you fix the comments please reply and click the resolve button, thanks.

please fix the conflicting file

please fix the conflicting file

done


My reviews about course

Although it was a good course.
1 My favourite course among this was loop and linear algebra.
2.Mainly it explain everything in detail but some were missing.(mentioned below)
But as one is perfect I found some issues working with it.
1.There was no video explaining how to install or where to work with it.
I used internet help to find this out .I recommend I video about it should be added.
2.No tests-There was only one test and that only with five questions.More tests should be added.

3.Volume in some courses was less.I used earphones for that.
4.In some phases video loading was slow(although it can be my fault also0
Hope you work on my issues and make improvements.
THANKS

Hey ishita272001, please move this feedback to the thread linked here: #22 and see my comments on your Google Code-in task. Thanks!
This issue should be closed once you move your feedback.


add isreference property to PhotoInfo

Referenced files were problematic in Photos 3 and 4 for Mac because 1) Moving the original photos didn't update the file paths in the Photos database, 3) Fixing broken links between such moved files and the Photos Library was fiddly, 3) Deleting referenced photos from the Photos library didn’t delete the originals at external location,  4) iCloud Photo Library didn’t import referenced files. It's got worse in Photos 5 and 6, as explained here.
A tool to find all the broken links in Photos, and locate the corresponding original files on the Mac or in connected locations e.g. external HD, thumb drive, Dropbox etc. might be useful. Would need a test library to see what happens on deleting a referenced photo from (a) Photos (b) external location; see what in ZASSET, ZGENERICALBUM, etc. is updated: Presumably, (a) changes ASSET.ZTRASHEDSTATE to 1, while for (b), flag(s) update only when user tries to access the photos.
Wondering if any such tool already exists, and whether you have looked closely at how Photos handles these up to Mojave and for Catalina / Big Sur. Previously, referenced files were identified by RKMASTER.FILEISREFERENCE (Yes = 1, No = 0); not sure what identifies them in newer version (I guess ZASSET.ZCLOUDLOCALSTATE = 1 includes all non-iCloud files i.e. in Photos library as well as referenced?)
Originally posted by @Rott-Apple in https://github.com/RhetTbull/osxphotos/discussions/319

In Photos 5:
ZGENERICASSET.ZSAVEDASSETTYPE:

3: imported by copying to Photos library
4 : shared iCloud photo
6: imported by iCloud (e.g. from iPhone)
10: referenced file (not copied to Photos library)

In Photos 5:
ZGENERICASSET.ZSAVEDASSETTYPE:

3: imported by copying to Photos library
4 : shared iCloud photo
6: imported by iCloud (e.g. from iPhone)
10: referenced file (not copied to Photos library)

Added in v0.39.20

Added in v0.39.20


Multiple authentications required for okta-awscli - behavior different from regular OKTA UI

In the regular OKTA UI (i.e. regular OKTA browser application) I can switch between apps without re-authentication.
However using the command line tool okta-awscli, I have to re-authenticate for each application (in my operations day to day work I switching applications frequently) so the multiple re-authentications is cumbersome and complicates task automation.
Please can the okta-awscli be updated to work in the same manner as the regular OKTA UI.

This would probably require retaining the session_id returned as part of the Okta auth phase, and saving it disk to validate on subsequent calls.

@jmhale This looks something like what am I facing.
Current flow does not work for me because the AWS application providing SAML token is not enabled to the user I sing in with and I need to click on a special app, sign in again and then I can get the url of AWS app.
So my current flow looks like:

Sign in to Okta (with mfa)
Click on Switch Profile app
Click on AWS app (Here I can get the SAML assertion)

I was hoping that I could modify the code to perform a click in step 2) and then continue with step 3)
Could you please point me the right direction where to start with it or if it's actually possible?
Thank you

@1oglop1 what you're describing is not, strictly, possible. This tool doesn't interact with Okta in the same way that you or I do (via the Web UI). Instead, it uses a series of API calls to get authentication. There is no "app" to "click".
However, it's possible (although I don't know how) that a script could be written to:

Authenticate against the base Okta
Launch the "switch profile" app, and authenticate
Use the SAML token from the "Switch Profile" app to authorize against AWS

@dgapitts @jmhale I have a similar request, but I'd be happy with being able to authenticate multiple accounts in one command, even if I have to re-authenticate every time I call the command.
Example flow:
$ okta-awscli --okta_profiles "profile1,profile2" --profiles "aws_pro1,aws_pro2" -U<EMAIL_ADDRESS>-P aRealPassword
> Multi-factor Authentication required for application.
> Pick a factor:
> ...
$ Selection: 0
> Credentials for aws_pro1 saved to profile1
> Credentials for aws_pro2 saved to profile2


Fix PM + SPNEGO supports

If you enable SPNEGO (cas-server-support-spnego-webflow) and password management (by default),  the password management no longer works.
In the PasswordManagementWebflowConfigurer, the password management webflow is inserted on the success transition of the initializeLoginForm state.
In the SpengoWebflowConfigurer, the transition on success from the initializeLoginForm state is replaced by the Spnego mechanism and the viewLoginForm state is finally "restored".
So if the PM is loaded before the SPNEGO, we have initializeLoginForm -> SPNEGO -> viewLoginForm then initializeLoginForm -> PM -> initializeLoginForm, so the PM is never triggered. While it works the other way: initializeLoginForm -> PM -> initializeLoginForm -> SPNEGO -> viewLoginForm.
This PR forces the SPNEGO webflow configuration to be called before the PM webflow configuration.

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

Excellent. Thanks very much! I appreciate your patience in working this out.


dart:io on Windows cannot access certificates in the machine store

See https://github.com/dart-lang/sdk/blob/29c850db57576489f0f92f40ea6de38f8a7873f8/runtime/bin/security_context_win.cc#L52-L55
This can cause issues for Windows users who have certificates installed at the machine level that would satisfy TLS/SSL needs, even if they do not have them installed in the user store.
If we used CertOpenStore we could also access machine level certificates.
/cc @aam

It would also be useful for debugging if the command line VM took a flag to skip the native platform trusted root certs and only use the compiled-in certs on the platforms where they are compiled in. I'll file a separate issue for that.

I filed https://github.com/dart-lang/sdk/issues/45912