don't work in mobile env

It's working well in the browser, but don't work in the mobile(use cordova, both ios and android).

Hi! Thanks for letting me know. Can you describe some more details about the error itself. Some steps to reproduce / simple example / screenshot would also be useful.

@barlowluo Can you please double check if it's still an issue with the latest release?

It actually works in cordova platform. Not sure what issue @luowei-D got, but I have my meteor project running on ios-platform and I can see the latex formula rendered properly.

@tonystevens Yeah, same situation here. I think this issue was probably solved in the meantime.
@luowei-D Please re-open if you think it's still broken.


Updated README with example usage of new cost computing fn

Can see what README changes look like here: https://github.com/mturk24/yolopandas/tree/add-token-estimation-per-query

Thanks for this. Can you update the import statement?
btw, utils.query_helpers was released in yolopandas==0.0.6.

Just fixed with new commits thank you! And awesome :)


Logging

Discussion required for further implementation of ROSBags

The system appears to be "baked into" ROS, and so I think the only required things to get bagging working is to implement a way to bag topics.
We could bag topics as they're created in the codebase or we could do it in a single file if we feel the need.

I believe there is no further action required at this time.

Add docs/standards for our logging in this ticket

Added viewer in GUI; skipping comprehensive logging standards for this semester.


Request - Combine Export functions into one

Is your feature request related to a problem? Please describe.
Describe the solution you'd like
Just one function: Export-CMHealthCheck or Export-CMHealthReport, etc.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
-Parameter = ReportType (HTML, WORD)

Combined as Export-CMHealthReport in 1.0.8


How to configure the pulse circle

I noticed that pulse circle starts from the largest radius and moves inside. How can I change the src to start it from 0 radius and move outwards when the marker loads?
Thanks

Just add opacity:0 at the .leaflet-pulsing-icon:after in L.icon.Pulse.css
.leaflet-pulsing-icon:after {
content: "";
border-radius: 50%;
height: 300%;
width: 300%;
position: absolute;
margin: -100% 0 0 -150%;
opacity:0;
}
it begans invisible and start its animation à min size


Allow hiding of the type selection field when updating a resource

So this PR adds an option to the PolymorphicField hideTypeWhenUpdating(). I found the user experience to be confusing when you can change the Type once a resource has been created. This will allow hiding of the type select when editing a resource.
P.s. I have not included any compiled JS here but am happy to push that in if required.

Hi @m2de, thanks for the PR! It is a nice addition to the package.
If you want, you may push the compiled JS and mention the new method in the README. Otherwise I'll do it myself somewhere in the next few days.

Thanks @michielkempen, will do that now.

All done. Thanks for jumping on these @michielkempen , much appreciated.


Research the problem space of non-connectable nodes

Task
We'd like to condense our knowledge about unreachable nodes in the DHT and to see how other projects deal with the problem (IPFS, Sia, etc)
Background:

https://swarmresear.ch/t/dealing-with-nat/33
https://hackmd.io/cJgRc-VZQDqheMWVyNgNmw
https://hackmd.io/rULdQ4ocRTiB-FMC6OfIYQ

Closing this as the problem should be alleviated with the changes in #2565


added coingamewinner.java file

ATTENTION 🚨🚨🚨
Don’t Forget To Follow Me On Github , and Add Your Name In _contributor name.txt_ if not found your name in _contributor name.txt_ it should be Labelled as SPAM.
STAR 🌟 this REPO for future HacktoberFest.


package_info_plus is not used by the package

package_info_plus is not used by the package and is stopping the newer version of the package_info_plus being used in projects

@kodejack Thanks for raising the issue. We have removed unnecessary package_info_plus and released new version 2.0.2
Please update the version and use the latest one.

Thanks for the swift response and fix.


Add networking settings to the setup UI

Add to the pillar the old settings. This migration will only be executed
on existing installations (as the schema.rb defines the up to date version and
this last migration will be excluded)

with hr

without hr

I think that just the spacing itself already creates a sense of division. What do you think, @kiall? /cc @ereslibre

Fixed rubocop unexpected rubocop complaints (new error class too long after adding two comments for disabling/enabling rubocop complexity checks...)... 😭

@kiall

Good to go?

Minor improvement on Show/Hide button for the settings.

Will push the changes.

@ereslibre Just pushed my changes. Could you squash it for me, please? Thanks! 😄

Squashed and rebased, ready to go.


[TAB] not inserting tab character when using "Indent using Spaces"

VSCode Version: 1.14.1
OS Version: Windows 10

Steps to Reproduce:

Open new file (plain text), type helloTABworld

Expected: Tab is inserted, text is
hello	world

Actual:  Spaces (4) are inserted, not tabs, text is
hello   world

Changing indentation from space to tabs yields expected behavior.

Reproduces without extensions: Yes
Edit: Markdown

@kbakk can you check your personal setting or workspace setting to see if there is any overriden value for editor.insertSpaces?

@rebornix For me, editor.insertSpaces is not overriden in settings.json, and I don't have workspace settings (using a new window).
I do see in Default Settings however, "editor.insertSpaces": true. Changing to false does result in expected behavior (tab character is inserted). A little strange default behavior I think, but being able to override this works for me.

There are 3 settings that configure the editor:
// The number of spaces a tab is equal to. This setting is overriden based on the file contents when `editor.detectIndentation` is on.
  "editor.tabSize": 4,

  // Insert spaces when pressing Tab. This setting is overriden based on the file contents when `editor.detectIndentation` is on.
  "editor.insertSpaces": true,

  // When opening a file, `editor.tabSize` and `editor.insertSpaces` will be detected based on the file contents.
  "editor.detectIndentation": true,

Based on those 3 settings, when a file is opened, an indentation is chosen for the file. The current indentation settings are reflected in the status bar of the editor:
e.g.

or

Pressing Enter or Tab will respect what the current indentation configuration is, as presented in the status bar.


K8s edges fix

To check configure all elements for example by:
k8s:
  probes:
    # empty

Now create the hello-node landscape using:
kubectl run hello-minikube --image=k8s.gcr.io/echoserver:1.10 --port=8080

Now check that UI is ok (all elements are tied to cluster or indirectly to namespace).

rerun functional-tests-backend-orientdb

rerun scale-tests


Lm233

https://reactjs.org/docs/hooks-faq.html#is-there-something-like-instance-variables

https://stackoverflow.com/questions/53981593/react-hooks-and-setinterval

I got it resolved using ref
 let intervalRef = useRef(0);
// other code
const cycle1 = () => {
    console.log('clear interval');
    if(intervalRef.current > 0){
      clearInterval(intervalRef.current);
      intervalRef.current = 0;
    } else {
      const id = window.setInterval(()=> {
        setIndex(index=>normalize(index+1));
        console.log('click ', index)
      },2000);
      intervalRef.current = id;
    }
  }

@LM233 I would change the title of this MR


superagent as peerDep

Looking into mocking strategies and https://github.com/A/superagent-mocker looks good. If we use something like this sdktor should have superagent as peerDep so it can be versioned independently

Not sure about this one. I'm in favour of drop-in dependencies in general. I think superagent should be an implementation detail of sdktor.
I'm 100% in favour of adding mocking capabilities though but I rather do this as first class capability in sdktor rather than exposing the library internals. We can always use nock to intercept requests in a nodejs enviroment from the callers side without making changes to sdktor.

Following the sdktor interface I was thinking of adding a mock() method alongside at() which would mock response from there on:
import sdktor from 'sdktor';

const mock = sdktor('/api').mock({
  // just an example, not sure about this
  get: {
    '/container/json': myListMock,
    'container/:id/json': myItemMock,
  },
  post: {
    'container/:id/start': {},
  }
});
const sdk = mock.at('/containers');
const list = sdk.get('/json');
const inspect = sdk.get('/:id/json');
const start = sdk.post('/:id/start');

sdk.get('/json')({ all: true })

We would then hook it up into nock/superagent-mocker internally (somehow).

cc @rogeliog


Create precompiled wheels for sncosmo in pypi

Currently we are uploading the sncosmo source to pypi, and it has to be built whenever it is downloaded. It would be better to produce compiled wheels like most other open source packages do. The compilation would need to happen in some CI tool, so this would be good to add when we get the GitHub Actions CI up and running.

Fixed with #309 in v2.6.0


feat: add dynamic import polyfill for development

Description
native ESM dynamic import support is required For development, but not For production. This feels weird, and it’s hard to debug on browsers that don’t support ESM dynamic import (such as Edge 18).So this PR provide a polyfill for browsers that don’t support ESM dynamic import.
Additional context

What is the purpose of this pull request?

[ ] Bug fix
[x] New Feature
[x] Documentation update
[ ] Other

Before submitting the PR, please make sure you do the following

[x] Read the Contributing Guidelines.
[x] Read the Pull Request Guidelines and follow the Commit Convention.
[x] Check that there isn't already a PR that solves the problem the same way to avoid creating a duplicate.
[ ] Provide a description in this PR that addresses what the PR is solving, or reference the issue that it solves (e.g. fixes #123).
[ ] Ideally, include relevant tests that fail without this PR but pass with it.

https://github.com/vitejs/vite/blob/main/packages/vite/src/node/plugins/dynamicImportPolyfill.ts#L87-L132
seems that there is a polyfill already in serverside, just not being used in clientside for development, and those code will be refactor ASAP.🤔

https://github.com/J3n5en/vite-plugin-dynamic-import-polyfill
A publish a plugin package to deal with this problem. so close this PR. thx.

@J3n5en You may consider add it to https://github.com/vitejs/awesome-vite

https://github.com/J3n5en/vite-plugin-dynamic-import-polyfill
A publish a plugin package to deal with this problem. so close this PR. thx.

Good Job!


Azure requires LocalDB

While following the steps in the getting started doc, the web platform installed complaints that Azure requires LocalDB.
It should be added that when installing Visual Studio 2015 the following steps should be followed
Go to Programs and Features
2. Select Visual Studio
3. Select Change -> Modify
4. Check Microsoft SQL Server Data Tool and Click Update
Hope this helps!

@wbuchwalter I think you fix this thing, right ?

With #107 we updated the code so that if deployed on Azure or if there's a connection string in config.json it will use that database connection instead of trying LocalDB. @avallesalas can you check if this fixes your issue? Just make sure that, on Azure for the website, the DefaultConnectionString value for config.json is populated with your Azure SQL DB connection string, or that your web app has a DefaultConnectionString db conneciton app setting with the connection string


Bot does not write location-username.json to Web directory

Expected Behavior
location-username.json in web directory
Actual Behavior
file not found which causes web page to not work
Steps to Reproduce
start bot
start webserver
observe directory contents and webserver console
Other Information
OS: Windows 10
Git Commit: Newest as of 12:25 AM EST July 26, 2016 (Master)

so, it does create the file?

It does not create the file but once the file is there it will write to it.

I couldn't recreate this, but I don't have a windows computer atm to test.

This system will be replaced anyway, so using the workaround is encouraged.


route is calling twice

Hi friends, i think there is a issu in src/app/LoggedInOutlet.ts.
The redirect is calling twice . We need to remove the "return" statement.
We need just call super.
   super.activate(instruction);

before
activate(instruction: ComponentInstruction) {     var url = this.parentRouter.lastNavigationAttempt;     if (!this.publicRoutes[url] && !localStorage.getItem('jwt')) {       // todo: redirect to Login, may be there a better way?       this.parentRouter.navigateByUrl('/login');     }     return super.activate(instruction);   }
after
activate(instruction: ComponentInstruction) {     var url = this.parentRouter.lastNavigationAttempt;     if (!this.publicRoutes[url] && !localStorage.getItem('jwt')) {       // todo: redirect to Login, may be there a better way?       this.parentRouter.navigateByUrl('/login');     } **     super.activate(instruction);**   }


Fix incorrect RPM build settings

Update 'mesos-init-wrapper' execute permission.

@jpeach can you take a look?


[Sharding] Rename DataCommitment.length field to samples_count and fix degree_proof validation

Rename DataCommitment.length field to the less ambiguous samples_count
Fix  process_shard_header() degree_proof validation statement: polynomial degree should be less than points_count not samples_count

Rebased this PR on latest dev branch (sharding builder<>proposer separation PR was merged and resulted in merge conflict). Also fixed some remaining commitment.length references.


Hotkeys not working when opening notes in a new window

Hello, I noticed the keyboard hotkeys buttons don't work when I open the note in a new Obsidian window.
I'm using i3 and have arch as my OS.

I'm using Wayland on Fedora and I am able to use the CTRL+P hot-key to bring up the obsidian command pop-up window.
Maybe it's a window manager thing or something else?

For my case, some hotkeys are works like CMD + .(dot). But, others like CMD + D are not working. I use MacBook Pro 14.1.2.


Installing Blurr Breaks Kaggle Notebook Saving

Installing blurr in a Kaggle notebook breaks saving the notebook due incompatible nbconvert requirements. Kaggle requires nbconvert-6.1.0, but blurr installs nbconvert-5.6.1.
This appears to be due to blurr requiring nbverbose as a install requirement. A possible fix on blurr's end could be moving nbverbose to dev_requirements until nbdev has it's dependencies updated.
The dependency tree, from pipdeptree:
- ohmeow-blurr==0.1.0 [requires: nbverbose>=0.0.1]
   - nbverbose==0.0.9 [requires: nbdev<2.0.0]
      - nbdev==1.1.23 [requires: nbconvert<6]

OK let me take a look, I'll try to get a new release out in a bit.
On Thu, Nov 18, 2021, 8:59 AM Benjamin Warner @.***>
wrote:

Installing blurr in a Kaggle notebook breaks saving the notebook due incompatible
nbconvert requirements
https://www.kaggle.com/product-feedback/284575#1587164. Kaggle requires
nbconvert-6.1.0, but blurr installs nbconvert-5.6.1.
This appears to be due to blurr requiring nbverbose as a install
requirement
https://github.com/ohmeow/blurr/blob/5175f13202cb714f1b4fe3309fbbd8afcb039059/settings.ini#L18.
A possible fix on blurr's end could be moving nbverbose to dev_requirements
until nbdev has it's dependencies updated.
The dependency tree, from pipdeptree
https://github.com/naiquevin/pipdeptree:

ohmeow-blurr==0.1.0 [requires: nbverbose>=0.0.1]

nbverbose==0.0.9 [requires: nbdev<2.0.0]

nbdev==1.1.23 [requires: nbconvert<6]

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/ohmeow/blurr/issues/57, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAADNMHGYQN4KBPO5YWEXELUMUWIBANCNFSM5IKDRMWQ
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.

Ok just release new version ... 0.1.2
Give it a go and lmk if it works with kaggle, and if so, feel free to close this issue out.

Works fine on kaggle now. Thanks.

Good deal!  Lmk how your project goes (and if you get a notebook up, I'd love to see it)

@ohmeow you probably need to update the github workflow to install a dev editable install pip install -qe .[dev] for nbdev_test_nbs to work


Protect from non-existent or bad implementations of navigator

This was an issue for my usage as the package is imported in a node context, and this navigator check is done at the top level of this package, rather than after rendering the grid. So window is undefined at the point that it is included initially.
This fixes the issue I created here: https://github.com/STRML/react-grid-layout/issues/1056

Note: Labeler failure due to https://github.com/TimonVS/pr-labeler-action/issues/25

LGTM, thanks.


Add search Algolia

https://twitter.com/pixelastic/status/651788306963910656
Apparently i'm already using Travis so this seems doable

Implemented through fc39453


github CI after pip install, can not find file in zdata

see
https://github.com/marrlab/DomainLab/actions/runs/7226270128/job/19691469393?pr=690

maybe this commit can fix it:
9d61f4e
trick is to test api file before setup instlalation

@agisga , any idea?


AVPlayer Cannot Decode Error When After Making Several ABMediaView Instances

After using a few ABMediaView instances, they all break until restarting the app. This is easily reproducible. Create a new ABMediaView instance and present it, wait for it to load and begin playing, then present another instance. After a dozen or so of these instances, they will all fail with the error:
AVPlayer Error Error Domain=AVFoundationErrorDomain Code=-11839 "Cannot Decode" UserInfo={NSLocalizedDescription=Cannot Decode, NSUnderlyingError=0x1d4e4b490 {Error Domain=NSOSStatusErrorDomain Code=-12913 "(null)"}, NSLocalizedRecoverySuggestion=Stop any other actions that decode media and try again., NSLocalizedFailureReason=The decoder required for this media is busy.}

This Stackoverflow post explains the issue as being related to the reuse of AVFoundation resources:

There is a limit on the number of concurrent video players that AVFoundation will allow. It is due to the limitations of iOS hardware. The limit for current devices is 4 players. If you create a 5th player, you will get the "cannot decode" error. It is not a limit on the number of instances of AVPlayer, or AVPlayerItem. Rather,it is the association of AVPlayerItem with an AVPlayer which creates a "render pipeline", and you are limited to 4 of these.

What can I do to dump the AVFoundation resources that ABMediaView is blocking up? Calling resetVariables and resetMediaInView in mediaViewDidDismiss was a hopeful solution of mine that didn't seem to do anything.

Edit: According to this post, it seems like using AVPlayerLayer's replaceCurrentItem would work... although I'm not sure what to do when a layer is not actually being reused (like in the case of multiple media views):

In the end, I decided to initialize the view controller’s AVPlayer right off the bat with its playerItem set to nil. Then I changed my setup function like so... Replacing the player’s playerItem instead of initializing it with a new playerItem each time (even though the player was previously set to nil), seems to prevent that weird “cannot decode” error (so far, at least). I’d like to know more about this error and why exactly it occurs, just out of nerdy curiosity.

Note: I would use the new Swift framework but it is not Objective-C compatible.

Hi Julian!
I’ve been working on several projects that have been pulling me away from Open Source, sorry. But yes, I can investigate the issue, however if you find a solution and PR it to the dev branch, I can review it.
My Swift version is incomplete, and I also want to make sure all is Objective-C compatible. But there was a lot in terms of video playing that is vastly improved in that project.
I will try to get to these issues as soon as I can, but again, if you find a solution and would like to PR, I can definitely review it.


Don't Discover Switch

Is there a way to set up a device or devices that will intentionally not get discovered by Alexa? It would be nice to NOT have everything automatically discovered. Maybe there is a way already? Please, if there is not already, add this feature. Otherwise, how may I do it?

Yep, set the inactive flag to true for each device you do not want discovered.

Perfect! Thank you.


[DO NOT MERGE] - Proposal for refactoring scenarios

@niallscc , @ekkross , @AhmedAmr , @mostafafotoh , @MrwanBaghdad - I made some progress on implementing the improvements to the Scenario/Case api that I proposed https://github.com/inside-track/pemi/pull/129 weeks ago here - https://github.com/inside-track/pemi/pull/129.
I've rewritten all of the tests in tests/test_testing.py to demo how it can work.  The most notable features include:

No more *ScenarioConfig classes.  All Scenario configuration is now defined in the Scenario class parameters.
No more case keys.  I could never really explain what they meant.  The functionality has been replaced with Factory Boy factories for generating the the unique keys and then a CaseCollector object that is used to link the ids generated in the factories to the fields they get populated to in the targets.  I think this more clearly captures the functionality they provide.

Let me know what you think.  Hopefully I'll find some time in the next few weeks to start refactoring other tests in the Pemi project and then eventually implement it in the de-jobs project.


[Refactor]: Use MMCV model registry

To enable MMDet and MMSeg to use the backbones supported in MMClassification, MMClassification should update their model registry and inherit them from MMCV.
related PR https://github.com/open-mmlab/mmcv/pull/760, https://github.com/open-mmlab/mmdetection/pull/5059

https://github.com/open-mmlab/mmclassification/pull/252 has been merged, anything else needed to do?


Clearer License statement

Why not using a LICENSE file?
Thanks!
Pierre

Indeed, I could rename the file to something more usual.


Publish 06/09/2022, 10:30 AM

Docs Build status updates of commit bcab69a:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/New-TenantAllowBlockListItems.md
:white_check_mark:Succeeded
View (exchange-ps)

exchange/exchange-ps/exchange/New-TenantAllowBlockListSpoofItems.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


Updated MTTR panel graph to round display value of y-axis to 1 decimal point

@prakritiverma Is there a way to recreate this bug? I'm not seeing this issue on my screen:

I played with date ranges from 24 hours to last 7 days but still looks similar to my screen shot.

Maybe try running the demo a few times to change the numbers up? I think during the demo (which we may have a recording of, if that's helpful at all) we ran it twice before it showed that many decimal places...


Inaccurate results in Firefox

It seems like the GPU timing and memory is not accurate in Firefox:

There's no way to have each frame take 40ms and still get 60fps so this is clearly inaccurate.
Compare this to the same app running in Chrome:

In Firefox I get this console message:
Disjoint_time_query extension not available.

Sure enough, the extension is Chrome only.
Given this, would it be possible to note in the readme that the GPU measurements only work in Chrome? Or even better, hide the inaccurate results completely when the extension is not available.

@looeee oh wow I'm surprised firefox doesn't support it.
Well instead of removing it we could do a fallback if not available. I saw that there is a trick to measure the GPU timing by making a promise with a settimeout 0 in the RAF for each draw instructions to get the time it took to execute the gpu and stack them. For example:
const t = performance.now()
// raf
gpuAccums = 0

const glFinish = async (t) =>
  Promise.resolve(setTimeout(() => {
    const dt = this.now() - t;
    gpuAccums += dt;
}, 0));

const addProfiler = (fn, self, target) => function() {
  const t = self.now();
  fn.apply(target, arguments);
  if (self.trackGPU) glFinish(t);
};

['drawArrays', 'drawElements', 'drawArraysInstanced',
  'drawBuffers', 'drawElementsInstanced', 'drawRangeElements', etc...]
  .forEach(fn => { if (gl[fn]) gl[fn] = addProfiler(gl[fn], this, gl) });

@looeee Hello. I invested a bit and my firefox is giving me the exact same result! About that warning, it was an old code that I cleaned referring to Disjoint_time_query that was deprecated after the GLitch exploit. Also now I manually do a gl.flush() after the endQuery of the timing just to be more precise at it seems to prevent unexpected spikes.
image

I think the only logical reason would be that firefox is weaker than chrome when it comes to webgl?. Maybe you got some extensions that could affect the performances only on firefox. Did you try with a fresh install or private navigation if it affects the performances?

Hey, sorry it's been crunch time over the past week.

I think the only logical reason would be that firefox is weaker than chrome when it comes to webgl?

This is what I thought as well at first, but it seems like the numbers don't make sense. It's reporting 40ms for the GPU time, but 59fps. I'm pretty sure that's not possible, 40ms would give 1000/40 = 25fps. The app certainly doesn't feel like it's running at 25fps in Firefox, it feels just as smooth as Chrome.
There's also the issue with the memory, surely that should be similar even if the frame rate is different?


Could not install OpenCVjs

Hello !
I tried to install OpenCVjs today to test it, so I installed EMSDK
.\emsdk update
.\emsdk install latest
.\emsdk activate latest

After doing this I tried to install OpenCVjs
.\python\<IP_ADDRESS>_64bit\python.exe make.py

I had some problems with environment variables, but I fixed them.
And it is still not working, I have a non-zero exit status .
The entire Log is here https://pastebin.com/qEPfHPcd
I really do not understand because I have MinGW, python and CMake in my environment variable.
Thanks for helping me

Hm. This is an issue with using CMake wanting to generate an NMakefile, but being told (by the configure script) to generate a MinGW Makefile.
 This should force CMake to rebuild from scratch.

Hi, Thanks.
It worked well, I should have thought of it earlier ^^'


iOS remote config

Hi, I found this PR-> https://github.com/fechanique/cordova-plugin-fcm/pull/54/files that adds remote config to iOS, maybe you can take a look at the code and implement iOS remote config in your plugin.
Thanks for the great work.

I support your opinion.
Please consider it.

It doesn't appear to be fully-implemented in fechanique/cordova-plugin-fcm but without testing, it seems like it fetches whatever config is already set.
https://firebase.google.com/docs/remote-config/use-config-ios#set-in-appdefault-parameter-values

This is a feature that we are looking for. Would you be happy to take a pull request?

@elliotstokes yes for sure

Ive created a pr with the iOS remote config support. It works for my use case. Still have the timeout stuff to implement but comments welcome.
https://github.com/arnesson/cordova-plugin-firebase/pull/144


Docker container in Dockerhub

It would be very useful if you could create an automated build of the Docker container on Dockerhub (https://hub.docker.com). It takes only a few clicks and it's free. Other people cannot do it because it requires permissions to your Github account.

Given that the official version is in Raimon's github account, how would I go about creating this? In the docker automated build I can only choose my own repositories.

I guess Raimon has to do that then.

A slightly related question, there looks to be a Dockerfile in the current repo... but I don't see guidance on the specific syntax? Is it just the same basic command line inputs?
I kept trying:
python2.7 ~/Volumes/Hanson/Training_Resources/ICA-AROMA/ica-aroma-via-docker.py -in ~/Volumes/Hanson/Duke_PAC/proc/140313_18263/fmri/rest/ICA_AROMA/20140313_18263_REST_LAS_st_mcfr_brain.nii.gz -out ~/Volumes/Hanson/Duke_PAC/proc/140313_18263/fmri/rest/ICA_AROMA/ -a ~/Volumes/Hanson/Duke_PAC/proc/140313_18263/fmri/rest/ICA_AROMA/func2struct.mat -w ~/Volumes/Hanson/Duke_PAC/proc/140313_18263/fmri/rest/ICA_AROMA/my_nonlinear_transf.nii.gz -mc ~/Volumes/Hanson/Duke_PAC/proc/140313_18263/fmri/rest/20140313_18263_REST_LAS_st_mcfr_brain_norm.mat
but ran into different various issues. Any thoughts are greatly appreciated!

I'm currently still a noob when it comes to docker. This function was added by @chrisfilo - perhaps he can chime in?

Yes, I am a super noob w/ Docker too... so any assistance is greatly appreciated. I can pull the docker image, but can't figure out the specific arguments that are needed or what the syntax is, etc. Thanks much!

I did not put this container on Docker Hub so I am not sure what are you pulling. You would need to specify which container are you pulling (or building), what command you are trying to run, and what errors (full trace) you are getting for people to be able to help you.

That might explain it, I was trying to use ica-aroma-via-docker.py. I also tried to use this docker container:
https://hub.docker.com/r/mcin/ica-aroma/


Update state after get for all assets

The state wasn't updated after a get for algos (all 3 types) and objectives. This PR harmonizes the get behavior.
It also updates the _update_assets method so that it either update the asset in the list if it already exists or inserts it if it doesn't.

So...
I realized that this change introduces a potential risk: getting an asset owned by node_2 through session_1 will add the asset to session_1.state, thus breaking the underlying assumption that an asset in a session state is owned by the session.
@samlesu and I discussed it and the good solution here should probably be to have a global state shared by all sessions, with proxy methods allowing to access only the assets owned by each session. This way everybody could perform updates with no risk of contaminating each other with "falsy" information.

I'm closing this PR, implementing the fix proposed in #76 would be a much better solution.


Remove version: taers232c.GAMADV-XTD3 version 6.79.05

This version is older than what has been set in max-versions-to-keep by the publisher.
Microsoft Reviewers: Open in CodeFlow

URL: https://github.com/taers232c/GAMADV-XTD3/releases/download/v6.79.05/gamadv-xtd3-6.79.05-windows-x86_64.msi
OK
(Automated message - build 913)


Evac via escape pod just... doesn't count for objectives

Description
Evac pods don't work for "Escape to CentComm alive and unrestrained"
Reproduction
Step 1. Steal nuke
Step 2. Evac on pod
Step 3. Be alive and unrestrained
Step 4. Redtext
Screenshots

Additional context
Aeiou.

intentional

intentional

in that case it should probably say to escape to centcomm on the evacuation SHUTTLE as opposed to just "escape to centcomm:


UserSignup not starting

Been playing with this for a while, not matter what I try to do, I always get this on starting UserSignup:
Apr 14, 2020 3:09:26 PM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
Apr 14, 2020 3:09:26 PM org.apache.catalina.core.ApplicationContext log
INFO: No Spring WebApplicationInitializer types detected on classpath
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Apr 14, 2020 3:09:26 PM org.apache.catalina.core.ApplicationContext log
INFO: Initializing Spring root WebApplicationContext
Apr 14, 2020 3:09:26 PM org.apache.catalina.core.StandardContext listenerStart
SEVERE: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListener
org.springframework.beans.factory.BeanDefinitionStoreException: Unexpected exception parsing XML document from class path resource [jpaContext.xml]; nested exception is java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.XmlReaderContext.getEnvironment()Lorg/springframework/core/env/Environment;
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:412)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:334)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:302)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:174)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:209)
	at org.springframework.beans.factory.support.AbstractBeanDefinitionReader.loadBeanDefinitions(AbstractBeanDefinitionReader.java:180)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:125)
	at org.springframework.web.context.support.XmlWebApplicationContext.loadBeanDefinitions(XmlWebApplicationContext.java:94)
	at org.springframework.context.support.AbstractRefreshableApplicationContext.refreshBeanFactory(AbstractRefreshableApplicationContext.java:130)
	at org.springframework.context.support.AbstractApplicationContext.obtainFreshBeanFactory(AbstractApplicationContext.java:537)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:451)
	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:389)
	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:294)
	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112)
	at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5197)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5720)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:145)
	at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1308)
	at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:685)
	at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:209)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:136)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:109)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:110)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:603)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:1025)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:445)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1137)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:637)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2575)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2564)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.NoSuchMethodError: org.springframework.beans.factory.xml.XmlReaderContext.getEnvironment()Lorg/springframework/core/env/Environment;
	at org.springframework.data.repository.config.RepositoryBeanDefinitionParser.parse(RepositoryBeanDefinitionParser.java:64)
	at org.springframework.beans.factory.xml.NamespaceHandlerSupport.parse(NamespaceHandlerSupport.java:73)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1438)
	at org.springframework.beans.factory.xml.BeanDefinitionParserDelegate.parseCustomElement(BeanDefinitionParserDelegate.java:1428)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.parseBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:185)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.doRegisterBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:139)
	at org.springframework.beans.factory.xml.DefaultBeanDefinitionDocumentReader.registerBeanDefinitions(DefaultBeanDefinitionDocumentReader.java:108)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.registerBeanDefinitions(XmlBeanDefinitionReader.java:493)
	at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:390)
	... 48 more

I had the same problem, can confirm that PR #500 fixes it

Still having issues starting /UserSignup
Here are the logs:
docker logs -f java-debugging_webserver_1
Listening for transport dt_socket at address: 8000
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version:        Apache Tomcat/7.0.94
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          Apr 10 2019 16:56:40 UTC
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server number:         <IP_ADDRESS>
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Linux
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            5.3.0-51-generic
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             /usr/lib/jvm/java-8-openjdk-amd64/jre
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           1.8.0_212-8u212-b01-1~deb9u1-b01
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         /usr/local/tomcat
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         /usr/local/tomcat
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djdk.tls.ephemeralDHKeySize=2048
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dignore.endorsed.dirs=
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=/usr/local/tomcat
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=/usr/local/tomcat
May 16, 2020 3:57:52 AM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Djava.io.tmpdir=/usr/local/tomcat/temp
May 16, 2020 3:57:52 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: Loaded APR based Apache Tomcat Native library 1.2.21 using APR version 1.5.2.
May 16, 2020 3:57:52 AM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: APR capabilities: IPv6 [true], sendfile [true], accept filters [false], random [true].
May 16, 2020 3:57:52 AM org.apache.catalina.core.AprLifecycleListener initializeSSL
INFO: OpenSSL successfully initialized (OpenSSL 1.1.0j  20 Nov 2018)
May 16, 2020 3:57:52 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-apr-8080"]
May 16, 2020 3:57:52 AM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["ajp-apr-8009"]
May 16, 2020 3:57:52 AM org.apache.catalina.startup.Catalina load
INFO: Initialization processed in 630 ms
May 16, 2020 3:57:52 AM org.apache.catalina.core.StandardService startInternal
INFO: Starting service Catalina
May 16, 2020 3:57:52 AM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet Engine: Apache Tomcat/7.0.94
May 16, 2020 3:57:52 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/tomcat/webapps/host-manager
May 16, 2020 3:57:52 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
May 16, 2020 3:57:52 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/local/tomcat/webapps/host-manager has finished in 469 ms
May 16, 2020 3:57:52 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/tomcat/webapps/manager
May 16, 2020 3:57:52 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
May 16, 2020 3:57:52 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/local/tomcat/webapps/manager has finished in 98 ms
May 16, 2020 3:57:52 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/tomcat/webapps/examples
May 16, 2020 3:57:53 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
May 16, 2020 3:57:53 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/local/tomcat/webapps/examples has finished in 231 ms
May 16, 2020 3:57:53 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/tomcat/webapps/ROOT
May 16, 2020 3:57:53 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
May 16, 2020 3:57:53 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/local/tomcat/webapps/ROOT has finished in 89 ms
May 16, 2020 3:57:53 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/tomcat/webapps/docs
May 16, 2020 3:57:53 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
May 16, 2020 3:57:53 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/local/tomcat/webapps/docs has finished in 65 ms
May 16, 2020 3:57:53 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deploying web application directory /usr/local/tomcat/webapps/UserSignup
May 16, 2020 3:57:54 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
May 16, 2020 3:57:54 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
May 16, 2020 3:57:54 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/UserSignup] startup failed due to previous errors
May 16, 2020 3:57:54 AM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
SEVERE: The web application [/UserSignup] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.
May 16, 2020 3:57:54 AM org.apache.catalina.startup.HostConfig deployDirectory
INFO: Deployment of web application directory /usr/local/tomcat/webapps/UserSignup has finished in 1,224 ms
May 16, 2020 3:57:54 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-apr-8080"]
May 16, 2020 3:57:54 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-apr-8009"]
May 16, 2020 3:57:54 AM org.apache.catalina.startup.Catalina start
INFO: Server startup in 2265 ms
May 16, 2020 3:58:38 AM org.apache.catalina.startup.TldConfig execute
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
May 16, 2020 3:58:38 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: One or more listeners failed to start. Full details will be found in the appropriate container log file
May 16, 2020 3:58:38 AM org.apache.catalina.core.StandardContext startInternal
SEVERE: Context [/UserSignup] startup failed due to previous errors
May 16, 2020 3:58:38 AM org.apache.catalina.loader.WebappClassLoaderBase clearReferencesThreads
SEVERE: The web application [/UserSignup] appears to have started a thread named [Abandoned connection cleanup thread] but has failed to stop it. This is very likely to create a memory leak.

Problem solved, thank you!

I chose another route: fix the Spring version that is required by Spring Data JPA 1.11.23. See #503 for my patch. Includes some additional tweaks as well, e.g., source target is 1.8 and addresses a logging issue.

This is still an issue two years later. It looks to me like PR #500 was closed without the change being merged in? In any case when I cloned this project the issue was still present.
But I applied the changes in #503 and finally got UserSignup to start. Thank you @timothystone !


Angular 8 & msal-angular 1.0.0: acquireTokenSilent and 'X-Frame-Options' = 'deny'

Hello,
we are currently using angular 8 and msal-angular 1.0.0-beta4 to log into Azure B2C. All works fine the first time we log in: the popup windows appears and we can enter the credentials. Once the token expires (after 1 hour), the token is refreshed silently either by MsalGuard or by the MsalInterceptor. Both call acquireTokenSilent from MsalService, The problem is when the request is done to Azure B2c using https://YOURB2C.b2clogin.cpm/YOURB2C.onmicrosoft.com/YOURPOLICY/oauth2/v2.0/authorize?response_type=token_id&scope=openid%.... , the answer (200 OK) contains the header 'X-Frame-Options' set to 'deny'. This cause the browser to stop with an error telling it can't display the result in a frame.
Has somebody a way to make the silent refresh of the token work? Is there a workaround that is really working?
Thx
Giovanni

@giovannimele Generally speaking, for this error we recommend calling acquireTokenPopup or acquireTokenRedirect to resolve. I realize that isn't possible directly using the built-in Guard and Interceptor, so for now (until we enhance them to provide better error handling), you could look at creating a copy of the existing Guard/Interceptor and having them invoke those methods when there is an error?

@jasonnutter Thank you for your reply. To resolve this problem we already implemented your proposed solution, even if it means that every hour, we have the login popup appearing and disappearing briefly.
Do you have an ETA for the resolution of this problem?
Regards
Giovanni

@giovannimele We don't have an ETA yet, unfortunately.

@tnorling Hello, can you give me the reason why you consider this problem as low priority? For me the silent refresh is totally broken and doesn't work...

I'm having the same issue in React.
I log in the user and when I try to do acquireTokenSilent to get a token for an API I get the x-frame-options = deny error

@giovannimele This is partly due to the fact this is caused by the B2C service, not the library.
@martinlarosa Are you able to invoked acquireTokenPopup or acquireTokenRedirect when this occurs?
Note, there are some B2C policies that we know will experience this error with acquireTokenSilent. See https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp/issues/49

@jasonnutter Thank you for your reply. To resolve this problem we already implemented your proposed solution, even if it means that every hour, we have the login popup appearing and disappearing briefly.
Do you have an ETA for the resolution of this problem?
Regards
Giovanni

Can you publish your solution?

Hi @jasonnutter, thanks for the reply.
We are able to make it work just by forcing acquireToken to occur always with popup.
On the policies side, we have to unfortunately use custom policy to support multitenant AD login. So we have a custom policy providing local accounts as well as AD accounts.
I guess the policies listed in the link you shared are pre-built User Flows, right? Would that make a difference?
Anything we can try to help uncover more information? Or any suggestion for when we are using custom policies?
Thanks!

Hi @jasonnutter, thanks for the reply.
We are able to make it work just by forcing acquireToken to occur always with popup.
On the policies side, we have to unfortunately use custom policy to support multitenant AD login. So we have a custom policy providing local accounts as well as AD accounts.
I guess the policies listed in the link you shared are pre-built User Flows, right? Would that make a difference?
Anything we can try to help uncover more information? Or any suggestion for when we are using custom policies?
Thanks!

Yeah, I believe custom policies (esp if they require MFA) are likely to run into this limitation.

@jasonnutter I am building a Next JS server side app.Right now the client side hydrates with msal code, but ran into iframe issues.Would you recommend doing auth via server side flow (authorization code flow I believe) to get around these issues.That also means the Next JS server acts as a proxy in between my client(browser app) and server(APIs).

@jasonnutter @hamiltonha I've commented on #1161 previously and the bug activity appears to have died out on that guy unfortunately. Do your teams (MSAL client or B2C server) know the exact cause of this? During the private preview of 2.0 (using auth code instead), the solution was going to be moving to popup or full page redirect anyway due to browsers such as Safari making 3rd party cookies in IFRAMES a task to re-enable. So I realize this issue may just go away by switching to a popup. However, is this a guaranteed fix? I would hate to burn time on this again only to find implicit-style redirect-based refreshes simply aren't working anywhere (popup, full-page or IFRAME). Just looking for someone to say "yes, definitely move forward with popup refreshes and we guarantee the server will grant a new access token."
With Blazor WASM officially live and generally available, folks are going to run into the exact same issue unless they use the full auth code flow and grant refresh tokens as well (and therefore can use the /token endpoint with their refresh token instead of a redirect to /authorize). In a public untrusted client with no option to use cookies for refresh tokens, this isn't going to past muster for many security teams.
I love what you guys do but I think we're all a tad curious as to the state of this flow for SPAs. Thank you!

@jake-brandt in the spirit of discussion .. Auth0 which is also an identity platform like AD B2C recommends refresh-token-rotation for SPA's and public clients. Below message from https://auth0.com/docs/flows/concepts/auth-code-pkce

Recent advancements in user privacy controls in browsers adversely impact the user experience by preventing access to third-party cookies. Auth0 recommends using Refresh Token Rotation, which provides a secure method for using refresh tokens in SPAs while providing end-users with seamless access to resources without the disruption in UX caused by browser privacy technology like ITP.
Maybe this would be something which MSAL 2.0 could look into.
cc @jasonnutter

@niwsa that's basically what our teams here recommended to so since it's not supported by B2C yet (refresh token rotation). We'd have to stand up our own API endpoints to act as an IDP that passes through to B2C but lets us implement token rotation then. Once B2C added support, we'd be able to go directly to B2C's /token endpoint instead.
So currently our choices are popup refresh (a la implicit style) or creating a rotating token version on our own and talking to B2C from server-to-server then.

My concern with popup refresh is that:
A) it's a UX quirk albeit industry-common at least
B) what if these issues in IFRAMES follow us to the popup version? I don't mean the X-Frame-Options issue but the fact that the redirect isn't even happening. I've looked at the source of that page generating the X-Frame-Options issues and it's (in my case at least) the original interactive page being displayed and its associated 200 status - we don't want a 200 response in an IFRAME or a popup for a refresh; what we want is a 302 redirect since the user already has a session.
So I don't think the real issue is the frame options; but rather the fact that certain policies aren't returning 302 redirects for existing sessions.

Phrased in another way for this thread, the issue is likely not X-Frame-Options and I believe that is a side-effect of the root issue. I believe the root issue is that certain B2C policies (MFA, custom policies, etc.) are not returning a 302 redirect for existing sessions and are instead always trying to return a 200 response with the interactive form. And at that point I do agree that the interactive form should never be allowed within an IFRAME due to clickjacking.

@jmckennon I see Jason was unassigned from this ticket; with my above notes do you think this warrants a second triage for us? Thank you!

@jake-brandt This is probably an issue with the B2C service. Could you file a support ticket following the instructions here? You can link to this issue in that ticket.

@pkanher617 per your guidance I've filed a support ticket on our Azure plan; I'll share any relevant/general information I get back

As that is a private system I was able to include HTTP traces to help illustrate the sequence of events.

Here is a proposal from internal discussions with my team:
If you are already signed in using the default sign up / sign in policy but then need to use a custom policy for further action (such as custom profile management), do not attempt to refresh using a redirect with the latest policy (the custom one). Rather, redirect the user back to the original sign up / sign in policy. As Azure B2C should already have a session established for the user within this policy, it should automatically redirect. Pairing this with a popup redirect as opposed to silent/IFRAME should get around most browser incompatibilities and also address the redirect issue in the process (as now the redirect would be using the original sign in policy again instead).

@jake-brandt In response to your comments, the authorization code flow is our latest recommendation to mitigate Safari ITP. I'm not sure of a solution with Implicit Flow and as protocols similar to ITP are coming to Chromium and Brave I do not think it will be a waste of time to pick up this flow. We are also currently working on design so auth code flow with still work with silent iframe token acquisition, but this is still in early stages. I also acknowledge your point about security implications of using the auth code flow and would say that we do have plans to protect the refresh tokens in the browser in more ways than just limiting the lifetime, but again I can't estimate when this work will be done at the moment.

Haley let your team know we feel the struggle and understand! I'm sure I speak for most of us when I say we've all enjoyed this task a few times with securing public clients / SPAs... Looking forward to what additions come to msal-browser in time.

@jasonnutter Do you have any updates on this issue. We are experiencing a similar issue and neither of the recommended workarounds (acquireTokenPopup or acquireTokenRedirect) work for us.
To reproduce the issue I have done the following:
I followed all steps here: https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp/blob/master/README.md and here: https://github.com/Azure-Samples/active-directory-b2c-javascript-msal-singlepageapp/blob/master/README.md to set up the app and it worked fine without any issues.
I then set up a custom policy with B2C using this guide here: https://docs.microsoft.com/en-us/azure/active-directory-b2c/custom-policy-get-started, which also worked fine.
Finally I followed this guide to add Azure AD as an identity provider: https://docs.microsoft.com/en-us/azure/active-directory-b2c/identity-provider-azure-ad-multi-tenant-custom?tabs=applications#add-a-claims-provider
With other identity providers the acquireTokenSilent call succeeds, however when a user logs in using Azure AD as the identity provider then the acquireTokenSilent method fails with the error described in the initial issue.
With the working providers, the request made by acquireTokenSilent gives a 302 response with the location being the redirect URI and the access token included in it, however for the AAD provider the response is a 302 still but the location is login.microsoftonline.com/common/oauth2... which then causes the iframe error.
acquireTokenPopup is not a valid solution for us because we need it to work in an environment where popups are often blocked.
acquireTokenRedirect does not seem to be working correctly. The redirect flow completes and the access token is passed in the URL, however MSAL.js is not reading the value and the redirect callback is not called, furthermore MSAL.js is triggering an additional redirect, which is causing the value to be lost before we can read it.

acquireTokenPopup is not a valid solution for us because we need it to work in an environment where popups are often blocked.

First, generally speaking you should not rely on acquireTokenSilent always succeeding. You should assume it will potentially fail (i.e. due to factors outside the control of your app or MSAL.js itself), and choose one of the interactive flows as a failback. I realize both popups and redirects have negative tradeoffs, but they are the only two options we have to resolve silent token acquisitions failures.
Note, popups are usually blocked by default only when they are invoked without user interaction. Furthermore, MSAL will throw an error if it is unable to open a popup, meaning your app can attempt to do acquireTokenPopup, and then fallback to acquireTokenRedirect if that fails.

acquireTokenRedirect does not seem to be working correctly. The redirect flow completes and the access token is passed in the URL, however MSAL.js is not reading the value and the redirect callback is not called, furthermore MSAL.js is triggering an additional redirect, which is causing the value to be lost before we can read it.

I recently heard from another customer about this behavior with acquireTokenRedirect, I haven't had a chance to investigate but I'll follow up.

@jasonnutter Thanks for the response. I understand that we still need an interactive flow as a fallback. The main issue is that this is happening right after log in so the user performs a normal log in to get the ID token, then acquireTokenSilent is called right away, which fails and causes a second interactive log in to get an access token. Ideally we'd like to avoid the user having to log in twice.
One possible solution I've found is changing the initial log in call to use a response_type of id_token token rather than just id_token. Looking here https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core/src/UserAgentApplication.ts#L506 it seems that the response type is fixed for a login call, it would be great if support could be added for choosing response_type for a login call.

One possible solution I've found is changing the initial log in call to use a response_type of id_token token rather than just id_token. Looking here https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core/src/UserAgentApplication.ts#L506 it seems that the response type is fixed for a login call, it would be great if support could be added for choosing response_type for a login call.

This is being addressed in #1628

One possible solution I've found is changing the initial log in call to use a response_type of id_token token rather than just id_token. Looking here https://github.com/AzureAD/microsoft-authentication-library-for-js/blob/dev/lib/msal-core/src/UserAgentApplication.ts#L506 it seems that the response type is fixed for a login call, it would be great if support could be added for choosing response_type for a login call.

This is being addressed in #1628

Ah, brilliant.

@jasonnutter I have been experiencing this same 'X-Frame-Options'='deny' error when trying to acquireTokenSilent I figure I'll post my findings on what the root cause was for me and how I am resolving it. In my case with the identity provider I was using (Google, should be the same for the other providers but haven't tested yet) this error will only occur for me when my browser/cookies are manging multiple active sign-ins for that provider. The scenario is easy to spot when signing into your application (at least when using google provider) select your login provider and you should be presented with multiple accounts/emails to choose from. If multiple accounts pop up to choose from (then you have the potential for this error) and there isn't a 'signed out' label on multiple selections than your browser has multiple active sign-ins. When clicking any of those accounts that are not showing signed out then you are login to the application without needing credentials. When navigating to a protected resource it was failing the acquireTokenSilent because it was unable to determine what active sign-in credentials to be using since my browser had multiple active sign-ins. So to get around this you would have to sign-out of all your accounts for that provider and sign in to a single account or use 'acquireTokenPopup' with token caching for better user experience. Here is the code I'm using for my access token called by my interceptor currently, will be changing it up a little bit but you get the idea!
`getAccessToken (scopes: string[]): Observable {
const user = this.userQuery.getValue();
let accessToken = user.accessToken;
if (accessToken) {
  if (user.expirationDate > new Date()) {
    return of(accessToken);
  } else {
    this.clearAccessToken(accessToken);
  }
}

return from(
  this.msalService
    .acquireTokenSilent({ scopes })
    .then((response: AuthResponse) => {
      this.userStore.update({
        accessToken: response.accessToken,
        expirationDate: response.expiresOn
      });
      return response.accessToken;
    })
    .catch(() => {
      this.msalService
        .acquireTokenPopup({ scopes })
        .then((response: AuthResponse) => {
          this.userStore.update({
            accessToken: response.accessToken,
            expirationDate: response.expiresOn
          });
          accessToken = response.accessToken;
        })
        .catch(() => undefined);
      return accessToken;
    })
);

}
`
Hope this helps others, keep in mind that most of the details I discuss discovering the reason why it was happening when using google identity provider. Other identity providers/browsers might be harder to determine how many active accounts are signed in. Usually, a good fallback is if that provider provides an email service (Gmail, Hotmail, live, office 365, ...) then navigate to that service to see who is actively logged in for that provider and how easily you can switch accounts without being prompted for credentials (showing that multiple accounts have an active sign in and when getting tokens silently you will have problems).

I am also facing the issue with acquireTokenSilent. When acquireTokenPopup is called popup just comes and closes by itself.
@bkoliba As you mentioned , when multiple accounts are signed in the need for popup is acceptable. But even when only one account is signed in or when login_hint is passed to the provider, the silent call should have passed right?
It's still failing in our case. Any help is appreciated.

This issue is not new, there was an issue that said "With multiple accounts, user is redirected through login experience twice" and they told that it was happening with multiple Google Accounts (https://github.com/AzureAD/microsoft-authentication-library-for-js/issues/842#issuecomment-621531835) but that issue was closed without (aparently) a resolution.
@jasonnutter is there a way to acquireTokenSilent when the user has multiple Google accounts?
Thank you in advance

@JuanGarciaCarmona This is currently not possible on the built in user flows due to an issue with the service where the login_hint is not passed down to the underlying IDP, meaning google doesn't know which account you intend to use. If you're using custom policies there is a fix in flight for this, I will check in with the service team and find out if it has been fully rolled out yet and get back to you with instructions on how to update your policy to support this.
Once everyone is confident in the fix for custom policies it will then be rolled out to basic policies for some Social IDPs, you can expect the most popular IDPs to be included in that list. I don't have an ETA at the moment for when it might be rolled out to basic policies but we'll keep this ticket open until then.

Another note, the first alpha of MSAL Angular v2 is now: https://github.com/AzureAD/microsoft-authentication-library-for-js/releases/tag/msal-angular-v2.0.0-alpha.0
Given it does not use iframes for most token acquisition scenarios, this issue should be mitigated after upgrading.

@giovannimele Can you please confirm that upgrading to the latest Angular version mentioned above is resolving this issue?


Odin@2024-12: Fix installation failing

Odin installation fails
PS D:\git\Versions> scoop install odin
Installing 'odin' (2024-12) [64bit] from 'versions' bucket
Loading odin-windows-amd64-dev-2024-12.zip from cache
Checking hash of odin-windows-amd64-dev-2024-12.zip ... ok.
Extracting odin-windows-amd64-dev-2024-12.zip ... done.
Linking D:\Programs\scoop\apps\odin\current => D:\Programs\scoop\apps\odin\2024-12
Creating shim for 'odin'.
Get-Command : The term 'odin.exe' is not recognized as the name of a cmdlet,
function, script file, or operable program. Check the spelling of the name,
or if a path was included, verify that the path is correct and try again.
At D:\Programs\scoop\apps\scoop\current\lib\install.ps1:757 char:21
+             $bin = (Get-Command $target).Source
+                     ~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (odin.exe:String) [Get-Command
   ], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException,Microsoft.PowerShell.
   Commands.GetCommandCommand

Can't shim 'odin.exe': File doesn't exist.

I updated bin path in manifest to include extra dist directory, since it was not matching with the directory structure inside package zip. which causes above error.
Same issue was occuring for odin-dev 2024-12 and odin-nightly 2024-12 updated them as well!

[x] I have read the Contributing Guide.

/verify updated manifest to fix odin installation.

/verify updated manifest to fix odin installation.


Error when no route to host

Would there be some other way of dealing with
msg : error
error
Error: Command failed: upsc ups@<IP_ADDRESS>:3495
Error: Connection failure: No route to host
instead of it just popping up in the debug window?
Maybe a second output of the node?

Sorry, I haven't touched NUT or node-red in a long long time and am not actively maintaining this project. If you send a PR with a second output, I'll merge it :)


feat: add a list in profilerecording which allows to define specific containers

What type of PR is this?
feature

What this PR does / why we need it:
This PR extends the ProfileRecording CRD with a container list. This allows to define only specific containers for which the profile will be recorded instead of recording the profiles of all containers present in a pod.
This is useful when one wants to record only the profile of a specific container in a pod which has multiple containers. For instance only the profile of an application container, and not the profiles of the sidecar containers.
Which issue(s) this PR fixes:

Does this PR have test?

Special notes for your reviewer:
Does this PR introduce a user-facing change?
yes

Extend the ProfileRecording CRD with a containers list which allows to select only specific containers in a pod for which the profile will be recorded

/ok-to-test

I think that's actually a good feature! Do you think we can add an e2e test for the bpf and log enricher recorder?

I can add an E2E test.

@saschagrunert I added the E2E tests. Please could you have a look again? Thanks!

/test all

/test pull-security-profiles-operator-build-image

/test e2e-fedora

/test pull-security-profiles-operator-test-e2e

/test all

/test pull-security-profiles-operator-test-e2e

@saschagrunert e2e tests passed now. Please could you have another look? Thank you!

/test all


Add action type definitions & prop-types for function actions with position

Related Issue
Related to issue #153
Description
Supplying actions in the shape {action: function, position: string} fixed the issues described by the automatically defined position in Issue #153.
Demo with unexpected behavior as in #153: https://codesandbox.io/s/material-table-starter-template-forked-zm809
Demo with fixed behavior due to different action shape: https://codesandbox.io/s/material-table-starter-template-forked-xwz4n
Since this seems to already be fully supported behavior I just want to propose to add the necessary prop-types and typescript definitions. In the second codebox example you can see that the prop types do not support this shape.
If the typescript definition can be written more beautiful I'm glad about suggestions.

This is correct. Thank you :)

Thanks @oze4 & @Domino987 for taking care of this so quickly :)


Connection is not properly cleared after a command timeout

I'm running Microsoft.Data.SqlClient 1.1.0 on .NET Core 3.0 again a local MS SQL Server 2019 Dev Edition (but same issue happens with SQL Azure).
When command execution timeout happens, the connection does not seem to be cleared properly. For example, if the command locked a table, that table remains locked until MS SQL server automatically unlocks by rolling back hanging transaction after some time.
To reproduce:

Create a local database named TestBed;
Create a table in the TestBed database:

CREATE TABLE [Test]
(
    [Id] INTEGER IDENTITY PRIMARY KEY,
    [Name] NVARCHAR(MAX)
)

Run the following code (you can use the attached project):

using System;
using System.Threading;
using System.Threading.Tasks;
using Microsoft.Data.SqlClient;

namespace TimeoutIssue
{
    internal static class Program
    {
        private const string ConnectionString = "Server=(local); Initial Catalog=TestBed; Integrated Security=True";

        private static void Main()
        {
            Task.WaitAll(
                Task.Run(LockTable),
                Task.Run(TryInsert)
            );
        }

        private static void LockTable()
        {
            try
            {
                using var conn = new SqlConnection(ConnectionString);
                conn.Open();
                Console.WriteLine("{0:O}: LockTable Enter. ConnectionId={1}", DateTime.UtcNow, conn.ClientConnectionId);

                using var cmd = conn.CreateCommand();
                cmd.CommandText = @"
                    BEGIN TRANSACTION
                    INSERT [Test] WITH (TABLOCK) VALUES('Name1')
                    WAITFOR DELAY '00:01'
                    COMMIT TRANSACTION
                ";
                cmd.ExecuteNonQuery();

                Console.WriteLine("{0:O}: LockTable Exit", DateTime.UtcNow);
            }
            catch (SqlException ex) when (ex.Number == -2)
            {
                Console.WriteLine("{0:O}: LockTable Timeout", DateTime.UtcNow);
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0:O}: Unexpected exception in LockTable: {1}", DateTime.UtcNow, ex);
            }
        }

        private static void TryInsert()
        {
            try
            {
                Thread.Sleep(TimeSpan.FromSeconds(10));

                while (true)
                {
                    try
                    {
                        using var conn = new SqlConnection(ConnectionString);
                        conn.Open();
                        Console.WriteLine("{0:O}: TryInsert Enter. ConnectionId={1}", DateTime.UtcNow, conn.ClientConnectionId);

                        using var cmd = conn.CreateCommand();
                        cmd.CommandText = "INSERT [Test] VALUES('Name2')";
                        cmd.ExecuteNonQuery();

                        Console.WriteLine("{0:O}: TryInsert Exit", DateTime.UtcNow);
                        return;
                    }
                    catch (SqlException ex) when (ex.Number == -2)
                    {
                        Console.WriteLine("{0:O}: TryInsert Timeout", DateTime.UtcNow);
                        Thread.Sleep(TimeSpan.FromSeconds(10));
                    }
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine("{0:O}: Unexpected exception in TryInsert: {1}", DateTime.UtcNow, ex);
            }
        }
    }
}

Here's a typical output you will receive:
2019-11-28T07:51:43.2464035Z: LockTable Enter. ConnectionId=007a1341-23d6-486a-ba9c-05b40e6f58fb
2019-11-28T07:51:52.9787016Z: TryInsert Enter. ConnectionId=9f8a1258-5df8-4b58-8303-bdf7895ccfac
2019-11-28T07:52:13.2821142Z: LockTable Timeout
2019-11-28T07:52:22.9795180Z: TryInsert Timeout
2019-11-28T07:52:32.9814216Z: TryInsert Enter. ConnectionId=9f8a1258-5df8-4b58-8303-bdf7895ccfac
2019-11-28T07:53:02.9841081Z: TryInsert Timeout
2019-11-28T07:53:12.9852900Z: TryInsert Enter. ConnectionId=9f8a1258-5df8-4b58-8303-bdf7895ccfac
2019-11-28T07:53:42.9865951Z: TryInsert Timeout
2019-11-28T07:53:52.9878703Z: TryInsert Enter. ConnectionId=9f8a1258-5df8-4b58-8303-bdf7895ccfac
2019-11-28T07:54:22.9890031Z: TryInsert Timeout
2019-11-28T07:54:32.9902235Z: TryInsert Enter. ConnectionId=9f8a1258-5df8-4b58-8303-bdf7895ccfac
2019-11-28T07:55:02.9907380Z: TryInsert Timeout
2019-11-28T07:55:12.9920148Z: TryInsert Enter. ConnectionId=9f8a1258-5df8-4b58-8303-bdf7895ccfac
2019-11-28T07:55:42.9922753Z: TryInsert Timeout
2019-11-28T07:55:52.9939088Z: TryInsert Enter. ConnectionId=9f8a1258-5df8-4b58-8303-bdf7895ccfac
2019-11-28T07:56:22.9934268Z: TryInsert Timeout
2019-11-28T07:56:32.9943738Z: TryInsert Enter. ConnectionId=9f8a1258-5df8-4b58-8303-bdf7895ccfac
2019-11-28T07:57:02.9951424Z: TryInsert Timeout
2019-11-28T07:57:13.6949977Z: TryInsert Enter. ConnectionId=9f8a1258-5df8-4b58-8303-bdf7895ccfac
2019-11-28T07:57:43.6946691Z: TryInsert Timeout
2019-11-28T07:57:53.6958744Z: TryInsert Enter. ConnectionId=9f8a1258-5df8-4b58-8303-bdf7895ccfac
2019-11-28T07:58:03.0430395Z: TryInsert Exit

As you can see, the table remains locked long after 'LockTable Timeout' timeout happens. Correct me if i'm wrong, but that should not work like that.

Hi @dmytro-gokun
I just modified the using keyword in your example to blocks and it seems to work fine.
// LockTable()
using (var cmd = conn.CreateCommand())
{
    cmd.CommandTimeout = 60;
    cmd.CommandText = @"
        BEGIN TRANSACTION
        INSERT [Test] WITH (TABLOCK) VALUES('Name1')
        WAITFOR DELAY '00:01'
        COMMIT TRANSACTION
    ";
    cmd.ExecuteNonQuery();
}
...
// TryInsert()
using (var conn = new SqlConnection(ConnectionString))
{
    conn.Open();
    Console.WriteLine("{0:O}: TryInsert Enter. ConnectionId={1}", DateTime.UtcNow, conn.ClientConnectionId);

    using (var cmd = conn.CreateCommand())
    {
        cmd.CommandTimeout = 60;
        cmd.CommandText = "INSERT [Test] VALUES('Name2')";
        cmd.ExecuteNonQuery();
    }
    Console.WriteLine("{0:O}: TryInsert Exit", DateTime.UtcNow);
    return;
}

@cheenamalhotra Thanks for you answer.
There're two points:

I just modified the using keyword in your example to blocks and it seems to work fine

Changing using declarations to using blocks is essentially a no-op. The code is functionally  equivalent in both cases. If it were not, it would mean a serious bug in C# compiler's implementation of using declarations for a really trivial case. I do not believe that's what's happening here, i have bigger faith in C# team :). And this explains why just changing to using blocks w/o changing timeout does not help.

I also had to increase commandTimeout to 60 to get it working.

Okay, this is what did the trick for you. However, it only works because the delay in the query happens to be 1 minute (WAITFOR DELAY '00:01'). If you increase that delay to 2 minutes, you are back to square one. Besides, manipulating command timeouts to hide a library issue is not a really good idea :). In real life scenarios, you do not have delays specified explicitly. You just have transient network conditions, parallel queries locking tables and so on. That's why we have retries in first hand. And retries should work, not just timeout again and again long after the original transient issue is gone.

I'll continue to look further if there's any issue or is it just SQL Server's locking mechanism.

Yes, please do. The thing is that we have a serious issue in production (SQL Azure) which is caused by this unexpected behavior: a timeout happens and after that all retries timeout again and again for a half an hour. Restarting the service help immediately, which makes me think that it's that timed out transaction holding a lock and not SQL server itself.

So here's what's going on internally in the driver in this case:

00:00:00 [LockTable]
A connection is created with SQL Server, which opens a transaction internally, INSERTs a row in table, and waits for 1 min locking the table.
00:00:10 [TryInsert]
A new connection is created that tries to INSERT in the same table, and gets another lock as the table is already locked.
00:00:30 [LockTable]
SqlCommand times out here (default timeout was 30 seconds) and connection is sent back to pool [_stackNew]. But SQL Server is still holding the lock with WAITFOR on active connection.
00:00:40 [TryInsert1]
SqlCommand times out here too, sending connection back to pool [_stackNew]. No open transactions on Server side because the driver opened local transaction, and closed it before sending it to pool.
00:00:40 [TryInsert2]
Creates one more task as the previous attempt failed. The same open connection used by [TryInsert1] is allocated from pool and query is executed, but gets lock from server as table is locked and driver is not receiving any data for that stream.
00:00:60 [LockTable]
SQL server's WAITFOR is now released, but transaction is still Open. SQL Server waits for driver to listen back for updates, and read the active stream to continue executing the query.
...
After some time (2-4 mins) CleanupCallback kicks on the outer pool [_stackNew], and pops and pushes the old connection for [LockTable] to [_stackOld] (another pool for stale connections) without touching the parser.
...
After more time (2-4 mins) CleanupCallback kicks again on the inner pool [_stackOld] and destroys the unused connections, this time flushing the parser stream and freeing the socket connection with SQL Server.

This is when lock is released from the table and INSERT queries can now work normally.

Because the connection stays in pool and keeps the table locked, you have 2 solutions:

Avoid using transaction statements in queries as driver has no control over them. Let the driver create transaction before executing query and complete query successfully. The data is not committed in database anyway. You can use higher timeouts for commands in case of locks.
Disable Pooling to avoid connection retention in the driver after query has timed out and free lock from table immediately.

Avoid using transaction statements in queries as driver has no control over them.

Well, the truth it that there are no transaction statements in the real code. The only reason i've added them in the reproduction was to simulate table lock. The real code does a simple insert, but that sometimes times out because of a read happening in parallel (the table in question is really big). And that is not a problem - to handle that we have retries built-in. The real problem is that retries do not help, as the table remains locked after the first timeout.

00:00:30 [LockTable]
SqlCommand times out here (default timeout was 30 seconds) and connection is sent back to pool
[_stackNew]. But SQL Server is still holding the lock with WAITFOR on active connection.

I would argue that this connection should not be just sent back to the pool. It should be cleared immediately in order to free server resources its holding.  My connection & command are enclosed in a 'using' and i expect them to be properly cleared when the block exits. The fact that a pool is used internally should have no effect on my code, it's a mere implementation detail. Do not you think so?

Hello @dmytro-gokun
I agree, the timing out of the connection should release the lock on the table. A time out should immediately trigger a self CleanUp (or self destruct) from the pool, so the table is unlocked immediately and other transactions can occur.
@cheenamalhotra, would this be possible?
Also, can there be an auto queue, which will prioritise attempted transactions when the table was locked?
However @dmytro-gokun, slight concern around the approach of using a
while (true)
to handle retries for your inserts in production. It seems like this will not scale. It might be better to use a task scheduler for writes if consistency is not a high priority in your system design. The scheduler will manage the data store writes more efficiently, or you can just use SQL Server's Snapshot Isolation to better manage this (The better solution if you ask me).

Hi all, we are facing the same problems in our systems. We have a sync mechanism that synchronizes data from remote clients to a central server. The process run fine on a 4.6.2 .Net version and does not work at core 2.2 with driver version 1.1.0
We are getting connection timeout exceptions and they seem to linger forever effectively killing the server. The system can serve as much as 6k requests per second although the normal is around 1.5k and it goes in short spikes, meaning they can go from 300 - 2000 in cycles.
I tried disabling the pool but did not help. We do not use any transactions in our code, the setup is simple.
The only thing that might be problematic is that in 1-2 places I have to call synchronous code inside an asynchronous method, running synchronous query in a constructor for example.
This worked in the past, don't know if it can create problems.
Any help or workaround would be greatly appreciated since this is a production system

I agree, the timing out of the connection should release the lock on the table. A time out should immediately trigger a self CleanUp (or self destruct) from the pool, so the table is unlocked immediately and other transactions can occur.

The problem in the repro is the uncommitted transaction that was manually created in the SQL statement. The manual commit to end the transaction never runs because the command times out and the server never moves on to the statement after the WAITFOR because the client has gone away. Thus the lock is not released until the server detects that the connection is closed. The driver does not parse the SQL to know that there is an open transaction. This is why there is client-side transaction handling and embedding transaction statements in your SQL is not recommended.

Hi all, we are facing the same problems in our systems. We have a sync mechanism that synchronizes data from remote clients to a central server. The process run fine on a 4.6.2 .Net version and does not work at core 2.2 with driver version 1.1.0
We are getting connection timeout exceptions and they seem to linger forever effectively killing the server. The system can serve as much as 6k requests per second although the normal is around 1.5k and it goes in short spikes, meaning they can go from 300 - 2000 in cycles.
I tried disabling the pool but did not help. We do not use any transactions in our code, the setup is simple.
The only thing that might be problematic is that in 1-2 places I have to call synchronous code inside an asynchronous method, running synchronous query in a constructor for example.
This worked in the past, don't know if it can create problems.
Any help or workaround would be greatly appreciated since this is a production system

@iz-iznogood You said connection timeouts, but I assume you meant command timeouts in the context of this issue. Encountering either timeout does not indicate a bug in the driver and is unrelated to this scenario, particularly since you said you tried disabling connection pooling. You're going to need to dig further into your particular issue to determine why your timeouts are occurring. Likely there is locking occurring somewhere that is blocking other clients.

Closing this issue as per above discussions.


Export Pull Request Data

I'm looking for a way to export data to track pull request metrics. Things like number of prs created by user, number of prs reviewed, average time to merge. Most of this data seems available but I don't see anyway to get it. Even just a json file or excel file that I could use to generate a custom report would be very helpful. A way to generate a report would be even better

Hi @joeklin
Wouldn't you be able to use the APIs from Azure DevOps to achieve it? You can use PowerBI for managing the data too.

would be really nice if I could just get a simple csv export of the view. I installed the plugin because I saw the save icon thinking I could save the results, but unfortunately its for saving the filter settings


[Docs] How to configure tensorboard logs in the latest version v1.2.0?

Branch
main branch  https://mmdetection3d.readthedocs.io/en/latest/
📚 The doc issue
How to configure tensorboard logs in the latest version v1.2.0?
Suggest a potential alternative/fix
No response

Add it in your config
vis_backends = [dict(type='LocalVisBackend'), dict(type='TensorboardVisBackend')]
visualizer = dict(
    type='Det3DLocalVisualizer', vis_backends=vis_backends, name='visualizer')

@sunjiahao1999 , I could visualize the scalars, time series, and text with the above change but if i want to visualize the graph of the network, how would i do that? Thanks!


chore(blog): july community update

Community summary for the month of July

Hey @thulieblack, here's an update on design.
For Design Audit
https://www.figma.com/file/NC2FUyFAccF08uP5RbsbAB/AsyncAPI-Design-Audit?type=design&node-id=217%3A153&mode=design&t=lm9YBydyhrByZvd9-1

Hey @thulieblack, here's an update on our design activities at AsyncAPI we could add to our July blog post.
AsyncAPI Website
Link https://www.figma.com/file/sS5ofLRtuFqDGFvlNBurns/AACoT?type=design&node-id=0%3A1&mode=design&t=8hIxdawXzew3qpPh-1
Design Audit
I'm conducting a design audit on the AsyncAPI website for the mentorship program.
Link https://www.figma.com/file/NC2FUyFAccF08uP5RbsbAB/AsyncAPI-Design-Audit?type=design&node-id=1113%3A4309&mode=design&t=iKAh2NOduAjQpsty-1

lemme know in DM if you want me to merge or there is something more you want to add


Feature/configuration factory

The ConfigurationFactory that converts phpdocumento2 / phpdocumento3 xml to an array

Hi @rgeraads,
You're off to a good start! During the code review I have found the following points of improvements:

[ ] Can you please move the ConfigurationFactory to the \phpDocumentor namespace?
[ ] Can you move/use the xsd to/in the /data/xsd folder?
[ ] I am missing the replaceLocation() and get() method (see Class Diagram); it seems you renamed that to convert?
[ ] The XML is retrieved in the constructor; can you move that to the get() method and in the constructor just record the URI?

This is because the configuration file may be overridden during execution of the application and we want to load the configuration at the latest moment, and that is in the get. Please keep in mind that the get may be called multiple times and building the configuration should not reoccur unless the URI has changed. This will save performance.

[ ] A significant amount of information is missing from the generated array for the phpDocumentor 2  XML; the output folder and source files are not set

In addition to the above I will add a few comments inline with the source.

I have updated the original review post with two more items.
@rgeraads I have completed my review; due to some extensive changes that are needed I have not reviewed the tests and will do that after the suggested changes. This is an excellent start and I am looking forward to the end result!

Hey Randy,
You have made considerable progress, that is good to see!
Due to the feedback that I have mentioned above I have not yet reviewed the unit tests. I will do that once the code is more stable.
There have been a few comments regarding how things could be a little bit better but I also found a few bugs. Please see the comments above.
Can you please move the Converter interface and concrete implementations to a namespace ConfigurationFactory use the following names:
Converter -> ConfigurationFactory\Strategy
Phpdoc2XmlToArrayConverter  -> ConfigurationFactory\PhpDocumentor2
Phpdoc3XmlToArrayConverter  -> ConfigurationFactory\PhpDocumentor3
In addition I would like default values (such as the default template name) to be injected into the strategies (for example using the convert method as a parameter) by the ConfigurationFactory; this way the default values are not duplicated between the two strategy classes.

@mvriel some minor changes are still needed. But in the end I think this one should be ready for merge.

My apologies for the number of points; I noticed some things that would quite possibly lead to issues later on.


Strings from extension are displayed in incorrect language (vscode-nls)

This issue is similar to https://github.com/microsoft/vscode/issues/82791 , and related to this issue reported in cpptools.  It's unclear if this is an issue with VS Code or isolated to vscode-nls.
The user has a Windows 10 install that was initially zh-CN, but is now set to en-US.  They are using VS Code in English, having not installed the Chinese language pack extension.  Yet, strings from cpptools (from calls to localize() in vscode-nls) are being displayed in Chinese.
I assume this is due to VS Code defaulting to the original OS language.  Since that language pack extension was never installed, VS Code strings are falling back to English.  Whereas, cpptools is distributed with all language strings, so vscode-nls finds and displays Chinese strings.
The fix would seem to be to always default to en-US, as no language packs are installed by default.(?)  If the language pack were installed, the current OS language would seem preferable over the original OS language.

What language is configured in the locale.json in the user data directory (under Windows in AppData\Roaming\Code\User). If this still list Chinese we set the UI language to Chinese which then the CPP tools correctly honor. The main Window fails since the LP is not installed.
Is this the case for you?


Extend ssa.Apply with field ignore rules

To make kustomize-controller compatible with VPA, HPA for custom resources and other controllers which mutate Flux-managed fields in-cluster, we need to wire the ssa/jsondiff logic into the SSA apply functions.
Tasks:

[x] Move the saa functions used in jsondiff to a dedicated package
[ ] Add []jsondiff.IgnoreRule to the ssa.ApplyOptions
[ ] Remove the ignored fields before the final apply if they diverge

Example:
	appliedObject := object.DeepCopy()

	if existingObject.GetResourceVersion() != "" {
		var sm = make(map[*jsondiff.SelectorRegex][]string, len(opts.DriftIgnoreRule))
		for _, ips := range opts.DriftIgnoreRule {
			sr, err := jsondiff.NewSelectorRegex(ips.Selector)
			if err != nil {
				return nil, fmt.Errorf("failed to create ignore rule selector: %w", err)
			}
			sm[sr] = ips.Paths
		}

		var ignorePaths jsondiff.IgnorePaths
		for sr, paths := range sm {
			if sr.MatchUnstructured(appliedObject) {
				ignorePaths = append(ignorePaths, paths...)
			}
		}

		if len(ignorePaths) > 0 {
			patch := jsondiff.GenerateRemovePatch(ignorePaths...)
			if err := jsondiff.ApplyPatchToUnstructured(appliedObject, patch); err != nil {
				return nil, err
			}
		}
	}

	if err := m.apply(ctx, appliedObject); err != nil {
		return nil, fmt.Errorf("%s apply failed: %w", FmtUnstructured(appliedObject), err)
	}

Would like to contribute to getting this solved as flux has been great for my use cases until I now need to manage a CRD with a conversion webhook and a cert-manager caBundle that would keep getting removed/added.
Is it "just" a lack of priority and contributions that is blocking this issue or is there something else related to adding the ignore rules that makes this extra complicated to solve?


Make explain layer same aesthetic as tour

Re-opened to also update explain layer aesthetics on other pages (compare, transform)