Infinite redirect loop to /Account/Login on Azure Web App

I have just upgraded my ASP.NET Core app to netcoreapp2.0 following both the general guide for migrating from 1.x to 2.0 and the guide for migrating to the new Identity interfaces. After a bit of debugging, I got it to work on my local dev machine with Visual Studio 2017 15.3 and IIS Express.
However, when deploying the app to my Azure Web App instance and navigating to my webpage, I am being caught in an infinite redirect loop. After a short while, my browser stops and tells me this:

My address bar says the following:
https://staging.sensomind.com/Account/LogIn?ReturnUrl=%2FHome%2FError%3FReturnUrl%3D%252FHome%252FError%253FReturnUrl%253D%25252FHome%25252FError%25253FReturnUrl%25253D%2525252FHome%2525252FError%2525253FReturnUrl%2525253D%252525252FHome%252525252FError%252525253FReturnUrl%252525253D%25252525252FHome%25252525252FError%25252525253FReturnUrl%25252525253D%2525252525252FHome%2525252525252FError%2525252525253FReturnUrl%2525252525253D%252525252525252FHome%252525252525252FError%252525252525253FReturnUrl%252525252525253D%25252525252525252FHome%25252525252525252FError%25252525252525253FReturnUrl%25252525252525253D%2525252525252525252FHome%2525252525252525252FError%2525252525252525253FReturnUrl%2525252525252525253D%252525252525252525252FHome%252525252525252525252FError%252525252525252525253FReturnUrl%252525252525252525253D%25252525252525252525252FHome%25252525252525252525252FError%25252525252525252525253FReturnUrl%25252525252525252525253D%2525252525252525252525252FHome%2525252525252525252525252FError%2525252525252525252525253FReturnUrl%2525252525252525252525253D%252525252525252525252525252FHome%252525252525252525252525252FError%252525252525252525252525253FReturnUrl%252525252525252525252525253D%25252525252525252525252525252FHome%25252525252525252525252525252FError%25252525252525252525252525253FReturnUrl%25252525252525252525252525253D%2525252525252525252525252525252FHome%2525252525252525252525252525252FError%2525252525252525252525252525253FReturnUrl%2525252525252525252525252525253D%252525252525252525252525252525252FHome%252525252525252525252525252525252FError%252525252525252525252525252525253FReturnUrl%252525252525252525252525252525253D%25252525252525252525252525252525252FHome%25252525252525252525252525252525252FError%25252525252525252525252525252525253FReturnUrl%25252525252525252525252525252525253D%2525252525252525252525252525252525252F

I am very confused about this, since it works when running on IIS Express locally. I have double-checked that I have followed all of the steps in the migration guide correctly and I believe I have. My web.config does not contain any redirect rules, as you can see:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.webServer>
    <security>
      <requestFiltering>
        <requestLimits maxAllowedContentLength="104857600" />
      </requestFiltering>
    </security>
    <handlers>
      <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
    </handlers>
    <aspNetCore processPath="dotnet" arguments=".\Sensomind.Web.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
  </system.webServer>
</configuration>
<!--ProjectGuid: 618C309E-CB11-4876-BF8C-08B1E1DA7178-->

I do not support any third party login provider. My entire auth system is based on what came out of the box with the Individual User Accounts template when I first created the app (with netcoreapp1.1).
If it is helpful to you, here is the Identity-related stuff I've got in my ConfigureServices method:
services.AddIdentity<ApplicationUser, IdentityRole>(config =>
    {
        config.Password.RequireDigit = false;
        config.Password.RequireLowercase = false;
        config.Password.RequireUppercase = false;
        config.Password.RequireNonAlphanumeric = false;
        config.Password.RequiredLength = 12;
        config.SignIn.RequireConfirmedEmail = false;
    })
    .AddEntityFrameworkStores<ApplicationDbContext>()
    .AddDefaultTokenProviders();
var loginPath = "/Account/Login";
services.ConfigureApplicationCookie(options => options.LoginPath = loginPath);

In the Configure method, I only have this:
app.UseAuthentication();

I hope there is a simple solution to this, as I am eager to get it to work.

That's weird it looks like your error page is requiring you to be logged in?  Do you hvae an [Authorize] on your error page?  /Home/Error?

No, I don't. Everything worked fine under v1.1. Then I did the upgrade and it stills works on my dev machine with IIS Express. However, when deploying to Azure, it doesn't.
Is there any diagnostics info I can extract, which would be helpful to you? Or parts of my code you are interested in?

@HaoK, thanks for trying to help me out. I managed to attach a remote debugger on my site, I realized I was getting this error:

System.InvalidOperationException: No service for type 'Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet' has been registered.

See the stack trace below.
I am confused about this error, as I am indeed including Microsoft.AspNetCore.All, which should contain the latest version of the Application Insights SDK. It says so in the migration guide:

The 2.0 metapackage includes the latest version of Application Insights, so a package downgrade error appears if you're referencing an older version.

How come I am getting this error in my Azure Web App instance but not on my local machine?
I am going to close this issue here, as it clearly has nothing to do with Identity. I will find another GitHub repo to post this issue in.
{System.InvalidOperationException: No service for type 'Microsoft.ApplicationInsights.AspNetCore.JavaScriptSnippet' has been registered.
   at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider provider, Type serviceType)
   at Microsoft.AspNetCore.Mvc.Razor.Internal.RazorPagePropertyActivator.<>c__DisplayClass8_0.<CreateActivateInfo>b__1(ViewContext context)
   at Microsoft.Extensions.Internal.PropertyActivator`1.Activate(Object instance, TContext context)
   at Microsoft.AspNetCore.Mvc.Razor.Internal.RazorPagePropertyActivator.Activate(Object page, ViewContext context)
   at Microsoft.AspNetCore.Mvc.Razor.RazorPageActivator.Activate(IRazorPage page, ViewContext context)
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.<RenderPageCoreAsync>d__16.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.<RenderPageAsync>d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.<RenderLayoutAsync>d__18.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Mvc.Razor.RazorView.<RenderAsync>d__14.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.<ExecuteAsync>d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Mvc.ViewFeatures.ViewExecutor.<ExecuteAsync>d__21.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Mvc.ViewResult.<ExecuteResultAsync>d__26.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeResultAsync>d__19.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextResultFilterAsync>d__24.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResultExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeNextResourceFilter>d__22.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Rethrow(ResourceExecutedContext context)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeFilterPipelineAsync>d__17.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Mvc.Internal.ResourceInvoker.<InvokeAsync>d__15.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Builder.RouterMiddleware.<Invoke>d__4.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Sensomind.Web.Startup.<>c.<<Configure>b__13_0>d.MoveNext() in C:\Projects\VRinno\Sensomind\Cloud\src\Sensomind.Web\Startup.cs:line 216
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Builder.Extensions.MapMiddleware.<Invoke>d__3.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Session.SessionMiddleware.<Invoke>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at Microsoft.AspNetCore.Session.SessionMiddleware.<Invoke>d__9.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Authentication.AuthenticationMiddleware.<Invoke>d__6.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.GetResult()
   at Microsoft.AspNetCore.Diagnostics.ExceptionHandlerMiddleware.<Invoke>d__6.MoveNext()}


Validate Proxies

for my request i got not valide proxy. Would be nice if your api woud filter unvalide proxies
{ipAddress: ".", country: null, source: "coolproxy"}

This has been fixed and will be in the next release. Proxies that are not valid (e.g without a valid IP address) will be filtered out.


Restore the last selected language model from persistent storage.

Fixes #181
I tested it again thoroughly, but maybe you should first test it in the branch to see whether I missed something (again...).

ok, reproduced it, will take a look at it

I think I've fixed it... give me a bit more time to test it

private void onStateLoaded() {

        if (!isInitializationComplete) {
            lastSelectedProvider = DevoxxGenieStateService.getInstance().getSelectedProvider(project);
            lastSelectedLanguageModel = DevoxxGenieStateService.getInstance().getSelectedLanguageModel(project);

            setupUI();
            restoreLastSelectedProvider();
            restoreLastSelectedLanguageModel();
            isInitializationComplete = true;
        }
    }

I did have to add the project related lastSelectedModel otherwise it the 2nd project loads the first project provider & model :)

Fixed and merged.  Can you double check if it works for you with multiple IDEA projects?  #Thanks

Works like a charm :+1:


faster packaging

Hashing 1 GB of files takes too long (an hour?) for a Lambda.
The real culprit is:
https://quilt-t4-staging.quiltdata.com/b/omics-quilt-omicsquiltckaoutput712023778557useast-1r7hdb9111n3i/tree/outputs/8637245/out/analysis_ready_bam/
I can probably exclude that from the set_dir (perhaps manually). But can I include that some other way?

Solved by the new quilt3's s3-style checksums?


Deprecation warning when using import

When using import with esm using morgan, I get the following warning message :
morgan deprecated default format: use combined format node_modules\esm\esm.js:1:277757

This does not occur when using require.
Example : https://repl.it/repls/SeagreenGrippingHexagon
On Morgan v1.9.1.

Thanks for the report. This should only display if you're trying to get the deprecated morgan.default property, though. I'll need to dig in to see what is going on.

import loads default by default. The default property needs to be renamed. There's probably a workaround for this but I can't help.

So it will be renamed eventually, which is why it is deprecated.

Same problem here. Is there anyway to get rid of the distracting 'deprecated' warning without forking and changing the source code?

I haven't yet investigated what changes can be made to this module to fix the deprecation warning for the import syntax, but the warnings can always be suppressed from printing, though node command line switch, event listener, environment variable. You can read more here about how the deprecation system works if that helps at all for the time being: https://www.npmjs.com/package/depd

perhaps remove the deprecation warning until you have time to investigate further?

The deprecation warning was added almost 5 years ago and there was no issue until this issue. Perhaps if this issue was opened closer to when it was added reverting would be considered, but whatever has changed since then isn't this module.

My guess is that people are simply using the 'import' style more now.
The fix is just a comment (see this PR, but of course its your call...

Here is a fix that leaves the deprecation message in place: #207
Note that module.exports.default is still pointing to the default format function. I'm not sure if that might confuse any other tools that parse ES6 exports, but this at least prevents the deprecation warning from being erroneously shown when using esm.

Quick fix is to pass "tiny" instead of dev to morgan.

@josemvcerqueira better to use require instead.

@dougwilson I tried updating my app to use native ES modules now that they have landed in node (since node 13.2.0), but ran into some issues, so need to stick with esm for now. (It seems it will be a while before the ecosystem catches up with native ES modules to make adopting them a little more seamless.) So if you were to release a new major version of morgan that drops the deprecated default format (as you previously mentioned as a possibility), that would still be very helpful in the meantime.

This will do the trick
import * as morgan from 'morgan'

To be clear, this issue is specific to using the esm package and not the import syntax in general.
Testing this  with a basic import of import morgan from 'morgan' in node 12 or 13 does not produce the deprecation notice.

This will do the trick
import * as morgan from 'morgan'

I was hopeful, but turns out this doesn't work 😕

I did some additional research today with the esm module and it looks like the issue is only with the import * syntax, using import morgan from 'morgan' not only did not produce the warning for me, but looking at the import syntax, that seems like the correct method to important this module. Can anyone who is using esm confirm this?

This is enough to cause the warning for me:
test.js:
import morgan from 'morgan'

node -r esm test.js

As discussed here, the issue is that morgan has an export called default that isn't actually the default export.

same problem still!

same problem yeah

same problem so far..

Same thing...

I got this problem. any solutions ?

@craigcosmo It was solved by changing the import statement to require.

yeah I tried that, and its fixed

Hey guys!
When you call morgan just try to do this:
app.use(morgan("dev"));
It worked for me, the "dev" is cause i use "npm run dev" (you can change it on package.json, instead of using "start",  to start the server, hope i could be helpfull :D

Hey guys!
When you call morgan just try to do this:
app.use(morgan("dev"));
It worked for me, the "dev" is cause i use "npm run dev" (you can change it on package.json, instead of using "start",  to start the server, hope i could be helpfull :D

@RMERCADOR98 All that does is change to the formatting option named dev described in the readme, which is intended for development (so overly verbose and not ideal for production).

@RMERCADOR98 All that does is change to the formatting option named dev described in the readme, which is intended for development (so overly verbose and not ideal for production).

In other news, I am using Koa instead of Express in my latest server, so I used koa-morgan, so I'm not getting the warning anymore because the import is now indirect.
Obviously this won't help those who want to use Express or httpServer and so are using morgan directly - for that, the best workaround is still to just use require instead of import, until if/when the next version of morgan is eventually released.

In other news, I am using Koa instead of Express in my latest server, so I used koa-morgan, so I'm not getting the warning anymore because the import is now indirect.
Obviously this won't help those who want to use Express or httpServer and so are using morgan directly - for that, the best workaround is still to just use require instead of import, until if/when the next version of morgan is eventually released.

@mbrowne I can confirm that this prevents the deprecation warning:
const morgan = require('morgan');

... but in typescript, it seems I now lose type information on the file.
The following works, but only if tsconfig has compilerOptions.module = "CommonJS" rather than any of the 'ES...' module options (e.g. es6).
import morgan = require('morgan');

@mbrowne I can confirm that this prevents the deprecation warning:
const morgan = require('morgan');

... but in typescript, it seems I now lose type information on the file.
The following works, but only if tsconfig has compilerOptions.module = "CommonJS" rather than any of the 'ES...' module options (e.g. es6).
import morgan = require('morgan');

app.use(morgan("dev")); this does solve in my case

const morgan = require('morgan')
app.use(morgan('dev'))
solves the issue

The require() workaround does the trick.
I've been a fan of the esm library, but there's now a totally different alternative that's worth considering: the new swc transpiler is so fast that it can easily replace esm (I haven't benchmarked it, but it seems to be just as fast if not faster.) And if you set your SWC target to a recent version of node like node 14 or 16, then it basically won't compile anything other than import/export statements, achieving the same goal (unless you're using very new JS features already supported by SWC but not by node...and that would actually be a good thing because it would allow you to use the latest features that you want without a lengthy compilation step).
This is the config I used in my .swc file:
{
  "env": {
    "targets": {
      "node": "16"
    }
  },
  "module": {
    "type": "commonjs"
  },
  "jsc": {
    "externalHelpers": true
  },
  "sourceMaps": "inline"
}

Make sure to install @swc/helpers as a production dependency if you use "externalHelpers": true like I did.

you could just use const morgan = require("morgan"); instead of using import


React.Component's 'props' cannot be of type $FlowFixMe

This is a:

[x] Bug Report

Which concerns:

[x] babel-plugin-flow-runtime

What is the current behaviour?
Defining the type of props as $FlowFixMe causes an error to be thrown (even in assert mode).

What is the expected behaviour?
No error, and no assertion should be set.

Which package versions are you using?
0.10.0

fixed in 0.11.1


Android client- reading from cache-only only by type of object

Hi,
I wonder if is there any possibility to read all objects from apolloStore of defined type without specify key? We need to have some way to read objects without query. Something like in iOS:
client.store.withinReadTransaction({ transaction -> HeroDetails in
  let data = try transaction.readObject(
    ofType: HeroDetails.self,
    withKey: id
  )

  // Prints "R2-D2"
  print(data.hero?.name)
})

Hi 👋
You can read fragments using ApolloStore.read(). Something like this:
val data = store.read(HeroDetails.Mapper(), CacheKey.from(id), Operation.EMPTY_VARIABLES)

In general, there is no single way to read an object from the cache. Because GraphQL can query different fields and selection sets, use aliases, etc... objects can have different shapes and getting one requires the type information from either a Query or a Fragment.
I believe Fragments should work here. If not, can you share more details about your use case?

Something I just thought about: if you chain caches, make sure to forward the keysLike calls down the cache chain. Maybe even only return the values from the deepest cache. I.e. if you're using a memory cache, it might not know about all the keys that are in the SQL cache.


in_tail pos file compaction doesn't seem to work as expected

Describe the bug
in_tail pos file compaction doesn't seem to work as expected. The expectation is that compaction will remove entries for deleted log files from the pos file, but we are not seeing that happen. We see in the logs that compaction was triggered, but when we look into pos file the entries for deleted log files still exist.
For example, we see that compaction took place via this log:
2021-06-23 21:55:07 +0000 [info]: #0 [in_tail_container_logs] Clean up the pos file

However, when we look at the pos file on the node, it contains entries for logs files that we know no longer exist. For example, we see these lines in the pos file:
/var/log/containers/alex-busybox_default_alex-busybox-0584af93443bad99c0b64bf291190609f5d22557c7be937f36c9af2dde9ce54b.log<PHONE_NUMBER>01e6c3<PHONE_NUMBER>776252
/var/log/containers/alex-busybox_default_alex-busybox-d8180a67753ee1ab99c49d028a1f58676c211f233b74934930aecfeef54e7d0d.log<PHONE_NUMBER>00134f<PHONE_NUMBER>12930f
/var/log/containers/alex-busybox_default_alex-busybox-a01184a2cb8064d7c776488188c1d1bbd5bf57c509ea3024da9dbee7fabc7c38.log<PHONE_NUMBER>0046b0<PHONE_NUMBER>605f76

But these logs do NOT exist on the node anymore as corresponding pods have long been deleted:
# ls -l /var/log/containers/alex-busybox_default_alex-busybox-0584af93443bad99c0b64bf291190609f5d22557c7be937f36c9af2dde9ce54b.log
ls: cannot access '/var/log/containers/alex-busybox_default_alex-busybox-0584af93443bad99c0b64bf291190609f5d22557c7be937f36c9af2dde9ce54b.log': No such file or directory
# ls -l var/log/containers/alex-busybox_default_alex-busybox-d8180a67753ee1ab99c49d028a1f58676c211f233b74934930aecfeef54e7d0d.log
ls: cannot access 'var/log/containers/alex-busybox_default_alex-busybox-d8180a67753ee1ab99c49d028a1f58676c211f233b74934930aecfeef54e7d0d.log': No such file or directory
# ls -l /var/log/containers/alex-busybox_default_alex-busybox-a01184a2cb8064d7c776488188c1d1bbd5bf57c509ea3024da9dbee7fabc7c38.log
ls: cannot access '/var/log/containers/alex-busybox_default_alex-busybox-a01184a2cb8064d7c776488188c1d1bbd5bf57c509ea3024da9dbee7fabc7c38.log': No such file or directory

To Reproduce
tail logs of kubernetes containers with a pos file and compaction setup, while creating/deleting k8s containers.
Expected behavior
The expectation is that compaction will remove entries for deleted log files from the pos file.
Your Environment
Fluentd or td-agent version: fluentd 1.13.0.
Operating system: Ubuntu 20.04.1 LTS
Kernel version: 5.4.0-62-generic
Your Configuration
<source>
  @type tail
  @id in_tail_container_logs
  path /var/log/containers/*.log
  pos_file /var/log/kube-fluentd-operator-fluentd-containers.log.pos
  tag kubernetes.*
  read_from_head true
  read_bytes_limit_per_second 8192
  pos_file_compaction_interval 1h
  <parse>
    @type multiline
    # cri-o
    format1 /^(?<partials>([^\n]+ (stdout|stderr) P [^\n]+\n)*)/
    format2 /(?<time>[^\n]+) (?<stream>stdout|stderr) F (?<log>[^\n]*)/
    # docker
    format3 /|(?<json>{.*})/
    time_format %Y-%m-%dT%H:%M:%S.%N%:z
  </parse>
</source>

Your Error Log
There are no errors in the log, but we do see compaction taking place:
2021-06-23 21:55:07 +0000 [info]: #0 [in_tail_container_logs] Clean up the pos file

I'm checking the implementation.
I'm not sure yet but when a file is rotated while fluentd is down, it might not cared by compaction of fluentd.

I'm not sure yet but when a file is rotated while fluentd is down, it might not cared by compaction of fluentd.

I've confirmed the actual behavior, yes it's true.
When a file is removed while fluentd is down, the file entry in pos file never removed until a file is created with the same name.
conf:
<source>
  @type tail
  path /home/aho/Projects/Fluentd/fluentd/issues/3433/*.log
  pos_file /home/aho/Projects/Fluentd/fluentd/issues/3433/log.pos
  pos_file_compaction_interval 5s
  read_from_head
  refresh_interval 1
  tag foo.bar
  format json
  @label @OUTPUT
</source>

<label @OUTPUT>
  <match **>
    @type stdout
  </match>
</label>

Steps to reproduce
$ echo '{"hoge":"foo"}' > test1.log
$ echo '{"hoge":"bar"}' > test2.log
$ fluentd -c fluent.conf
$ cat log.pos
/home/aho/Projects/Fluentd/fluentd/issues/3433/test1.log<PHONE_NUMBER>00000f<PHONE_NUMBER>06bc64
/home/aho/Projects/Fluentd/fluentd/issues/3433/test2.log<PHONE_NUMBER>00000f<PHONE_NUMBER>06bc65

(kill fluentd)

$ rm test2.log
$ fluentd -c fluent.conf
$ cat log.pos
/home/aho/Projects/Fluentd/fluentd/issues/3433/test1.log<PHONE_NUMBER>00000f<PHONE_NUMBER>06bc64
/home/aho/Projects/Fluentd/fluentd/issues/3433/test2.log<PHONE_NUMBER>00000f<PHONE_NUMBER>06bc65

It works as expected when I remove test2 without stopping fluentd.


springLiveTestImageFix

Issue:
##[error]Failed to request agent. Exception Image MMSUbuntu2004 doesn't exist in pool azsdk-pool-mms-ubuntu-2004-general
,##[error]The remote provider was unable to process the request.

Failed pipeline: https://dev.azure.com/azure-sdk/internal/_build/results?buildId=3606756&view=logs&j=843d2559-ceed-5c30-126c-84f05941cbce

/azp run java - cosmos - tests

/check-enforcer override


styling for text in skill tags fixes #72

 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.johann-su seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@johann-su there is two testifies check-in: a pdf, and an image. They don't belong to the project? Could you please remove them?


Update AbnormalSecurityConn.zip

Required items, please complete
Change(s):
Change in Python Version to 3.11
Reason for Change(s):
-As per requirement
Version Updated:
Python version - 3.11
Testing Completed:
Yes

@v-visodadasi @v-atulyadav when will this PR be merged? Is there anything that Abnormal Security can help with?


CMake cannot find libraries

My configuration: Windows 10 1607; Visual Studio 2017; CMake 3.8.0.
When I use VS-project to build everything is fine (correctly compiles and executes). But when I use CMake (or CMake support in VS) to build this test-program, I get next errors.
D:\dev\cmake-test\build>cmake .. "-DCMAKE_TOOLCHAIN_FILE=D:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake"
-- Building for: Visual Studio 15 2017
-- The C compiler identification is MSVC 19.10.25019.0
-- The CXX compiler identification is MSVC 19.10.25019.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Community/VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Could NOT find SQLITE3 (missing:  SQLITE3_LIBRARY)
SQLite3 not found!
SQLite3 include dir=D:/dev/vcpkg/installed/x86-windows/include
SQLite3 library dir=SQLITE3_LIBRARY-NOTFOUND
-- Configuring done
-- Generating done
-- Build files have been written to: D:/dev/cmake-test/build

D:\dev\cmake-test\build>cmake .. "-DCMAKE_TOOLCHAIN_FILE=D:/dev/vcpkg/scripts/buildsystems/vcpkg.cmake"
-- Could NOT find SQLITE3 (missing:  SQLITE3_LIBRARY)
SQLite3 not found!
SQLite3 include dir=D:/dev/vcpkg/installed/x86-windows/include
SQLite3 library dir=SQLITE3_LIBRARY-NOTFOUND
-- Configuring done
-- Generating done
-- Build files have been written to: D:/dev/cmake-test/build

CMakeLists.txt that I used to build.
cmake_minimum_required(VERSION 3.0)
project(cmake-test)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules")
find_package(sqlite3 REQUIRED)
if (SQLITE3_FOUND)
	include_directories(${SQLITE3_INCLUDE_DIRS})
else()
	message("SQLite3 not found!")
	message("SQLite3 include dir=${SQLITE3_INCLUDE_DIR}")
	message("SQLite3 library dir=${SQLITE3_LIBRARY}")
endif (SQLITE3_FOUND)
add_executable(cmake-test main.cpp)
target_link_libraries (cmake-test ${SQLITE3_LIBRARIES})

List of installed by vcpkg files.
D:\dev\vcpkg\installed>dir /S /B
D:\dev\vcpkg\installed\vcpkg
D:\dev\vcpkg\installed\x86-windows
D:\dev\vcpkg\installed\vcpkg\info
D:\dev\vcpkg\installed\vcpkg\status
D:\dev\vcpkg\installed\vcpkg\updates
D:\dev\vcpkg\installed\vcpkg\info\sqlite3_3.18.0-1_x86-windows.list
D:\dev\vcpkg\installed\x86-windows\bin
D:\dev\vcpkg\installed\x86-windows\debug
D:\dev\vcpkg\installed\x86-windows\include
D:\dev\vcpkg\installed\x86-windows\lib
D:\dev\vcpkg\installed\x86-windows\share
D:\dev\vcpkg\installed\x86-windows\bin\sqlite3.dll
D:\dev\vcpkg\installed\x86-windows\bin\sqlite3.pdb
D:\dev\vcpkg\installed\x86-windows\debug\bin
D:\dev\vcpkg\installed\x86-windows\debug\lib
D:\dev\vcpkg\installed\x86-windows\debug\bin\sqlite3.dll
D:\dev\vcpkg\installed\x86-windows\debug\bin\sqlite3.pdb
D:\dev\vcpkg\installed\x86-windows\debug\lib\sqlite3.lib
D:\dev\vcpkg\installed\x86-windows\include\sqlite3.h
D:\dev\vcpkg\installed\x86-windows\include\sqlite3ext.h
D:\dev\vcpkg\installed\x86-windows\lib\sqlite3.lib
D:\dev\vcpkg\installed\x86-windows\share\sqlite3
D:\dev\vcpkg\installed\x86-windows\share\sqlite3\copyright
D:\dev\vcpkg\installed\x86-windows\share\sqlite3\sqlite3Config-debug.cmake
D:\dev\vcpkg\installed\x86-windows\share\sqlite3\sqlite3Config-release.cmake
D:\dev\vcpkg\installed\x86-windows\share\sqlite3\sqlite3Config.cmake

Hi @LaG1924! Thanks for all the information!
I suspect you have a cmake_modules\Findsqlite3.cmake that is interfering with the find_package() process. For reference, without a cmake_modules\ directory, I get:
-- Building for: Visual Studio 15 2017
-- The C compiler identification is MSVC 19.10.25019.0
-- The CXX compiler identification is MSVC 19.10.25019.0
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe
-- Check for working C compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe
-- Check for working CXX compiler: C:/Program Files (x86)/Microsoft Visual Studio/2017/Enterprise/VC/Tools/MSVC/14.10.25017/bin/HostX86/x86/cl.exe -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
SQLite3 not found!
SQLite3 include dir=
SQLite3 library dir=
-- Configuring done
-- Generating done
-- Build files have been written to: D:/src/cmake-test/build3

This is picks up the D:\dev\vcpkg\installed\x86-windows\share\sqlite3\sqlite3Config.cmake file, which provides a sqlite3 target (but does not provide SQLITE3_LIBRARY or SQLITE3_INCLUDE_DIR).
The following CMakeLists.txt works perfectly for me (it adds the include directory correctly as well!):
cmake_minimum_required(VERSION 3.0)
project(cmake-test)

find_package(sqlite3 REQUIRED)
add_executable(cmake-test main.cpp)
target_link_libraries (cmake-test sqlite3)

If this doesn't fix the issue, you can add --trace to your cmake .. line to see exactly how cmake is searching for Sqlite3.

Thanks for helping! This is working, but I suppose that D:\dev\vcpkg\installed\x86-windows\share\sqlite3\sqlite3Config.cmake is specific for SQLite3, because when I try to compile my real project this compiles without any errors. And I use cmake_modules\FindSFML.cmake and bundled FindZLIB.cmake to find this libraries. So vcpkg is really helping to easily deploy cross platform software!
cmake_minimum_required(VERSION 3.0)
project(MyProject)
set(CMAKE_CXX_STANDARD 14)
set(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake_modules)

if (CMAKE_COMPILER_IS_GNUCXX)
	set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic-errors -w -Werror")
	set (ADDITIONAL_LIBRARIES "pthread")
endif()

#Setup SFML
find_package(SFML 2 COMPONENTS system network graphics window REQUIRED)
include_directories(${SFML_INCLUDE_DIR})
if (NOT SFML_FOUND)
    message(ERROR "SFML not found!")
endif ()

#Setup Zlib
find_package(ZLIB REQUIRED)
include_directories(${ZLIB_INCLUDE_DIR})
if (NOT ZLIB_FOUND)
    message(ERROR "Zlib not found!")
endif ()

set(SOURCE_FILES ~some sources~)

add_executable(MyProject ${SOURCE_FILES})
target_link_libraries(MyProject ${SFML_LIBRARIES} ${ZLIB_LIBRARIES} ${ADDITIONAL_LIBRARIES})

Anyway, I'm think that documentation should be corrected to remove this misunderstanding.


⚠ SceneTime has degraded performance

In e835da7, SceneTime ($ST) experienced degraded performance:

HTTP code: 200
Response time: 27561 ms

Resolved: SceneTime performance has improved in 1ac255e after 5 minutes.


Error while generating the picture

Got the plugin installed, but when trying to generate image getting below error. I've API enabled, can access the docs page in the url.
The server is on a nw machine, and I've set the SD url to the proper link.
INFO:     Will watch for changes in these directories: ['E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server\python_server']
INFO:     Uvicorn running on http://<IP_ADDRESS>:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [10248] using WatchFiles
INFO:     Started server process [13932]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     <IP_ADDRESS>:62709 - "POST /sdapi/v1/interrupt HTTP/1.1" 404 Not Found
txt2ImgHandle:
payload:  {}
INFO:     <IP_ADDRESS>:62709 - "POST /txt2img/ HTTP/1.1" 500 Internal Server Error
ERROR:    Exception in ASGI application
Traceback (most recent call last):
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\uvicorn\protocols\http\httptools_impl.py", line 419, in run_asgi
result = await app(  # type: ignore[func-returns-value]
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\uvicorn\middleware\proxy_headers.py", line 78, in call
return await self.app(scope, receive, send)
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\fastapi\applications.py", line 270, in call
await super().call(scope, receive, send)
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\starlette\applications.py", line 124, in call
await self.middleware_stack(scope, receive, send)
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\starlette\middleware\errors.py", line 184, in call
raise exc
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\starlette\middleware\errors.py", line 162, in call
await self.app(scope, receive, _send)
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\starlette\middleware\exceptions.py", line 79, in call
raise exc
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\starlette\middleware\exceptions.py", line 68, in call
await self.app(scope, receive, sender)
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 21, in call
raise e
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\fastapi\middleware\asyncexitstack.py", line 18, in call
await self.app(scope, receive, send)
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\starlette\routing.py", line 706, in call
await route.handle(scope, receive, send)
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\starlette\routing.py", line 276, in handle
await self.app(scope, receive, send)
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\starlette\routing.py", line 66, in app
response = await func(request)
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\fastapi\routing.py", line 235, in app
raw_response = await run_endpoint_function(
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server_env\lib\site-packages\fastapi\routing.py", line 161, in run_endpoint_function
return await dependant.call(**values)
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server\python_server.\serverMain.py", line 159, in txt2ImgHandle
dir_name,image_paths,metadata = await txt2ImgRequest(payload)
File "E:\Stable-Diffusion-Gits\Auto-Photoshop-StableDiffusion-Plugin\server\python_server.\serverMain.py", line 26, in txt2ImgRequest
if(payload['use_prompt_shortcut']): # use edit prompt
KeyError: 'use_prompt_shortcut'

I've had this error in A1111 since my most recent pull.
I'm fairly certain it's an A1111 problem.
Here's an issue from that repo that has the same error.
https://github.com/AUTOMATIC1111/stable-diffusion-webui/issues/7120#issue-1553351783

Got it. So I figured out why it wasn't working (for me at least) and have a temporary fix.
I'll leave it in a new message so it will alert you on it.
edit- It seems like your stacktrace is different from mine, but perhaps my solution will still work for you.
tl;dr - Enable "Save text information about generation parameters as chunks to png files" in A1111.
In my stacktrace it calls the metadata_to_json.py script and fails once it reaches line 10.
https://github.com/AbdullahAlfaraj/Auto-Photoshop-StableDiffusion-Plugin/blob/ab6cb73e7f74e48e17f1d6dc50c22d2357383251/server/python_server/metadata_to_json.py#L6-L13
And according to ChatGPT, this is what that line is doing.
This line of code is finding the index of the last occurrence of the newline character '\n' in the metadata_str string. The rindex() method is used to find the index of the rightmost occurrence of the specified value in the string, so this line is finding the rightmost occurrence of the newline character in metadata_str. The result is stored in the last_new_line_index variable.
And because there is no metadata to look for that character, it probably returns null, which the other modules aren't a fan of.
I'll poke around and see if I can figure out a permanent fix for those of us that don't want the image generation data saved in the .png. But for now, enable that setting in A1111 and it should work fine for you.

I have a same error

@kindLee-alasikoo I've fixed this in the latest build, you should try installing using the one click plugin.ccx, installer?
https://discord.com/channels/1054937599392891000/1055247602578374728/1072213800654225490


Lepton Modes

Hi,
I have a question about Lepton modes. Is it possible to enable/disable the Radiometry and AGC modes via pylepton?
Thanks
Amin

As it stands, no. Pylepton currently makes no attempts to configure or interrogate the part over i2c, which would be required to enable these different modes. There is nothing stopping it from being able to do i2c configuration, however, so pull requests are welcome!

Thanks for the quick reply.
Regards
Amin


chore: forward port mathlib#18668, 18781, 18783, 18792, 18794

set_theory.cardinal.basic: forward-ports leanprover-community/mathlib#18781, which backports some ad-hoc changes in #3247 in a more principled way
ring_theory.int.basic: these changes were already forward-ported in #3278, but we forgot the SHA.
linear_algebra.dimension: forward-ports leanprover-community/mathlib#18792
linear_algebra.matrix.dot_product: forward-ports leanprover-community/mathlib#18783
linear_algebra.finrank: forward-ports leanprover-community/mathlib#18794 which is itself a backport of #3378, hence no changes to the file

<EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS><EMAIL_ADDRESS>

bors merge


[1Password] ...

Extension – 1Password
Author:

Describe the feature and the current behavior/state.
Current Behavior
Result items are displayed using only the 1Password item name. This creates indistinguishable result that are named the same thing.

Feature Request
Include username field in result values similar to how 1P does.
Years ago 1Password discouraged suffixing item names (ex: Google - personal, Google - work) because they would appear alphabetically in their browser extension results.  Prior to this, results were shown by how recently they were used.

Who will benefit with this feature?
Anyone not using suffixes for the 1Password item names.
Any Other info.

Hello @matbrady, Sorry for took too long to respond. I am currently rewriting the extension utilizing the 1Password CLI 2 and I will address this issue in the new version. Feel free to add any features you'd like to see as well. Thanks.

I believe this is still relevant


stellarium: 0.22.0 -> 0.22.1

Description of changes
ChangeLog: https://github.com/Stellarium/stellarium/releases/tag/v0.22.1

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Still this odd error on darwin: clang-11: error: no such file or directory: '$-DSTELLARIUM_COPYRIGHT="Copyright<PHONE_NUMBER>-1980 Stellarium Developers"'

Result of nixpkgs-review pr 170020 run on x86_64-linux 1

1 package built:

stellarium

Thanks for reminding me that this awesome piece of software exists!


Text area should wrap text

Currently, white-space: nowrap is inherited to text area from text field theme:

Expected outcome:

Add white-space: normal; here: https://github.com/vaadin/vaadin-text-field/blob/next/theme/valo/vaadin-text-area.html#L22
Or should it be pre-wrap?

Blame me for that line. It should be pre-wrap, this is expected and same as in native <textarea>.

Btw, pre-wrap means both: wrapping is enabled, while the linebreaks and whitespace are preserved.

Fixed in vaadin-text-field master.


Zuul Undertow - enable request wrappers

I wanted to fix the issue related to Undertow "eating" any exception thrown by the Zuul filters: https://github.com/spring-cloud/spring-cloud-netflix/issues/524, though this complicates the tests a bit, because still the error statuses are not being correctly propagated, but at least this will allow to pass the original exception through servlet context.

That's some nasty test configuration. So if a user customizes undertow, this isn't applied, correct?

Undertow, by default does not allow request wrappers, I'm guessing that those are essential for Zuul to work, though for some reason the error reveals itself only when an error occurs in forwarding (likely due to some internal Undertow checks).
So without the flag your original error gets eaten and instead new one is being propagated. The problem remains with the status codes, instead of propagating the error status, 200 is always being returned. This is way I had to exclude the Undertow from tests, though it would be easier if maven had compileOnly scope.
I could try to see what is wrong with the status code and till that time keep this open.

This is the first time we're touching a container and I'm a little nervous about it. This would actually make more sense after #579 (splitting zuul, ribbon and feign into separate modules). Then a s-c-n-zuul-undertow module wouldn't be uncalled for.

Makes sense, so I am not going to rush about this.

@spencergibb I'm thinking about making this pull request to spring-boot, so in this way we can avoid making some container specific modules.

sounds good @jmnarloch

This is what happens when I run that with Undertow 1.2.10/1.2.12 without the flag enabled:
com.netflix.zuul.exception.ZuulException: Filter threw Exception
    at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:231)
    at com.netflix.zuul.FilterProcessor.runFilters(FilterProcessor.java:161)
    at com.netflix.zuul.FilterProcessor.postRoute(FilterProcessor.java:92)
    at com.netflix.zuul.ZuulRunner.postRoute(ZuulRunner.java:75)
    at com.netflix.zuul.http.ZuulServlet.postRoute(ZuulServlet.java:102)
    at com.netflix.zuul.http.ZuulServlet.service(ZuulServlet.java:84)
    at org.springframework.web.servlet.mvc.ServletWrappingController.handleRequestInternal(ServletWrappingController.java:158)
    at org.springframework.cloud.netflix.zuul.web.ZuulController.handleRequestInternal(ZuulController.java:43)
    at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:147)
    at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:970)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:861)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:846)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
    at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86)
    at io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)
    at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:172)
    at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
    at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:774)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.IllegalArgumentException: UT010023: Request org.springframework.cloud.netflix.zuul.filters.pre.Servlet30RequestWrapper@a16ed1b was not original or a wrapper
    at io.undertow.servlet.spec.RequestDispatcherImpl.forwardImpl(RequestDispatcherImpl.java:138)
    at io.undertow.servlet.spec.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:108)
    at org.springframework.cloud.netflix.zuul.filters.post.SendErrorFilter.run(SendErrorFilter.java:74)
    at com.netflix.zuul.ZuulFilter.runFilter(ZuulFilter.java:112)
    at com.netflix.zuul.FilterProcessor.processZuulFilter(FilterProcessor.java:197)
    ... 99 common frames omitted

And everything is correct, the Spring Cloud's Servlet30RequestWrapper extends Zuul's HttpServletRequestWrapper which is a custom wrapper and does not extend ServletRequestWrapper.
The two possible solutions would be:

enable the flag for Undertow deployment
or
switch the base class of Servlet30RequestWrapper


Question<EMAIL_ADDRESS>

The /v3/instrument/{instrument}/candles endpoint gives in the response:
(when called with instrument = EUR_USD)
{
  "candles": [
    {
      "complete": true,
      "mid": {
        "c": "1.09946",
        "h": "1.09949",
        "l": "1.09946",
        "o": "1.09949"
      },
      "time": "2016-10-17T15:16:40.000000000Z",
      "volume": 2
    },
  ],
  "granularity": "S5",
  "instrument": "EUR/USD"
}

Personally I would like to see the instrument back in the response as EUR_USD and not as EUR/USD, which is considered to be a displayName .
I've dropped a question / suggestion regarding this at<EMAIL_ADDRESS>I would like to see:
{
  "candles": [
    {
      "complete": true,
      "mid": {
        "c": "1.09946",
        "h": "1.09949",
        "l": "1.09946",
        "o": "1.09949"
      },
      "time": "2016-10-17T15:16:40.000000000Z",
      "volume": 2
    },
  ],
  "granularity": "S5",
  "instrument": "EUR_USD",
  "displayName": "EUR/USD"   <-- optionally
}

At some moment  after asking this question this has been changed to what is suggested


feat: add post_condition feature

percentage_threshold is deprecated, use post_condition instead
Closes https://github.com/infracost/infracost-gh-action/issues/22

Thanks!


Ran go mod tidy

Needed after the dependabot updates.

I'm going to merge this to fix the issue on main.


[#6958] Add IgnoreErrorHandler

Codecov Report

Merging #6959 into master will increase coverage by 0.07%.
The diff coverage is 82.17%.

@@            Coverage Diff             @@
##           master    #6959      +/-   ##
==========================================
+ Coverage   39.36%   39.44%   +0.07%
==========================================
  Files        3208     3221      +13
  Lines       94714    94901     +187
  Branches    11852    11872      +20
==========================================
+ Hits        37286    37431     +145
- Misses      54448    54477      +29
- Partials     2980     2993      +13

Impacted Files
Coverage Δ

...text/errorhandler/ParentClassThrowableMatcher.java
56.25% <56.25%> (ø)

...ler/context/errorhandler/AlwaysMessageMatcher.java
60.00% <60.00%> (ø)

...r/context/errorhandler/ContainsMessageMatcher.java
63.63% <63.63%> (ø)

...ontext/errorhandler/ClassNameThrowableMatcher.java
66.66% <66.66%> (ø)

...ontext/errorhandler/DefaultIgnoreErrorHandler.java
71.42% <71.42%> (ø)

...ler/context/errorhandler/MultipleErrorHandler.java
77.77% <77.77%> (ø)

...filer/context/errorhandler/NestedErrorHandler.java
80.00% <80.00%> (ø)

...nt/profiler/context/recorder/AbstractRecorder.java
34.42% <83.33%> (+2.68%)
:arrow_up:

...rofiler/context/errorhandler/DescriptorParser.java
83.78% <83.78%> (ø)

...point/profiler/context/errorhandler/OptionKey.java
85.71% <85.71%> (ø)

... and 34 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 ad96d37...5ba54d8. Read the comment docs.


Additional runtime permission checks

Let BaseLauncherActivity launch Services to get permissions.
Depends on https://github.com/opendatakit/androidlibrary/pull/30

runtests

don't pull yet

Should be fixed now
This pr depends on https://github.com/opendatakit/services/pull/40


Replace ob_type with Py_TYPE

CPython is phasing out using ob_type directly in favor of Py_TYPE, which is currently a macro but will afaik eventually become a function. Structs with ob_type will become opaque. See https://bugs.python.org/issue39573,  https://github.com/python/cpython/pull/21433 and PEP 620 for more details . pyo3 doesn't use ob_type in too many places: https://github.com/PyO3/pyo3/search?q=ob_type&unscoped_q=ob_type.

Thanks for notifying!


Revise docs for removal of GCE Persistent Disk volume type

Fixes #44359
I'm proposing the following changes

Types of Persistent Volumes
Added GCE Persistent Disk to the section of in-tree PV types supported by older versions.
Minor improvement in wording, to use "not available starting" instead of "not available in"

Allowed Topologies
Modified the example in yaml to be based on a "sample" provisioner instead of kubernetes.io/gce-pd.
Also added some explanation about the allowedTopologies and matchLabelExpressions

Suggestions and feedback are welcome.
Best Regards,
Aditya

I'll tweak the PR title
/retitle Revise docs for removal of GCE Persistent Disk volume type

/sig storage

@kubernetes/sig-storage-pr-reviews does this look right? Please confirm that v1.27 was the last Kubernetes release where you could use gcePersistentDisk volumes with in-tree support.

/lgtm

/assign @natalisucks for approval.

/assign @natalisucks

@kbhawkey I implemented the change you suggested in storage-classes.md
It would be great if you could take a look at the latest commit.

👀

@kbhawkey Thanks for the review. I've implemented the suggested change and pushed a new commit, ready for a review.

There is an issue with my branch, so I will create a new pull request for this issue.

Continued in https://github.com/kubernetes/website/pull/44569


[WIP] Add Store & Forward support for InvoiceRequests

Hey @eordano, the presigned payment requests should not be used for the BIP75 flow. The idea behind presigned payment requests was that a user could pre-populate payment requests to be distributed in their stead. This functionality was added before BIP75 was developed and really should be deprecated in the future in favor of pure BIP75 with trestles/dumb store & forward servers.


New version: Telegram.TelegramDesktop version 4.3.1

Pull request has been automatically created using 🛫 WinGet Releaser.
Microsoft Reviewers: Open in CodeFlow

Hi, why MS is so slow? Since 05/11/22 there is no update in Microsoft Store.


when publicPath is cdn (http://cdn.example.com) ,but outputfile is http:/cdn.example.com

Can you provide an example?

webpack config:
let DEBUG = false
output: {
        // 在debug模式下，__build目录是虚拟的，webpack的dev server存储在内存里

        publicPath: DEBUG ? '/__build/' :'http://7xq22v.com2.z0.glb.qiniucdn.com'
    },

but finally

what's the issue/question?

@yangfeiloveG you need a slash at the end of your url or it will remove the double slash in http. Try http://7xq22v.com2.z0.glb.qiniucdn.com/

@MikaAK Thank you so much! It works!


TLS 1.3 MVP: Upstream TLS 1.3 SignatureAlgorithm identifiers and configuration API

TLS 1.3 uses the signature_algorithms extension to configure the acceptable signature schemes during the TLS 1.3 handshake. In contrast to the TLS 1.2 extension with the same name, 16-bit values are not interpreted as pairs of hash and signature algorithms, though attempts for backwards compatibility are made. Moreover, our corresponding TLS 1.2 configuration API mbedtls_ssl_conf_sig_hashes() does not allow the specification of a list of signature-hash pairs, but instead only a list of hash values, encoded as mbedtls_md_type_t values. Long term, we don't want dependency of Mbed TLS' SSL API on identifiers from the legacy crypto API -- instead, we should ideally rely on IANA identifiers for the SSL API where possible.
Long story short: For the TLS 1.3 (MVP at least), we have decided to not attempt a consolidation of TLS 1.2 and TLS 1.3 signature algorithms extensions, and instead configur the signature_algorithms extension in TLS 1.3 completely independently.
This PR upstreams

The IANA values for TLS 1.3 signature algorithms as MBEDTLS_TLS13_SIG_XXX
The API mbedtls_ssl_conf_sig_algs() for the configuration of supported TLS 1.3 signature algorithms
Command line parameters for ssl_client2 / ssl_server2 mapping to mbedtls_ssl_conf_sig_algs().

The CI has passed from what I see, but somehow GitHub doesn't show it.

@mpg @davidhorstmann-arm When do you think you'll have the bandwidth to review this? This is the first part of the next TLS 1.3 task block #4417, so it would be good to get it done before stacking too many PRs on top of it.

Travis only failed to report completion but actually passed.

@hanno-arm Apologies - I'm currently working on a review, will be done shortly.


Facing stuck issue while installing dlib on Ubuntu 18.04

Platform: ubuntu 18.04, Python 3.6, dlib 19.22.99
I tried to install dlib in Ubuntu to use python API and ran "python3 setup.py" as well as "python3 setup.py install --no DLIB_USE_CUDA"，the program was stuck in step：
[ 92%] Building CXX object CMakeFiles/_dlib_pybind11.dir/src/image2.cpp.o
I tried several time and the results were the same and stuck here. Following is my screen
### ### ### ### ### ### ### ### ### ### ### ### ### ### ###
(tornado_server) root@VM-0-3-ubuntu:/srv/dlib-master# python3 setup.py install --no DLIB_USE_CUDA
/root/.virtualenvs/tornado_server/lib/python3.6/site-packages/setuptools/dist.py:694: UserWarning: Usage of dash-separated 'index-url' will not be supported in future versions. Please use the underscore name 'index_url' instead
% (opt, underscore_opt))
running install
running bdist_egg
running egg_info
writing tools/python/dlib.egg-info/PKG-INFO
writing dependency_links to tools/python/dlib.egg-info/dependency_links.txt
writing top-level names to tools/python/dlib.egg-info/top_level.txt
package init file 'tools/python/dlib/init.py' not found (or not a regular file)
reading manifest file 'tools/python/dlib.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
no previously-included directories found matching 'tools/python/build*'
adding license file 'LICENSE.txt'
writing manifest file 'tools/python/dlib.egg-info/SOURCES.txt'
installing library code to build/bdist.linux-x86_64/egg
running install_lib
running build_py
running build_ext
Building extension for Python 3.6.9 (default, Jan 26 2021, 15:33:00)
Invoking CMake setup: 'cmake /srv/dlib-master/tools/python -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/srv/dlib-master/build/lib.linux-x86_64-3.6 -DPYTHON_EXECUTABLE=/root/.virtualenvs/tornado_server/bin/python3 -DDLIB_USE_CUDA=no -DCMAKE_BUILD_TYPE=Release'
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: /root/.virtualenvs/tornado_server/bin/python3 (found version "3.6.9")
-- Found PythonLibs: /usr/lib/x86_64-linux-gnu/libpython3.6m.so
-- Performing Test HAS_CPP14_FLAG
-- Performing Test HAS_CPP14_FLAG - Success
-- pybind11 v2.2.4
-- Using CMake version: 3.21.0
-- Compiling dlib version: 19.22.99
-- SSE4 instructions can be executed by the host processor.
-- AVX instructions can be executed by the host processor.
-- Enabling AVX instructions
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Looking for pthread_create in pthreads
-- Looking for pthread_create in pthreads - not found
-- Looking for pthread_create in pthread
-- Looking for pthread_create in pthread - found
-- Found Threads: TRUE
-- Could NOT find X11 (missing: X11_X11_INCLUDE_PATH X11_X11_LIB)

*** DLIB GUI SUPPORT DISABLED BECAUSE X11 DEVELOPMENT LIBRARIES NOT FOUND ***
*** Make sure libx11-dev is installed if you want GUI support.            ***
*** On Ubuntu run: sudo apt-get install libx11-dev                        ***

-- Searching for BLAS and LAPACK
-- Searching for BLAS and LAPACK
-- Found PkgConfig: /usr/bin/pkg-config (found version "0.29.1")
-- Checking for module 'cblas'
--   No package 'cblas' found
-- Checking for module 'lapack'
--   No package 'lapack' found
-- Looking for cblas_ddot
-- Looking for cblas_ddot - not found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of void*
-- Check size of void* - done

*** No BLAS library found so using dlib's built in BLAS.  However, if you ***
*** install an optimized BLAS such as OpenBLAS or the Intel MKL your code ***
*** will run faster.  On Ubuntu you can install OpenBLAS by executing:    ***
***    sudo apt-get install libopenblas-dev liblapack-dev                 ***
*** Or you can easily install OpenBLAS from source by downloading the     ***
*** source tar file from http://www.openblas.net, extracting it, and      ***
*** running:                                                              ***
***    make; sudo make install                                            ***

-- C++11 activated.

Maybe you are running out of RAM and hitting swap a lot, making the build take a super long time.  I can't say.

[ 72%] Building CXX object CMakeFiles/_dlib_pybind11.dir/src/vector.cpp.o
STUCK HERE. HELP ANYONE

It might take several minutes to build the python bindings, give it time.

it was going almost slowly but continously but it is stuck now for more than 20-25mins. should i wait? @arrufat

Maybe you're running out of RAM? That's why it's so slow.

I have 4gb ram only in my laptop, so , maybe that might be an issue.
@arrufat


Options are not being applied

Hello !
I just saw that you moved the config to a Lua setup call, however I have some options that are not being applied.
My Lua config:
		use({
			"rose-pine/neovim",
			as = "rose-pine",
			config = function()
				require("rose-pine").setup({
                    dark_variant = 'moon',
                    bold_vert_split = true,
                    disable_float_background = true,
                    disable_background = true,
                    dim_nc_background = true
                })
				vim.cmd([[ colorscheme rose-pine ]])
			end,
		})

I think that all options are not applied except the dark_variant option.
Could you take a look ?

hmm, i'm unable to reproduce on my end – would you mind deleting ~/.local/share/nvim/site/pack/packer/start/rose-pine and running :PackerSync again? i had to do a force push yesterday and sometimes that creates issues when updating

Still the issue: you can take a look at the background of nvim-cmp, or open a telescope prompt. They seem to still have the backgrounds

It seems to still have the issues, but now I got this: Random black appears on some locations:

is that your cursorline?

It is my cursor line on insert mode

that may be a modes.nvim issue, i know we use a blend there most likely using Normal guibg which when background is disabled would cause this to be black
if you want to follow #70 the best solution would probably be to eventually override Normal guibg to whatever colour you want so it has a value to pull from

Right,
However I still face the issue of options not being applied.
What would you need to reproduce the issue, or have insights ?

could you provide screenshots of what's not being applied? for example, are you attempting to use a transparent background but neovim has a background set still? or are italics visible even though disable_italics = true? i've tested every setting on latest nvim nightly (although nvim version shouldn't be relevant)

My bad, it seems that dim_nc_background was the culprit. I don't know why I used that ! I recommend adding some explanation in README of what the options are supposed to do, nevertheless.
I'm closing this issue, as it seems to be resolved !
However, I'm still concerned about disabling hl for modes.nvim insert mode (Your previous comment was a little bit obscure to me, about changing guibg for Normal hl). But maybe this is only a workaround for a proper support in https://github.com/mvllow/modes.nvim/issues/11

i'll try to better document what i meant in regards to modes.nvim as well as the other options 😌


Criteo dataset availability

Is there another source for the criteo data by day?
The links at http://azuremlsampleexperiments.blob.core.windows.net/criteo/day_0.gz seem unavailable.

Using https://labs.criteo.com/2013/12/download-terabyte-click-logs-2/, I ran:
curl -O http://azuremlsampleexperiments.blob.core.windows.net/criteo/day_{seq -s ‘,’ 0 1}.gz
which resulted in:
[1/2]: http://azuremlsampleexperiments.blob.core.windows.net/criteo/day_0‘.gz --> day_0‘.gz
--_curl_--http://azuremlsampleexperiments.blob.core.windows.net/criteo/day_0‘.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0curl: (6) Could not resolve host: azuremlsampleexperiments.blob.core.windows.net

Looks like this issue was brought up with nvidia as well: https://github.com/NVIDIA/DeepLearningExamples/issues/1098
Will see if there's a way to contact criteo about this.

@s4ayub have you had any luck?  do you have contacts at criteo?

@rllin we've contacted criteo from our end but no response as of yet. Will update you on this task when we hear back.

Hello everyone, we are on it!
We'll keep you updated about this :)

thanks @victor-paltz !  any sense of timeline?

ASAP, I will tell you when I have a precise info

So, we hopefully should have a solution by the end of the week

Any work from the folks at Criteo about this? I too ran into this problem yesterday.

Work is still ongoing but it shouldn't be long now, sorry for the inconvenience

@victor-paltz any update on when the link will be up?


Remove lumber rewards and requirements from quests and adjust accordingly

Some quests reward lumber, and some require researching a lumber upgrade.
Since lumber is now removed, these features need to be adjusted accordingly.

As discussed on Discord, we're going to start keeping Issues open until they're merged into dev or main. I'll create a Github Project momentarily so you still have a good way of tracking your work in progress.


Rails3

I changed the VanityRecord class to be an abstract class, to fix the error "Table 'vanity_test.vanity_records' doesn't exist".
I also merged in someone else's changes to fix deprecation warnings from rails 3.2.1.

+1 to merge this in

Help, still got the problem listed above so completely unable to use Vanity in our production application that's been using vanity for 6+ months

I've seen this before when the adapter in the database.yml was misconfigured. ActiveRecord derives the class name for the database adapter from there.

@langalex thanks for the tip, but I'm really not sure my database.yml has any problems, it's configured very simply.
development:
  adapter: postgresql
  database: my_db_dev
  host: localhost
  pool: 5
  timeout: 5000

test: &test
  adapter: postgresql
  database: my_db_test
  host: localhost
  pool: 5
  timeout: 5000
  min_messages: WARNING

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

staging:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

cucumber: &cucumber
  <<: *test

Note that production and staging settings come from environment variables so these are just placeholders.  Either way, the errors I was receiving were in development mode.
If I've missed something I'd love some help, thanks.

@freedomsoft Thanks, I have fixed the problem here: f5f4eda78a10ca9f1fe19657f8693b436f625926. I see you also updated the has_many associations, but I'm not seeing any problems with those, were they causing problems for you?

@mattheworiordan Can you see if the problem you are having is reproducible with an up-to-date copy of master? If it is please open a new issue, Thanks.

@dougcole Voila, well done, that works perfectly.  Thank you very much


fix bugs regarding compilation error

solves #92 and #93 and #96

This is great, maybe we can make it floating, somewhat like the toolbar is, but on bottom? 😄

@NickSeagull yeah, floating works, too, I guess :grin:


[CW-22032] fix(core): 更新 otaScript 修正 doge、btc 簽不過問題

as title

Task linked: CW-22032 [P0] transfer BTC taproot 卡片回傳 6a0a error


Refactor Home Page and App Component Structure for Improved Readability and Maintainability

This pull request includes several refactors aimed at improving the readability, maintainability, and organization of the codebase, particularly focusing on the Home page and App component. Below are the key changes:

Extract useMobileVConsole hook for vConsole initialization

Extracted the vConsole initialization logic into a custom hook useMobileVConsole for better readability and reusability.
Updated App component to use the new useMobileVConsole hook.
Simplified the conditional check within the hook.
No functional changes; code organization improvement.

Extract ConfigProvider configuration object

Extracted the ConfigProvider configuration object into a separate constant configProviderProps for improved readability and maintainability.
Simplified the JSX structure of the App component.

Extract main content logic to MainContent component in home page

Moved the main content rendering logic from the Home component to a new MainContent component.
Replaced the inline main content logic with the new MainContent component in the Home component.

Extract header and body sections into separate components in home page

Created a new Header component to encapsulate the header logic from the Home component.
Created a new Body component to encapsulate the main content rendering logic.
Updated the Home component to use the new Header and Body components.

Remove unnecessary fixed width from container class in home page styles

Removed the width: 100vw; property from the .container class in index.module.scss as it is redundant.

These refactors improve the overall structure of the code, making it easier to understand, maintain, and extend in the future. No functional changes were made; all modifications are purely organizational.

Hi @joye61 ,
I've executed a hard reset to your latest commit using git rebase --hard, and then added a simple console.log('hello world'); to the code.  It seems that the issue might still be related to the existing codebase. Could you please take a look?
Thank you for your assistance!
Best regards,
Curator

Nice work 👍


Is it supported to slide instead of flip and rerender and replace the ?

Is it supported to slide instead of flip and rerender and replace the  when I click it.

Slide animation isn't an option at this point. Thanks.
🍻


Generate and review validation reports: Nuxeo UCI SCA (repository #16)

Step 2: Generate reports

[x] Generate validation reports (run validate_by_mapper DAG): https://7a8067cb-3b99-477e-a883-7e311175a9b4.c3.us-west-2.airflow.amazonaws.com/dags/validate_by_mapper_type/grid?dag_run_id=manual__2024-01-19T19%3A52%3A33%2B00%3A00
[ ] Add a comment (in this issue) to the output URLs
[ ] Download the validation reports locally; prepend the collection registry number to the filename
[ ] Upload validation reports to the Rikolti Data Validation folder

Step 3: Review reports

[ ] Review sample collections validation reports; leave notes in the spreadsheet
[ ] Quickly (and not very deeply) scan through other validation reports (to identify if any new metadata fields surface)
[ ] Synthesize notes at the mapper level
[ ] Share an update (and surface any anomalies) during a weekly check-in (Mondays at 3:00pm)

Step 4: Have data validation issues? Address & resolve validation issues (synthesized mapper-level):

[ ] Create a new issue (“Validation results: Rikolti mapper name“) and report/request fixes & investigations. Add to current sprint.
[ ] Add a comment to link to the new “validation results” issue.
[ ] Add a “blocked/paused” label to this issue. Include a status note in this issue title (e,g., HOLD for fixes; HOLD for code review; etc.)
[ ] Move this issue back to the “To Do” pile.
[ ] Reset tasks listed in steps 2-3 above; re-generate & re-review (repeat steps 2-3 above, as needed.)

Step 5: Have acceptable validation reports?

[ ] Move the valid (accepted) reports to the “VALID” folder in google drive.

[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/25586/vernacular_metadata_2024-01-19T19:52:48/mapped_metadata_2024-01-19T19:54:03/validation_2024-01-19T19:54:20.csv
[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#25586/vernacular_metadata_2024-01-19T19:52:48/mapped_metadata_2024-01-19T19:54:03/data/
[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/26147/vernacular_metadata_2024-01-19T19:52:49/mapped_metadata_2024-01-19T19:54:04/validation_2024-01-19T19:54:24.csv
[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#26147/vernacular_metadata_2024-01-19T19:52:49/mapped_metadata_2024-01-19T19:54:04/data/
[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/27549/vernacular_metadata_2024-01-19T19:53:00/mapped_metadata_2024-01-19T19:54:10/validation_2024-01-19T19:54:24.csv
[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#27549/vernacular_metadata_2024-01-19T19:53:00/mapped_metadata_2024-01-19T19:54:10/data/
[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/27552/vernacular_metadata_2024-01-19T19:53:02/mapped_metadata_2024-01-19T19:54:11/validation_2024-01-19T19:54:25.csv
[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#27552/vernacular_metadata_2024-01-19T19:53:02/mapped_metadata_2024-01-19T19:54:11/data/
[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/22/vernacular_metadata_2024-01-19T19:53:03/mapped_metadata_2024-01-19T19:54:11/validation_2024-01-19T19:54:28.csv
[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#22/vernacular_metadata_2024-01-19T19:53:03/mapped_metadata_2024-01-19T19:54:11/data/
[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/28/vernacular_metadata_2024-01-19T19:53:42/mapped_metadata_2024-01-19T19:54:13/validation_2024-01-19T19:54:29.csv
[2024-01-19, 19:54:29 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#28/vernacular_metadata_2024-01-19T19:53:42/mapped_metadata_2024-01-19T19:54:13/data/

New reports ready for re-review:
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/25586/vernacular_metadata_2024-01-31T00:55:28/mapped_metadata_2024-01-31T00:56:48/validation_2024-01-31T00:57:04.csv
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#25586/vernacular_metadata_2024-01-31T00:55:28/mapped_metadata_2024-01-31T00:56:48/data/
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/26147/vernacular_metadata_2024-01-31T00:55:29/mapped_metadata_2024-01-31T00:56:48/validation_2024-01-31T00:57:08.csv
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#26147/vernacular_metadata_2024-01-31T00:55:29/mapped_metadata_2024-01-31T00:56:48/data/
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/27549/vernacular_metadata_2024-01-31T00:55:42/mapped_metadata_2024-01-31T00:56:55/validation_2024-01-31T00:57:09.csv
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#27549/vernacular_metadata_2024-01-31T00:55:42/mapped_metadata_2024-01-31T00:56:55/data/
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/27552/vernacular_metadata_2024-01-31T00:55:44/mapped_metadata_2024-01-31T00:56:56/validation_2024-01-31T00:57:09.csv
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#27552/vernacular_metadata_2024-01-31T00:55:44/mapped_metadata_2024-01-31T00:56:56/data/
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/22/vernacular_metadata_2024-01-31T00:55:44/mapped_metadata_2024-01-31T00:56:56/validation_2024-01-31T00:57:12.csv
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#22/vernacular_metadata_2024-01-31T00:55:44/mapped_metadata_2024-01-31T00:56:56/data/
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Download validation report at: https://rikolti-data.s3.amazonaws.com/28/vernacular_metadata_2024-01-31T00:56:25/mapped_metadata_2024-01-31T00:56:58/validation_2024-01-31T00:57:13.csv
[2024-01-31, 00:57:14 UTC] {{logging_mixin.py:150}} INFO - Review collection data at: https://rikolti-data.s3.us-west-2.amazonaws.com/index.html#28/vernacular_metadata_2024-01-31T00:56:25/mapped_metadata_2024-01-31T00:56:58/data/

Accepted on 2024-02-05!


Create user folder for Globus workflow on initial save, whether user has logged into Globus before or not

For those who have not logged into a Stanford Globus account before, making this change will eliminate the need for that user to save the item, log into Globus, then return to H2 and notify us that they have completed that step. So, the user journey for this feature would be the same for all users.
We recently learned from the people at Globus (U. Chicago) that it is possible via the API to create the shared folder and later have the correct permissions assigned automatically once the user has logged into Globus. These are the details they provided to us on how to do this:
— Permissions can be set for a user who has not logged into Globus before
— The API call to get the identity UUID, Auth get_identities call is used. The provision=True option ensures that identity is created, as unclaimed. Globus SDK documentation: https://globus-sdk-python.readthedocs.io/en/stable/services/auth.html#globus_sdk.AuthClient.get_identities
See also #3021, #3022 and #3049.
See designs at https://projects.invisionapp.com/share/YQ132HXFX2GR#/screens/472346509_Globus_Auto_Account.

Now that we understand that there is UUID autoprovisioned for any @stanford.edu username looked up via the identities API, whether or not that person has used Globus before, we are streamlining the process as @akkornel suggested. We'll create the folder in the guest collection and assign the appropriate permissions to that UUID, regardless of user status.
Question for @akkornel about the suggestion above to send all users through an OAuth flow. Our app does not currently send users through a Globus OAuth flow, since we simply setting up a directory within a guest collection and giving them permissions to access it. Users are required to log into our web application using their Stanford account, so we already have their stanford.edu email (and they've previously created their Globus account and gone through the T&C process there). I can see how we can help new users by directing them to https://app.globus.com to go through the login process there. But what is the purpose for sending existing users through OAuth and reviewing the identity_set_detail info?

Hi @lwrubel, this ticket certainly had me thinking for a while!  Now I understand your flow a bit better, and I think you'll be fine, but you might want to do a sanity check to see if users are also logging into Globus via means you might not expect.
A Stanford user might appear in Globus with any one of three usernames:
• If the Stanford user logs in to Globus through Stanford Login, they'll appear with the Globus Identity username<EMAIL_ADDRESS>• If the Stanford user logs in to Globus by clicking on the "Sign In with Google" button, they'll appear with the Globus identity username sunetid<EMAIL_ADDRESS> This will fail with folks who have a Base SUNetID, as Base SUNetIDs do not allow Google login.
• If the Stanford user logs in to Globus by clicking on the "Sign in with ORCID iD" button, they'll appear with the Globus Identity username<EMAIL_ADDRESS> What's more, they'll appear this way even if, when prompted by ORCID to log in, they log in via Stanford Login.
When a user hits the Globus Login page for the first time, the "Sign In with Google" and "Sign in with ORCID iD" buttons are pretty eye-catching, so there's a chance that a user will do their first log in via that path, and get a Globus Identity username that they don't expect.
So, even after you've told the user to log in to Globus for the first time, you might want to do a check to see if they ended up logging in to Globus using Stanford Login.  You can do this by calling the "Get Identity" API, but setting provision=False.  If you see that the<EMAIL_ADDRESS>identity doesn't exist, and you know the user has logged in to Globus before, then you know they logged in through some other identity provider (either Google, ORCID, or another institution).  In that case, you might want to prompt them to log back in to Globus, and then link their Globus Identities.

But what is the purpose for sending existing users through OAuth and reviewing the identity_set_detail info?

Sending users through a Globus OAuth, and reviewing the resulting identity_set_detail, would let you know for sure that they have a Globus Identity set up for their<EMAIL_ADDRESS>Globus Identity username.  I was thinking "Well, if you need to get the user to log in to Globus anyway, you could send them through an OAuth."  It would give you confirmation that the user made it through the first-time Globus Login, it would confirm how they logged in, and it would let you know if they have any linked Identities (just in case that info might be useful).
I hope this information helps!  Let me know if there's anything I can do to clarify, or provide additional information.

Belated thanks for this information, @akkornel. I had to spend some time thinking about it too. :)
We try our best to steer people to log in with their Stanford credentials, but I see how it's tempting to click those other options. We don't always know if the person is a previous Globus user with non-Stanford credentials. I didn't know about the provision=False option so that's helpful to know how to check a username first, without triggering autoprovisioning.
In the current setup, we look up user by stanford.edu username and set up a share for them with access given to that identity. The problem you're pointing out would arise when the user clicks on the link to the share we set up and then creates an account incorrectly via Google/ORCID and gets a permission denied message.
The link their Globus Identities instructions you provided would be helpful info to include in the instructions, @amyehodge if not already there. That would be one way to resolve the issue if a user went down the wrong set-up route and then had to set up their stanford.edu account and link it to the other one, in order to get access.
As we get more experience with how people are using Globus for deposit, this info is all helpful for determining how we might add in a check. Thanks for walking through this!


What is an API?

This is the discussion.

Some relevant content already created:

What Is an API-First Company?
Why Should You Be an API-First Company?
How Do You Become an API-First Company?


SyntaxError: Missing parentheses

SyntaxError: Missing parentheses in call to 'print'. Did you mean print(...)?

I am trying to walk through all chapters and resolve errors.

Hi @SEM-DEV! Thanks for your contribution. However, everything in this repository are for Python 2.7 (where this print syntax was valid). If you want to update it to Python 3, I would suggest you fork the repo and create a Python 3 version.

Hi @SEM-DEV! Thanks for your contribution. However, everything in this repository is for Python 2.7 (where this print syntax was valid). If you want to update it to Python 3, I would suggest you fork the repo and create a Python 3 version.

I forked the repository and I am working to update all chapters.
May you tell me how to cancel this request?


Stability issue

Describe the bug
MCP Servers have been very unstable for me, both for "official" servers such as the MCP Filesystem server or ones I've built myself. What is happening is sometimes Claude reports having disconnected from the server, but there isn't additional information about why in the logs. I've used the debugging tool which connects and works with the servers without problems, so I'm unclear what the problem might be.
To Reproduce
Steps to reproduce the behavior:

The behavior is random, although I would say about 75% of the time the server unexpectedly disconnects on startup.

Expected behavior
A clear and concise description of what you expected to happen.
Logs
If applicable, add logs to help explain your problem.
The only entry in the log for the filesystem tool is:
command not found: /Users/dennisonbertram/ClaudeDesktop
Again, sometimes the server connects. So I'm unsure what this log means.
The mcp.log shows the server connecting then disconnecting.
2024-12-20T22:10:19.010Z [info] Connected to MCP server filesystem!
2024-12-22T18:18:18.670Z [info] Attempting to connect to MCP server code-runner...
2024-12-22T18:18:18.674Z [info] Attempting to connect to MCP server filesystem...
2024-12-22T18:18:18.691Z [info] Connected to MCP server filesystem!
2024-12-22T18:18:18.698Z [info] Connected to MCP server code-runner!
2024-12-22T18:18:20.297Z [info] MCP server code-runner disconnected. For troubleshooting guidance, please visit our [debugging documentation](http$
2024-12-22T18:18:20.363Z [info] MCP server filesystem disconnected. For troubleshooting guidance, please visit our [debugging documentation](https$
2024-12-22T18:25:22.622Z [info] Attempting to connect to MCP server code-runner...
2024-12-22T18:25:22.625Z [info] Attempting to connect to MCP server filesystem...
2024-12-22T18:25:22.634Z [info] Connected to MCP server code-runner!
2024-12-22T18:25:22.637Z [info] Connected to MCP server filesystem!
2024-12-22T18:25:22.928Z [info] MCP server code-runner disconnected. For troubleshooting guidance, please visit our [debugging documentation](http$
2024-12-22T18:25:23.217Z [info] MCP server filesystem disconnected. For troubleshooting guidance, please visit our [debugging documentation](https$
2024-12-23T02:58:27.179Z [info] Attempting to connect to MCP server node-runner...
2024-12-23T02:58:27.186Z [info] Attempting to connect to MCP server filesystem...
2024-12-23T02:58:27.265Z [info] Connected to MCP server node-runner!
2024-12-23T02:58:27.270Z [info] Connected to MCP server filesystem!
2024-12-23T02:58:29.469Z [info] MCP server filesystem disconnected. For troubleshooting guidance, please visit our [debugging documentation](https$
2024-12-23T02:58:29.879Z [info] MCP server node-runner disconnected. For troubleshooting guidance, please visit our [debugging documentation](http$
2024-12-23T02:58:53.168Z [info] Attempting to connect to MCP server node-runner...
2024-12-23T02:58:53.173Z [info] Attempting to connect to MCP server filesystem...
2024-12-23T02:58:53.181Z [info] Connected to MCP server node-runner!
2024-12-23T02:58:53.184Z [info] Connected to MCP server filesystem!
2024-12-23T02:58:53.518Z [info] MCP server node-runner disconnected. For troubleshooting guidance, please visit our [debugging documentation](http$
2024-12-23T02:58:54.394Z [info] MCP server filesystem disconnected. For troubleshooting guidance, please visit our [debugging documentation](https$
2024-12-23T03:01:18.193Z [info] Attempting to connect to MCP server node-runner...
2024-12-23T03:01:18.198Z [info] Attempting to connect to MCP server filesystem...
2024-12-23T03:01:18.217Z [info] Connected to MCP server node-runner!
2024-12-23T03:01:18.220Z [info] Connected to MCP server filesystem!

same problem


Allow user to set --wait-interval

cf #1603, some customers run multiple copies of pg:backups concurrently. I've used the same option name as in other pg:* commands. /cc @uhoh-itsmaciek

lgtm


 IF YOU DO NOT FOLLOW THE FORMAT OR MAKE A GENERIC TOKEN REQUEST YOUR ISSUE WILL BE DELETED WITHOUT COMMENT
YOUR JUSTLIST MUST FOLLOW THE JSON SPECIFICATION
https://github.com/justswaporg/justlists/example.justlists.ts
Checklist

[x] I understand that this is not the place to request a token listing.
[x] I have tested that my JustList is compatible by pasting the URL into the add a list UI at justswap.org.
[x] I understand that filing an issue or adding liquidity does not guarantee addition to the justlists website.

Please provide the following information for your token.
JustList URL must be HTTPS.
JustList URL: http://communityinu.org/
JustList Name: Community Inu
Link to the official homepage of the JustList manager: https://github.com/justswaporg/justlists/issues/new?assignees=&labels=add-justlist&template=add-a-justlist.md&title=Add+JustList%3A+{JustList+name}

Sorry, your issue will be closed as you did not submit your information in the correct format.


wstring (almost) all the things

As Doug Rogers points out in Issue #3304, it is customary for Windows
applications to use wstring extensively for Unicode support. But it's
especially critical for unicode filenames, because unlike Unix-like
OS's where fopen() and similar functions support UTF-8, on Windows
those functions are strictly ASCII, and Windows users are used to
calling _wfopen() and other nonstandard functions that expect
filenames to be std::wstring if they want to support Unicode.
This patch:

More clearly documents through all of our classes when parameters that
represent filenames or searchpaths are assumed to support UTF-8.

Augments ImageInput, ImageOutput, and ImageBuf so that their methods
that take file names or path lists have additional flavors that take
wstring (always implemented as an inline shim that translates the
UTF-16 wstring to a std::string with UTF-8 encoding to pass on to the
usual method).

Augments ImageCache and TextureSystem in just a couple places, the
functions where a filename is turned into a handle. All the many
other functions that take ustring for function names were left alone,
because they are called very frequently and are performance-sensitive,
so we don't want any translation from wstring to string happening on
every call.

We do not attempt to add wstring-based versions of functions that take
strings for other purposes -- that is, that are not intended to
represent filenames.
Fixes #3304

Is this approximately what you had in mind, @DougRogers ?

Yes.  This is exactly wheat I had in mind.  Thank you.


Define how we can scope which stores can provide references using matching labels

This is being tracked by 974.


Add a Google Kokoro CI build

Similar to grpc-java

Hi @songy23, are you actively working on this part? I am considering adding interops for GAE which requires Kokoro build. If you are working on that I can just focus on the source code part of interop.

@HailongWen sorry I'm not working on this currently since I'm working on the documentation stuff. Feel free to take this issue if this is blocking you :)

Kokoro is already enabled on master branch. This issue can be closed now.


Support single tenant app and user assigned managed id for user and author bots

Azure Bot Service have been supporting sigle tenant app and user assigned managed id from Nov 2021.
https://docs.microsoft.com/en-us/azure/bot-service/bot-service-quickstart-registration?view=azure-bot-service-4.0&tabs=userassigned
Do you have any plan to support single-tenant app and user assienged managed id on Company Communicator?
I guess that multi tenant app is typical blocker to install production environment. Because some companies doesn't allow multitenant app on AAD.

Hi @runceel ,
Thanks for your suggestion. We will review the request internally and post that will add it to backlog items for future releases. As of now we don't have the support and also we won't be able to provide any ETA for this.


Include end event in documentation

Just opening a pull request to update the documentation for a feature that was added by PR #1. Hopefully this helps other users find this feature without having to dig into old conversations. :)

Done. Thanks for the contribution!