If applied this commit implements a flexible social login mechanism with github login completely configured & working already

The social login mechanism that has been implemented tends to be completely flexible and easy to understand having the following pros:

Routes & controller methods are completely dynamic for any given social login service.
A middleware to protect & check login attempts against our defined social login services.
Any social login can be initiated within a single minute of configuration (How that can be done is explained later in this comment)
Any social login can be revoked within a minute without affecting other logins.
Handles all the duplicate logins & signups scenario with breeze

The Code flow :

Just 2 flexible routes to handle all of the social login services
I have tried to keep the SocialLoginController code as readable as possible & yes I have reordered the imported namespaces alphabetically as you taught me last time :)
Added a middleware to protect & check login attempts against our defined social login services in the config/social.php

Quick guide

For the "GitHub" sign in button the css has been added to a new _github.scss file and imported at the top in app.scss and that has been compiled already with Laravel elixir.
As expected Laravel Socialite is being used so that should be installed using composer install
NOTE : SOCIALITE'S V 2.0 SHOULD BE USED WITH OUR 5.3 APP SO  a composer install command is recommended as the composer.json has v2.0 for it.
Next to migrate the new required social login table run php artisan migrate
Lastly update your .env with GitHub app credentials , for correct keys refer to config/services.php

To Add a new social login

Just add the credentails in .env & update the config/services respectively.
Update the config/social.php array to keep the middleware check active for it.
That's it!

To Remove any login at any time without affecting other stuff

Just remove the respective one from config/social.php
And you are done!

Sorry for the long read , I hope you don't mind Matt :)
Lastly , here is the screenshort of the github button implemented! Tried hard to make it look as near as possible with @adamwathan 's design in this github login issue #56

Sorry Adam if its not as good as you expected, I am not good with the front-end stuff but still tried my best :)

@introwit Looking forward to looking over this--thanks for your work on it!

No problem @mattstauffer I know you have been busy. Also I am still 20 , but I have heard from my parents that being a good parent is really tough and I know you have been busy with the little Jr. Stauffer , I hope the champ is doing good too. Much love to the baby, say my hello :)

@introwit Hey, great work on this! Tested out locally and it seems to function great. Requested a few minor changes that should help make this ready to go.

@imjohnbon done. Sorry for the dumb spacing mistakes in the CSS. Also learned the ordering of properties should be alphabetised,  thanks John :) And your profile bio is :heart:

@introwit Thanks for making the cleanups! This is looking really good. Just a few more notes:

Right now, the login form has the "Login with Github" button and then a "Don't have a github account?" link that links off to a standalone login page. Given that to start most people will have non-github accounts, we'd like to bring back the login form to the login box and give them both options at the same time. So something like this (just a quick mock-up I made):

As I was doing some final testing, I also realized the Github Login button overlaps a bit at certain screen sizes (mainly tablet as far as I can tell). Here's a screenshot:

It probably just needs some padding adjustments or something like that.
Thanks again for all your hard work on this! Let me know if you have any questions. Also, thanks for the love for my description! 😁

@imjohnbon I am working on a fresh PR for this entire contribution because have learned a lot about working with CSS after the day I made this PR in Jan to till now. Also I am extremely sorry for this delayed response I don't know how I missed this, so sorry John :(

@introwit No need to apologize! We appreciate all your hard work on this PR, it's really close to being perfect. If you need help finishing it out at any point just let us know. Otherwise great work so far!

@introwit Hey! Just responding to your tweet here since it's a little bit hard to explain over twitter. :)
The majority of Symposium's custom SCSS lives in resources/assets/sass/app.scss right now. So that's where you'd be putting any new SCSS as well. You can then compile the SCSS to CSS using Gulp by running "gulp" on the command line or "gulp watch" to compile changes as you make them. Here's a link to an old Laracasts video that details setting up/using Gulp if you're unfamiliar with it. Hope this helps! Let me know if you have any further questions.


Simplify bazel xcode scripts

Simplify bazel-xcodeproj.sh and bazel-package.sh by moving plist generation entirely within bazel. Removes API key insertion and provisioning profile options from the scripts, moving all configuration to example_config.bzl instead.

So config.bzl won't be generated each time any more, we'll just set it up once per workspace?

So config.bzl won't be generated each time any more, we'll just set it up once per workspace?

Correct


Update gatsby/react and switch to the lib version of twoslash

No compelling reason to upgrade Gatsby/React, but I gave a bunch of pages a run through.
The Twoslash update I did want to do, there's been a bunch of perf wins over on the main library which I want

https://github.com/gatsbyjs/gatsby/pull/32509/files


Basic example of how to use

Would this be used to connect to log chat rooms? If so, is there a basic example of how to use this?

@vasive Yes you can. I'll put together a small example when I get a chance.

This snippet connects to MFC, joins a room and starts logging out chat messages to the console.
var MFCSocket = require("MFCSocket");
var MessageType = require('MFCSocket').MFCMessageType;
var JoinChannelMessage = require("MFCSocket").JoinChannelMessage;

var socket = new MFCSocket();
socket.on("loggedIn", function(u){
socket.send(new JoinChannelMessage(u.SessionId, <model broadcasterId>));
});
socket.on("mfcMessage", function(msg){
	if (msg.Type == MessageType.FCTYPE_CMESG)
		console.log(msg.Data.nm, msg.Data.msg);
});

Thanks! this helps a bunch!


ULTRA Update Adapter test after new adapter setup

Problem :  The adapter test needs to be updated after the adapter was refactor to merge components of the state preprocessor. The merger caused the output of the observation adapter to contain the preprocessed observation, rather then previous environment based observations.

Solution: Change the observation adapter test to for the new preprocessed states

Issue closed after #627

Issue closed after #627


Can't validate stderr/stdout don't have some text

In upgrading cobalt.rs to 0.4, I found that they tested for the absence of text (to verify logging levels).  There doesn't seem to be a way to do this with the new API
See https://github.com/cobalt-org/cobalt.rs/blob/master/tests/cli.rs

That's a valid feature request. :) I'm currently redesigning the way we internally handle output assertions (#24), and want to have multiple fuzzy matchers some time in the future (#20). Maybe we can combine this with negative matches? Shouldn't be too hard.
I'm thinking of something like
#[test]
fn negative_fuzzy() {
    Assert::command("echo foo")
        .prints("foo")
        .doesnt_print("bar")
        .unwrap();
}


Romancing SaGa 3 [PCSE01337]

App summary

App name: Romancing SaGa 3
App serial: PCSE01337
App version: 1.0

Vita3K summary

Version: v0.1.5
Build number: 2658
Commit hash: https://github.com/vita3k/vita3k/commit/48f3e7ce
CPU backend: Dynarmic

Test environment summary

Tested by: gymzatan
OS: Windows 11
CPU: AMD Ryzen 7 5800H
GPU: AMD Radeon(TM) Graphics
RAM: 16 GB

Issues
Game does not proceed past intro screen, though audio works normally.
Screenshots

Log
vita3k.log
Recommended labels

Intro

RETESTED - Game can be marked as playable now
App summary

App name: Romancing SaGa 3
App serial: PCSE01337
App version: 1.00

Vita3K summary

Version: v0.1.8
Build number: 3160
Commit hash: https://github.com/vita3k/vita3k/commit/[1c009661]
CPU backend: Dynarmic
GPU backend: Vulkan

Test environment summary

Tested by: JackMonty
OS: Windows 10
CPU: AMD Ryzen 5 Pro 3500U
GPU: Nvidia Geforce GT1030
RAM: 32 GB

Issues
Game runs really well! Smooth play-though and good sound using Vulkan render. No problems noted at all. I also started several different campaings they all loaded fine.
Screenshots
Title

Gameplay

Menus

Battle

Log
vita3k.log
Recommended labels

Playable


Tool.Clear is not working properly

Hey there! I have an issue. Here is it: whem im getting my operations stored on backend theyre pasting to the drawboard properly but when im clearing it i can still choose deleted elements. How can i fix that?

@dilidili

I guess i have nice idea how to fix this. You just have to change file SelectTool.tsx a bit like this:
Function onSelectMouseDown now finding operation to select inside array of all operations. But now you need to find operation inside array which consist of operations after clear operation was added. Theres code sample:
const lastClearIndex = operationListState.reduced.length - [...operationListState.reduced].reverse().findIndex(operation => operation.tool === Tool.Clear)
const paintedOperations = operationListState.reduced.slice(lastClearIndex);

let selectedItem: Operation | null = findSelectedItem(paintedOperations, pos, scale);

@tar04 I need help. Can i setup it in the nextjs or reactjs ?Please guide

@tar04 I need help. Can i setup it in the nextjs or reactjs ?Please guide

You need help with the issue or to setup whole lib?

@mudasirpandith

I want to use editor in my websit. thats setting lib

@tar04 I want to use editor in my website. that`s setting lib

Have you tried instructions from repository?

Or you have some specific problems?

@mudasirpandith what about es6 imports?

It is not getting installed.

@mudasirpandith what about es6 imports?

It is not getting installed.

What you mean?) you have to install library and types for it if you’re using typescript

i was trying to use it in the React and using Js.
is this correct way to use install  npm install react-drawing-board

i was trying to use it in the React and using Js. is this correct way to use install  npm install react-drawing-board

Yes

And then you have to import it inside component you want to use it in

These are the errors it is showing

  These are the errors it is showing

Did you opened project folder in console?

Yes,i am installing in the right directory. Other npm gets installed in that

@tar04

What do you mean “other npm”? @mudasirpandith

What do you mean “other npm”? @mudasirpandith

i mean other packages get installed. Is there any way I can use this editor in my website?

@mudasirpandith You can use cdn server instead, just find the link with the lib and add script with it to your project

@mudasirpandith You can use cdn server instead, just find the link with the lib and add script with it to your project

can you help me out for this? please

@mudasirpandith sure. I’ll be home in 25 mins

@mudasirpandith https://www.jsdelivr.com/package/npm/react-drawing-board

Copy the script, paste in html document and then you should try to find component in window object

Btw what ide do u use?

Btw what ide do u use?

vscode

You can add the package in package.jam file by yourself and the ide should show you hint about uninstalled dependencies

@mudasirpandith

I am totally lost into this.
Can you please guide me step by step?

@mudasirpandith

I am totally lost into this. Can you please guide me step by step?

@mudasirpandith

Yup. Do you hame smth like discord? JUst to text you there

yeah, discord username :mudasirpandith

I am totally lost into this. Can you please guide me step by step?

@mudasirpandith

Yup. Do you hame smth like discord? JUst to text you there

@mudasirpandith added


Help texts don't display for color fields

My color fields don't show the "help" texts anymore, the ? tooltip button doesn't get displayed. I think this is only since 0.7.1? "Description" texts work fine.

Hey there!
I believe we fixed this in the develop branch so I'll just go ahead and close this issue.
If it still persists when you use that branch then please comment back here and reopen this! :+1:


sorting arrows not shown on matrix view

This is still outstanding but isn't high on my list of priorities so will close this issue down.
If anyone requires it, please feel free to fork this repository and contribute back 👍🏾  or raise a new issue.
Thanks!


Proposal: use of checkers on Integration test

Use c.Assert instead of those conditionals like
if err == nil {
...
}

I'll take integration-cli/docker_cli_search_test.go  #16758  as a sample.
ps: feel free to do a PR with multiple files :smile:

[ ] integration-cli/docker_api_attach_test.go @mountkin #16920
[x] integration-cli/docker_api_build_test.go @vdemeester #17056
[ ] integration-cli/docker_api_containers_test.go @ZJaffee
[x] integration-cli/docker_api_create_test.go @zelahi #17598
[x] integration-cli/docker_api_events_test.go @ZJaffee #17073
[x] integration-cli/docker_api_exec_resize_test.go @ZJaffee #17065
[ ] integration-cli/docker_api_exec_test.go @ZJaffee
[ ] integration-cli/docker_api_images_test.go @ZJaffee
[ ] integration-cli/docker_api_info_test.go @ZJaffee
[ ] integration-cli/docker_api_inspect_test.go @ZJaffee
[ ] integration-cli/docker_api_inspect_unix_test.go @ZJaffee
[x] integration-cli/docker_api_logs_test.go @ZJaffee #17080
[x] integration-cli/docker_api_network_test.go @ZJaffee  #17081
[x] integration-cli/docker_api_resize_test.go @HuKeping #16971
[x] integration-cli/docker_api_stats_test.go  @HuKeping #16971
[x] integration-cli/docker_api_test.go @HuKeping #16971
[X] integration-cli/docker_api_version_test.go @ZJaffee #17078
[x] integration-cli/docker_api_volumes_test.go @HuKeping #16971
[x] integration-cli/docker_cli_attach_test.go @mountkin #16977
[x] integration-cli/docker_cli_attach_unix_test.go @wenchma  #17425
[ ] integration-cli/docker_cli_build_test.go <- Big one : ~6000 lines @vdemeester
[x] integration-cli/docker_cli_build_unix_test.go @HuKeping #17368
[ ] integration-cli/docker_cli_by_digest_test.go @aditirajagopal #17452
[x] integration-cli/docker_cli_commit_test.go @aditirajagopal #17385
[x] integration-cli/docker_cli_config_test.go @liaoqingwei #17256
[ ] integration-cli/docker_cli_cp_from_container_test.go @zhangjianfnst #17294
[ ] integration-cli/docker_cli_cp_test.go @zhangjianfnst #17294
[ ] integration-cli/docker_cli_cp_to_container_test.go @zhangjianfnst #17294
[ ] integration-cli/docker_cli_cp_utils.go @zhangjianfnst #17294
[ ] integration-cli/docker_cli_create_test.go @zelahi
[ ] integration-cli/docker_cli_daemon_test.go @vdemeester #17138
[x] integration-cli/docker_cli_diff_test.go @echo33 #17166
[ ] integration-cli/docker_cli_events_test.go @maaquib #17200
[x] integration-cli/docker_cli_events_unix_test.go @maaquib #17189
[x] integration-cli/docker_cli_exec_test.go  @echo33 #17257
[X] integration-cli/docker_cli_exec_unix_test.go @echo33 #17162
[x] integration-cli/docker_cli_experimental_test.go @maaquib #17287
[x] integration-cli/docker_cli_export_import_test.go @maaquib #17222
[x] integration-cli/docker_cli_external_graphdriver_unix_test.go @fgimenez #17343
[ ] integration-cli/docker_cli_help_test.go @azurezk #17207
[x] integration-cli/docker_cli_history_test.go @jecarey #17296
[ ] integration-cli/docker_cli_images_test.go @jecarey #17382
[x] integration-cli/docker_cli_import_test.go @liaoqingwei #17206
[x] integration-cli/docker_cli_info_test.go @liaoqingwei #17196
[x] integration-cli/docker_cli_inspect_experimental_test.go @liaoqingwei #17167
[x] integration-cli/docker_cli_inspect_test.go @MHBauer  #16784
[x] integration-cli/docker_cli_kill_test.go @zelahi  #17427
[ ] integration-cli/docker_cli_links_test.go @WeiZhang555 #16854
[ ] integration-cli/docker_cli_links_unix_test.go @WeiZhang555  #16854
[X] integration-cli/docker_cli_login_test.go @cxxly  #16858
[x] integration-cli/docker_cli_logs_test.go @zhangjianfnst #16969
[x] integration-cli/docker_cli_nat_test.go @liaoqingwei  #17008
[x] integration-cli/docker_cli_netmode_test.go @cxxly  #16903
[ ] integration-cli/docker_cli_network_test.go @liaoqingwei
[x] integration-cli/docker_cli_network_unix_test.go @liaoqingwei #17053
[x] integration-cli/docker_cli_pause_test.go @liaoqingwei  #17105
[x] integration-cli/docker_cli_port_test.go @WeiZhang555  #17100
[X] integration-cli/docker_cli_proxy_test.go @liaoqingwei #16870
[ ] integration-cli/docker_cli_ps_test.go @azurezk  #17009
[ ] integration-cli/docker_cli_pull_local_test.go @heartlock
[ ] integration-cli/docker_cli_pull_test.go @heartlock  #16872
[ ] integration-cli/docker_cli_pull_trusted_test.go @Gobella
[x] integration-cli/docker_cli_push_test.go @HuKeping #16971
[X] integration-cli/docker_cli_rename_test.go @Crazykev  #16843
[x] integration-cli/docker_cli_restart_test.go @echo33 #17004
[x] integration-cli/docker_cli_rm_test.go @sunyuan3 #16897
[x] integration-cli/docker_cli_rmi_test.go @WeiZhang555 #16901
[ ] integration-cli/docker_cli_run_test.go @vdemeester
[ ] integration-cli/docker_cli_run_unix_test.go @vdemeester
[x] integration-cli/docker_cli_save_load_test.go @Crazykev #16933
[x] integration-cli/docker_cli_save_load_unix_test.go @xlgao-zju  #16838
[x] integration-cli/docker_cli_search_test.go @HuKeping #16758
[x] integration-cli/docker_cli_start_test.go @WeiZhang555  #16917
[x] integration-cli/docker_cli_start_volume_driver_unix_test.go @echo33 #17052
[X] integration-cli/docker_cli_stats_test.go @cxxly #16881
[x] integration-cli/docker_cli_tag_test.go @HuKeping #16846
[x] integration-cli/docker_cli_top_test.go @HuKeping #16846
[x] integration-cli/docker_cli_v2_only.go @echo33 #17006
[x] integration-cli/docker_cli_version_test.go @Mageee #16871
[X] integration-cli/docker_cli_volume_test.go @vdemeester
[X] integration-cli/docker_cli_wait_test.go @cxxly #16889
[X] integration-cli/docker_hub_pull_suite_test.go @cxxly #16877
[x] integration-cli/docker_utils.go @mountkin  #16977

Hi!
Please read this important information about creating issues.
If you are reporting a new issue, make sure that we do not have any duplicates already open. You can ensure this by searching the issue list for this repository. If there is a duplicate, please close your issue and add a comment to the existing issue instead.
If you suspect your issue is a bug, please edit your issue description to include the BUG REPORT INFORMATION shown below. If you fail to provide this information within 7 days, we cannot debug your issue and will close it. We will, however, reopen it if you later provide the information.
This is an automated, informational response.
Thank you.
For more information about reporting issues, see https://github.com/docker/docker/blob/master/CONTRIBUTING.md#reporting-other-issues

BUG REPORT INFORMATION
Use the commands below to provide key information from your environment:
docker version:
docker info:
uname -a:
Provide additional environment details (AWS, VirtualBox, physical, etc.):
List the steps to reproduce the issue:
1.
2.
3.
Describe the results you received:
Describe the results you expected:
Provide additional info you think is important:
----------END REPORT ---------
#ENEEDMOREINFO

Looking at the length of this list, I think you can use some help here :+1:
I'll give a shout in the IRC channel to see if there are maintainers/contributors looking for something to work on :)

Yeah, we'll split this : I think I'll have to complete this quick to enable easier check writes : https://github.com/vdemeester/shakers.
@HuKeping could you update the title with something like : Update the use of checkers on Integration test or something ?

PS : I'll send a PR real quick to integrate more checkers so that it is even easier to write Asserts :wink:.

I'll take a run through integration-cli/docker_cli_inspect_test.go to start.

Cool :+1: I'll reserve docker_cli_run_test.go to vendor the checker lib then :sweat_smile:.

Thanks @thaJeztah it's really a lot of work
Thanks for help @MHBauer
I'd like to make a sample for people who are interested on this issue,  please help me to complete #16758 @vdemeester

Could I possibly help out on this issue as well?  I can take  integration-cli/docker_cli_kill_test.go to start.

Cool @zelahi

I want to reserve docker_cli_rm_test.go.

I want to reserve docker_cli_version_test.go.

I will take integration-cli/docker_cli_login_test.go to start.

I'll try my best to keep up updating the first post . Thanks @sunyuan3 @Mageee @cxxly

I want to take integration-cli/docker_cli_rename_test.go to start.

I'll take integration-cli/docker_cli_save_load_unix_test.go.

I'll take integration-cli/docker_cli_save_load_unix_test.go to start .

I‘ll take integration-cli/docker_cli_pull_test.go to start .

Cool, I'll take integration-cli/docker_cli_links_test.go and integration-cli/docker_cli_links_unit_test.go

I'll pick docker_cli_t*

Love the initiative :+1: Thanks! :heart:

Thanks @HuKeping :)

great idea @HuKeping

@HuKeping  I will closed pull request #16836 and recreate it in #16858, please update the list
integration-cli/docker_cli_login_test.go @cxxly #16836   to
integration-cli/docker_cli_login_test.go @cxxly #16858
sorry for my change, thanks

Can l take the integration-cli/docker_cli_links_test.go and integration-cli/docker_cli_links_unix_test.go.

I want to take integration-cli/docker_cli_logs_test.go.

@HuKeping @thaJeztah @vdemeester @zelahi, this is notablle
"Note that if the comment is constant, a better option is to simply use a normal comment right above or next to the line, as it will also get printed with any errors:"
in https://godoc.org/gopkg.in/check.v1#Commentf
thanks @MHBauer

Hi，I will take docker_cli_nat_test.go,docker_cli_network_test.go,docker_cli_pause_test.go,docker_cli_proxy_test.go

@liaoqingwei  I have make a pr in docker_cli_proxy_test.go, you can firstly take docker_cli_nat_test.go,docker_cli_network_test.go,docker_cli_pause_test.go,

@cxxly it's a good practise that check the issue before submitting an PR :)

integration-cli/docker_cli_links_unix_test.go file is also involved in  #16854, please help updated. :)

I'll take another shot, taking integration-cli/docker_cli_rmi_test.go and integration-cli/docker_cli_start_test.go
By the way, docker service command has gone away for now #16645, and integration-cli/docker_cli_service_test.go no longer exists, so we can remove it from list

Thanks @WeiZhang555 , removed.

On 2015/10/9 11:19, Xiaoxu Chen wrote:

@liaoqingwei https://github.com/liaoqingwei I have make a pr in docker_cli_proxy_test.go, you can firstly take docker_cli_nat_test.go,docker_cli_network_test.go,docker_cli_pause_test.go,
—
Reply to this email directly or view it on GitHub https://github.com/docker/docker/issues/16756#issuecomment-146745140.

OK

takeintegration-cli/docker_hub_pull_suite_test.go and integration-cli/docker_cli_stats_test.go to work

Thanks everyone that joined in on this, and started contributing. It didn't go unnoticed, and we're really happy with al your efforts :metal: Open Source FTW!

I'll take ~integration-cli/docker_cli_pull_local_test.go~

I'll take integration-cli/docker_cli_pull_local_test.go

Joining the other maintainers on the :metal: and :heart: !! :heart_eyes_cat:

take  integration-cli/docker_cli_wait_test.go

@HuKeping updated the merged ones and add a few names too :wink: (hopefully I didn't miss some :sweat_smile: ).

take integration-cli/docker_cli_netmode_test.go

can I take docker_cli_pull_local_test.go ?

@heartlock already added you to it.

sorry ,I forgot to refresh my page

I want to take docker_cli_restart_test.go and docker_cli_v2_only.go

I'll take integration-cli/docker_cli_save_load_test.go

Seems there still are integrations left, I'll take one more integration-cli/docker_cli_port_test.go

I'll take docker_cli_pull_trusted_test.go

I want to take integration-cli/docker_cli_ps_test.go

integration-cli/docker_utils.go is done in #16977

I want to take docker_cli_start_volume_driver_unix_test.go

There should also be added docker_api_exec_resize_test.go, docker_api_images_test.go, docker_cli_attach_unix_test.go, I'll take these, but there are possibly more that need to be fixed that weren't added to the check list

Thanks @ZJaffee I added the docker_api* to the list but @vdemeester has removed it.

Are there any tests to fix left? Why were the docker_api* ones removed?

@HuKeping ohhh we might have edited the file at the same time :sweat_smile: don't remember having see the docker_api* and was wondering why they weren't there..
Sorry :blush: I'll add them back :wink:

@kevinkucharczyk they are back :)

@HuKeping I have closed #16973 and recreate it in #17004, sorry for the change and I hope you'll update the list, thanks
from integration-cli/docker_cli_restart_test.go @echo33 #16973
to integration-cli/docker_cli_restart_test.go @echo33 #17004

Here we go @echo33

@HuKeping thanks

There is also a test called integration-cli/docker_cli_build_test.go and that is the one which is 6000 lines. I can take care of that one as well.

That's a huge list @ZJaffee ! :+1:

I can take docker_cli_info_test.go and docker_cli_inspect_experimental_test.go,please mark the list.

I would like to reserve integration-cli/docker_cli_by_digest_test.go & integration-cli/docker_cli_commit_test.go

I'll take docker_cli_exec_unix_test.go and docker_cli_diff_test.go.

@HuKeping I want to take  integration-cli/docker_cli_cp_* four files.

I would like to take:  integration-cli/docker_cli_create_test.go

I'll take integration-cli/docker_cli_events_test.go and integration-cli/docker_cli_events_unix_test.go

I would like to take integration-cli/docker_cli_history_test.go and integration-cli/docker_cli_images_test.go

Seems some files still need to be updated, I will take docker_cli_import_test.go and docker_cli_config_test.go

I will take docker_cli_experimental_test.go and docker_cli_export_import_test.go

I want to take docker_cli_help_test.go

@HuKeping Please update the list with the PR #17105 for ·docker_cli_pause_test.go· and #17053 for docker_cli_network_unix_test.go

Done! Thanks @liaoqingwei

@HuKeping please update the PR #17052 for docker_cli_start_volume_driver_unix_test.go, thanks
and I want to take docker_cli_exec_test.go

Hi, I'll take docker_cli_external_graphdriver_unix_test.go

I will take integration-cli/docker_test_vars.go

Anyone wants to take integration-cli/docker_cli_build_unix_test.go as a shoot?
I think there are only integration-cli/docker_cli_build_unix_test.go and   integration-cli/docker_cli_build_test.go left and the latter is really a big one > 6000 lines

I'll take the other big one docker_cli_build_test.go :wink: .

Super cool! @vdemeester

@ZJaffee , found your comment to take docker_cli_attach_unix_test.go, if you have not made the pull request, I can take this and give a PR, :smile:

I wish I had seen this earlier. I really am against these kinds of changes as they can introduce bugs in the name of using some package.
What value does changing from type-safe, compile-time checked, idiomatic Go comparisons to using the very unclear, unfamiliar unit testing framework based on another languages idioms provide?
I just don't see how this:
c.Assert(out, checker.Contains, expectedErrorMsg, check.Commentf("expected error message in output: %s", out))

Is better than this:
if !strings.Contains(out, expectedErrorMsg) {
	c.Fatalf("expected error message %q in output: %s", expectedErrorMsg, out)
}

The former requires me to understand the checker package and allows any arguments to be passed in. The latter ensures that the test won't even compile if the type of expectedErrorMsg changes. It also provides a hint as to how one should use the result of a particular operation in real Go code.
If one needs common or more complex checkers, it is very easy to write them as a helper function or part of a separate package. For example, a common check I define is checkErr:
r, err = op()
checkErr(t, err)

Such a check might have common definitions for the package you're testing. Not only are they more accessible, but they can also be type safe. You get the benefit of both flexibility and specialization that one cannot achieve with an external package.

as I've already stated here https://github.com/docker/docker/pull/17452#issuecomment-155201279and on IRC one time with @duglin, my only concern is about the time we'll drop this pkg to move to something else maybe (if we'll move from it of course) and there will be the need to rewrite everything again. This is minor wrt what @stevvooe said above of course..

for reference, here's the brief irc chat about this: https://botbot.me/freenode/docker-dev/2015-10-20/?msg=52329998&page=2  before we went off the joys of getting old :-)

@duglin Following from that, I do find that these kind of assertion frameworks are favored by those unfamiliar or uncomfortable with Go. While that is a completely subjective evaluation, such a package absolutely makes these tests less familiar for seasoned Go programmers that don't use the check package. If you believe both premises, we are both making this harder to work with for experienced Go users and harder to work with for new users that have to learn the extra framework.
If there are technical merits for this proposal, other than "I don't like to check error codes", I'd love to hear them.

Sorry missing the discussing on IRC.
@stevvooe At the very beginning I noticed that there are some test using  c.Assert(...) to replace the original comparison and found that is more simple to write the test. And I want to keep the style consistent in the whole project, that's why I make this proposal.

@HuKeping We already have a style in Go for unit tests. Check out the standard library and other Go projects that avoid unit test frameworks. The tests are more readable, more reliable and more maintainable. Adding the use of c.Assert everywhere just complicates test writing.
Is there any technical merit to this proposal? How is transcribing unit tests possibly a good use of anyone's time?

@stevvooe I hear you and agrees almorst 100% with you on unit tests : there is no benefits of using "type-safe, compile-time checked, idiomatic Go comparisons" and the built-in framework — on unit tests that is.

Is there any technical merit to this proposal? How is transcribing unit tests possibly a good use of anyone's time?

On the other end, this proposal is for the integration test, not unit test (it's even written on the title of this issue), and I believe could escape a bit that. It's a bit more "expressing" the behavior and less about idomatic Go (in my opinion) — we could even have written them in bash script (using bats for example) like Swarm does. To disgress a little bit, it's like end-to-end testing or behavior testing, it feels more natural to write them in a more human language, like cucumber for example.
I also do agree that some of the assert are readable and some are not :sob: — but I just feel like there is a balance to find not "use everywhere", or "use nowhere".
c.Assert(out, checker.Contains, expectedErrorMsg, check.Commentf("expected error message in output: %s", out))
// The above one could be written like :
c.Assert(out, checker.Contains, expectedErrorMsg)
// The output would be the same (or more accuratly,
// there is duplication in the output for the first as go-check
// prints out the arguments if the assertion fails)

// Go checks also prints out comments above the assertion if needed
out, _ := dockerCmd(c, "run", "busybox", "echo", "hello")
// It should have been able to start the container and echo "hello"
c.Assert(out, checker.Equals, "hello")

// I also feel like …
c.Assert(err, checker.IsNil)
// … is not worse than
if err != nil {
   c.Fatal(err)
}

My point is, in my opinion, it's fine to digress a bit of the idiomatic Go (which I love a whole lot) for things like integration-tests if it helps me to write them quicker and with less noise. Agree to disagree with me but I don't think this look unreadable.
As @duglin pointed out on IRC, I feel there is a balance to find on that, and I'm old-school too, I like when it fits into 80 cols :wink: :sweat_smile:.

we'll drop this pkg to move to something else maybe (if we'll move from it of course) and there will be the need to rewrite everything again

@runcom you are right, but we are basically a lot tied up with go-check on integration test anyway (we are using the Suite), so the pain to move away from it wouldn't be too much less painful that it is without it.

@vdemeester I don't disagree with your assertion that these are integration tests. Bats would have been a better choice.
I am not sure that I can do anything to change the direction of this proposal but I hope this feedback can be valuable for your next project.
From here, I am going to babble on about the problems with the check package. Sorry for the book.

The following is Go code:
if err != nil {
   c.Fatal(err)
}

I trust the above. And despite the annoyance, I have written the construction umpteen thousand times. I know how it behaves. I know the edge cases. It is trustworthy. I have no clue what c is but I can guess because I've see functions like that and know how they might behave.
The following is a package call:
c.Assert(err, checker.IsNil)

It begs many questions. What is c? What arguments does c.Assert take? What is checker? A package? What is checker.IsNil? How do they test if something is nil? Does it differentiate between being a typed nil? Or an unset nil interface? What if I change the argument order?
Let's answer these by looking at godoc. Interesting. The testing.T type has been replaced by check.C. It now combines testing, assertion, benchmarking and helper into a single class.
So, now we look into checker. O, it is a docker package, that has redefined IsNil, redirecting it back to the check package. We eventually arrive at isNil. Wait. What is that? It uses reflect to dip down into the type. Let's look at the documentation for reflect.Value.IsNil. There is a curious bit in there, bolded for emphasis:

IsNil reports whether its argument v is nil. The argument must be a chan, func, interface, map, pointer, or slice value; if it is not, IsNil panics. Note that IsNil is not always equivalent to a regular comparison with nil in Go. For example, if v was created by calling ValueOf with an uninitialized interface variable i, i==nil will be true but v.IsNil will panic as v will be the zero Value.

O, okay, so c.Assert(value, IsNil) does not actually provide an equivalent check for value == nil. This can hide some atrocious bugs.
These are all issues and we haven't even got to the part where we realize that these tests aren't composable with other tests that don't use the check package. We also haven't gone into how silly this all is when we're just looking to make a statement or call a function.

My point isn't necessarily that this is bad or wrong. But, please, examine the amount of cognitive load required to analyze a simple statement. In the Go example, we can evaluate it almost instantly. We don't know what c is, but we can infer the behavior or look at a package doc. In the Assert example, we traversed through three other packages, eventually landing in the reflect package, learning that what we thought is a nil test is not quite the same. This extra amount of work goes down as you learn the package, but it must be paid by each new developer working on the code base.
In my experience, testing frameworks tend to be the enemy of test maintenance in code bases maintained by a large, diverse team. In the hands of a small team, additions, such as mocking libraries, test helpers, and frameworks, are a wonderful productivity boost. In larger teams, they detract from test maintainability, as it requires the more casual developers to ramp up on the uncommon additions. I have seen this in large code bases in Java, Ruby and Python, especially with the use of mocking frameworks. Even if you learn a given framework, there may also be overhead in learning how to execute it correctly within a projects chosen build system.

In reality, I am not altogether curmudgeonly on this issue. I do see the need for common check functions. We can do this by simply using a check function pattern. A check function is any function that matches the following signature:
func(t *testing.T, ...)

Such a function takes a *testing.T and fails the test if the check fails. Instead of leveraging reflection, we use type safety to let unit tests fail at compile time when something doesn't go correctly:
func checkErr(t *testing.T, err error) {
    if err != nil {
        t.Fatalf("unexpected error: %v", err)
    }
}

Simple, composable and type-safe, the above has a few problems. The most problematic is that it is hard to find where the error was generated. There is a very simple solution to that. Let's define an interface for testing.T:
type Reporter interface {
    Fatalf(format string, args...interface{})

    // ... and maybe other testing.T fields
}

// new function signature for checkErr
func checkErr(r Reporter, err error)

And a simple function that captures the line number and puts it into the report:
func Case(t, format string, args... interface{}) Reporter { /* ... capture line number and msg ...*/ }

Then, we can have a very consistent API:
f, err := riskyOp()
checkErr(Case(t, "operation shouldn't be risky"), err)

Seems a little verbose, right? Well, actually, this method works amazingly when using nested checks that identify the exact failure line. Let's say we are checking an http response:
// test doHTTP() (*http.Request, error)
r := checkResponse(
    Case(t, "an http response that demonstrates my point"),
         200, doHTTP())

func checkResponse(r Reporter, status int, r *http.Request, err error) *http.Request {
    checkErr(r, err)

    // this could even be another function!
    if r.StatusCode != status {
        r.Fatalf("unexpected http status: %v != %v", r.StatusCode, status)
    }
}

The above not only let's identify the actual test case that caused the failure, but also does so provided both the line number of the test case and possibly where it failed in the checker stack. The functionality provided by Case can also stack, meaning that we can have context to the failure all the way through the check chain.
We can get all this and still don't have to depart from the standard unit testing framework while using idiomatic Go. This could all be part of a package but simple check functions are so easy to write that you can just add it, as part of the project. The only component I would recommend distributing is the Case function and the Reporter definition, but it is easy to get by without it.

 Can I go ahead and call #dibs on the following?:
docker_api_images_test.go
docker_api_containers_test.go
docker_api_exec_test.go
docker_api_info_test.go
docker_api_inspect_test.go
docker_api_inspect_unix_test.go
docker_cli_pull_local_test.go
docker_cli_pull_trusted_test.go
Also ping @HuKeping - I verified that the following can be marked as "done" in your initial checklist:
docker_api_attach_test.go
docker_cli_by_digest_test.go
docker_cli_cp_from_container_test.go
docker_cli_cp_test.go
docker_cli_cp_to_container_test.go
docker_cli_cp_utils.go
docker_cli_events_test.go
docker_cli_help_test.go
docker_cli_images_test.go
docker_cli_links_test.go
docker_cli_links_unix_test.go
docker_cli_ps_test.go
docker_cli_create_test.go
docker_cli_run_unix_test.go
And docker_cli_network_test.go should be removed from the list because it does not exist
Thanks!

@aditirajagopal oh sure, please. I'm not on my office these days, so sorry for the late.

@vdemeester, do you need help with docker_cli_run_test, docker_cli_build_test and/or docker_cli_daemon_test? If you have higher priority items to work on, I can take care of these :smile:
ping @HuKeping - all the other tests have been taken care of!

ping @vdemeester @HuKeping - any thoughts?

hi @aditirajagopal , docker_cli_pull_test  is free to go I think, but not sure about the other claimed by @vdemeester

@HuKeping, I talked to @aditirajagopal and she is ok with me working on docker_cli_pull_test, can you please assign it to me?

Sure @jecarey

ping @HuKeping -- only docker_cli_run_test, docker_cli_build_test and docker_cli_daemon_test are left. The rest have been completed

@HuKeping I think this issue can be closed/marked as resolved. The remainder of the files that need to be changed involve effort that goes beyond scope of this issue.

@aditirajagopal @HuKeping or at least I would put it in pause for the time being. I intend to split those in several smaller/cleaner files to be easier to review and update :wink:

Thanks for everyone the great work you've done here! As @aditirajagopal says, this issue can be marked as resolved and we closing it.
Thanks, again for everyone!


Cannot install gulp-sass behind a corporate firewall

I'm trying (but failing) to install gulp-sass. The error seems to come quite close to the beginning of the process where it wants to get something from the Internet. Naturally this fails.
I'm working behind a corporate firewall. There's absolutely no way I can allow desktop applications to connect to the outside world. It's banned here.
Is there a work-around? For example, i could manually download the file that it's trying to install and then put it on this PC to prevent it hitting the Internet.
I'm using Windows 7.
I've also raised this this issue here:
https://github.com/nodejs/node-gyp/issues/1020
Whenever I try to install gulp-sass I get the following error:
C:\workspace\CMOTStyles>npm install --save-dev gulp-sass

><EMAIL_ADDRESS>install C:\workspace\CMOTStyles\node_modules\gulp-sass\node_modules\node-sass
> node scripts/install.js

Start downloading binary at https://github.com/sass/node-sass/releases/download/v3.9.0/win32-x64-48_binding.node
Cannot download "https://github.com/sass/node-sass/releases/download/v3.9.0/win32-x64-48_binding.node":

getaddrinfo ENOTFOUND github.com github.com:443

Hint: If github.com is not accessible in your location
      try setting a proxy via HTTP_PROXY, e.g.

      export HTTP_PROXY=http://example.com:1234

or configure npm proxy via

      npm config set proxy http://example.com:8080

><EMAIL_ADDRESS>postinstall C:\workspace\CMOTStyles\node_modules\gulp-sass\node_modules\node-sass
> node scripts/build.js

Building: C:\apps\nodejs\node.exe C:\workspace\CMOTStyles\node_modules\node-gyp\bin\node-gyp.js rebuild --verbose --libsass_ext= --libsass_cflags= --libsass_ldflags= --libsass_library=
gyp info it worked if it ends with ok
gyp verb cli [ 'C:\\apps\\nodejs\\node.exe',
gyp verb cli   'C:\\workspace\\CMOTStyles\\node_modules\\node-gyp\\bin\\node-gyp.js',
gyp verb cli   'rebuild',
gyp verb cli   '--verbose',
gyp verb cli   '--libsass_ext=',
gyp verb cli   '--libsass_cflags=',
gyp verb cli   '--libsass_ldflags=',
gyp verb cli   '--libsass_library=' ]
gyp info using<EMAIL_ADDRESS>gyp info using<EMAIL_ADDRESS>| win32 | x64
gyp verb command rebuild []
gyp verb command clean []
gyp verb clean removing "build" directory
gyp verb command configure []
gyp verb check python checking for Python executable "python2" in the PATH
gyp verb `which` failed Error: not found: python2
gyp verb `which` failed     at getNotFoundError (C:\workspace\CMOTStyles\node_modules\which\which.js:14:12)
gyp verb `which` failed     at F (C:\workspace\CMOTStyles\node_modules\which\which.js:69:19)
gyp verb `which` failed     at E (C:\workspace\CMOTStyles\node_modules\which\which.js:81:29)
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\which\which.js:90:16
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\isexe\index.js:44:5
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\isexe\windows.js:29:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:117:15)
gyp verb `which` failed  python2 { Error: not found: python2
gyp verb `which` failed     at getNotFoundError (C:\workspace\CMOTStyles\node_modules\which\which.js:14:12)
gyp verb `which` failed     at F (C:\workspace\CMOTStyles\node_modules\which\which.js:69:19)
gyp verb `which` failed     at E (C:\workspace\CMOTStyles\node_modules\which\which.js:81:29)
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\which\which.js:90:16
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\isexe\index.js:44:5
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\isexe\windows.js:29:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:117:15) code: 'ENOENT' }
gyp verb check python checking for Python executable "python" in the PATH
gyp verb `which` failed Error: not found: python
gyp verb `which` failed     at getNotFoundError (C:\workspace\CMOTStyles\node_modules\which\which.js:14:12)
gyp verb `which` failed     at F (C:\workspace\CMOTStyles\node_modules\which\which.js:69:19)
gyp verb `which` failed     at E (C:\workspace\CMOTStyles\node_modules\which\which.js:81:29)
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\which\which.js:90:16
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\isexe\index.js:44:5
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\isexe\windows.js:29:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:117:15)
gyp verb `which` failed  python { Error: not found: python
gyp verb `which` failed     at getNotFoundError (C:\workspace\CMOTStyles\node_modules\which\which.js:14:12)
gyp verb `which` failed     at F (C:\workspace\CMOTStyles\node_modules\which\which.js:69:19)
gyp verb `which` failed     at E (C:\workspace\CMOTStyles\node_modules\which\which.js:81:29)
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\which\which.js:90:16
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\isexe\index.js:44:5
gyp verb `which` failed     at C:\workspace\CMOTStyles\node_modules\isexe\windows.js:29:5
gyp verb `which` failed     at FSReqWrap.oncomplete (fs.js:117:15) code: 'ENOENT' }
gyp verb could not find "python". checking python launcher
gyp verb check python launcher python executable found: "C:\\Python27\\python.exe"
gyp verb check python version `C:\Python27\python.exe -c "import platform; print(platform.python_version());"` returned: "2.7.10\r\n"
gyp verb get node dir no --target version specified, falling back to host node version: 6.2.0
gyp verb command install [ '6.2.0' ]
gyp verb install input version string "6.2.0"
gyp verb install installing version: 6.2.0
gyp verb install --ensure was passed, so won't reinstall if already installed
gyp verb install version not already installed, continuing with install 6.2.0
gyp verb ensuring nodedir is created C:\Users\NBKA0O5\.node-gyp\6.2.0
gyp verb created nodedir C:\Users\NBKA0O5\.node-gyp\6.2.0
gyp http GET https://nodejs.org/download/release/v6.2.0/node-v6.2.0-headers.tar.gz
gyp WARN install got an error, rolling back install
gyp verb command remove [ '6.2.0' ]
gyp verb remove using node-gyp dir: C:\Users\NBKA0O5\.node-gyp
gyp verb remove removing target version: 6.2.0
gyp verb remove removing development files for version: 6.2.0
gyp ERR! configure error
gyp ERR! stack Error: This is most likely not a problem with node-gyp or the package itself and
gyp ERR! stack is related to network connectivity.  System Windows_NT 6.1.7601
gyp ERR! command "C:\\apps\\nodejs\\node.exe" "C:\\workspace\\CMOTStyles\\node_modules\\node-gyp\\bin\\node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd C:\workspace\CMOTStyles\node_modules\gulp-sass\node_modules\node-sass
gyp ERR! node -v v6.2.0
gyp ERR! node-gyp -v v3.4.0
gyp ERR! not ok
Build failed
npm WARN enoent ENOENT: no such file or directory, open 'C:\workspace\CMOTStyles\node_modules\node-sass\package.json'
npm WARN<EMAIL_ADDRESS>requires a peer of<EMAIL_ADDRESS>but none was installed.
npm WARN<EMAIL_ADDRESS>license should be a valid SPDX license expression
npm ERR! Windows_NT 6.1.7601
npm ERR! argv "C:\\apps\\nodejs\\node.exe" "C:\\Users\\NBKA0O5\\AppData\\Roaming\\npm\\node_modules\\npm\\bin\\npm-cli.js" "install" "--save-dev" "gulp-sass"
npm ERR! node v6.2.0
npm ERR! npm  v3.10.6
npm ERR! code ELIFECYCLE

npm ERR<EMAIL_ADDRESS>postinstall: `node scripts/build.js`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>postinstall script 'node scripts/build.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the node-sass package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node scripts/build.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs node-sass
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls node-sass
npm ERR! There is likely additional logging output above.

npm ERR! Please include the following file with any support request:
npm ERR!     C:\workspace\CMOTStyles\npm-debug.log

FYI, possible solution here: https://github.com/nodejs/node-gyp/issues/1020

Node sass downloads a prebuilt binary, which is being blocked by your firewall

getaddrinfo ENOTFOUND github.com github.com:443

When the download fails it tried to compile the binary locally. This require certain software to be installed like python and visual studio. This is failing because you don't have this software.

gyp verb check python checking for Python executable "python2" in the PATH
gyp verb which failed Error: not found: python2

Building these binaries is not easy which is why we build them for you to download. Node Sass offers some ENV variables that allow you to customise where these binaries are downloaded from. If you're behind a firewall we recommend mirroring the release binaries locally.

Is there a way to find out which specific thing it is trying to download - that way I can locally mirror only what is strictly needed.

Supposing I were to just manually download the Sass binary - is there a default location where I can just put it - without having to set an environment variable.

Unfortunately nor @salimfadhley. Our documentation shows a couple ways you can change the binary site parameter without an ENV variable.
https://github.com/sass/node-sass#binary-configuration-parameters

These parameters can be used as environment variable:

E.g. export SASS_BINARY_SITE=http://example.com/
As local or global .npmrc configuration file:

E.g. sass_binary_site=http://example.com/
As a process argument:

E.g. npm install node-sass --sass-binary-site=http://example.com/

Also not ENV vars can be scoped to a single command i.e.
SASS_BINARY_SITE=http://example.com/ npm install


build.toml

Hello, i tried this library with build.I have a question about the build.toml file.When i was building with sam-cli .aws-sam include build.toml file but i cant see with webpack plugin.Is it critical or not ?

The build.toml is used for storing sam-cli settings. It's not generated or used by this webpack plugin.

The build.toml is used for storing sam-cli settings. It's not generated or used by this webpack plugin.

Yes i know,just i am wondering is it crical for build process?

It's got nothing to do with the build process. It's for deploymnets


upgrade from 4.38-9670 to 5.02.5180, no l2tp/ipsec connection

Prerequisites

[ yes] Can you reproduce?
[ yes] Are you running the latest version of SoftEtherVPN?

SoftEther version: 5.02.5180
Component: [ubuntu 22.04, Android 12]
Operating system: [ubuntu 22.04, Android 12]
Architecture: [64 bit]
[In case it's a computer with known specs, such as the Raspberry Pi, you can specify it omitting the details.]
Processor: [ amd 3400g]
Description
[Description of the bug]
Expected behavior:
connecting -> connected ;-)
Actual behavior:
I just tried to update my vpn server to 5.02.
It also starts and the openvpn clients have automatically reconnected.
unfortunately there are problems with l2tp/ipsec, i can't connect either with ubuntu 22.04 or with android. There is no reasonable error message on the client side either
ubuntu client:
Dez 12 15:53:21 XPS-13-9360 NetworkManager[7008]: <info>  [1670856801.6619] manager: NetworkManager state is now CONNECTED_SITE
Dez 12 15:53:21 XPS-13-9360 NetworkManager[7008]: <info>  [1670856801.9376] manager: NetworkManager state is now CONNECTED_GLOBAL
Dez 12 15:54:57 XPS-13-9360 NetworkManager[7008]: <info>  [1670856897.1237] agent-manager: agent[bb6a35deaa4029f4,:1.100/org.gnome.Shell.NetworkAgent/1000]: agent registered
Dez 12 16:02:13 XPS-13-9360 NetworkManager[7008]: <info>  [1670857333.6805] vpn[0x55c5b8dea9e0,e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9,"badcloud"]: starting l2tp
Dez 12 16:02:13 XPS-13-9360 NetworkManager[7008]: <info>  [1670857333.6821] audit: op="connection-activate" uuid="e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9" name="badcloud" pid=10847 uid=1000 result="success"
Dez 12 16:02:13 XPS-13-9360 nm-l2tp-service[86443]: Check port 1701
Dez 12 16:02:13 XPS-13-9360 nm-l2tp-service[86443]: Can't bind to port 1701
Dez 12 16:02:13 XPS-13-9360 NetworkManager[86490]: Stopping strongSwan IPsec failed: starter is not running
Dez 12 16:02:15 XPS-13-9360 NetworkManager[86487]: Starting strongSwan 5.9.5 IPsec [starter]...
Dez 12 16:02:15 XPS-13-9360 NetworkManager[86487]: Loading config setup
Dez 12 16:02:15 XPS-13-9360 NetworkManager[86487]: Loading conn 'e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9'
Dez 12 16:02:15 XPS-13-9360 ipsec_starter[86487]: Starting strongSwan 5.9.5 IPsec [starter]...
Dez 12 16:02:15 XPS-13-9360 ipsec_starter[86487]: Loading config setup
Dez 12 16:02:15 XPS-13-9360 ipsec_starter[86487]: Loading conn 'e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9'
Dez 12 16:02:15 XPS-13-9360 ipsec_starter[86502]: Attempting to start charon...
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[DMN] Starting IKE charon daemon (strongSwan 5.9.5, Linux 5.15.0-56-generic, x86_64)
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[LIB] providers loaded by OpenSSL: legacy default
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[CFG] loading ca certificates from '/etc/ipsec.d/cacerts'
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[CFG] loading aa certificates from '/etc/ipsec.d/aacerts'
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[CFG] loading ocsp signer certificates from '/etc/ipsec.d/ocspcerts'
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[CFG] loading attribute certificates from '/etc/ipsec.d/acerts'
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[CFG] loading crls from '/etc/ipsec.d/crls'
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[CFG] loading secrets from '/etc/ipsec.secrets'
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[CFG] loading secrets from '/etc/ipsec.d/ipsec.nm-l2tp.secrets'
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[CFG]   loaded IKE secret for %any
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[LIB] loaded plugins: charon aesni aes rc2 sha2 sha1 md5 mgf1 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp agent xcbc hmac gcm drbg attr kernel-netlink resolve socket-default connmark stroke updown eap-mschapv2 xauth-generic counters
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[LIB] dropped capabilities, running as uid 0, gid 0
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 00[JOB] spawning 16 worker threads
Dez 12 16:02:15 XPS-13-9360 ipsec_starter[86502]: charon (86503) started after 20 ms
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 06[CFG] received stroke: add connection 'e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9'
Dez 12 16:02:15 XPS-13-9360 charon[86503]: 06[CFG] added configuration 'e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9'
Dez 12 16:02:16 XPS-13-9360 charon[86503]: 07[CFG] rereading secrets
Dez 12 16:02:16 XPS-13-9360 charon[86503]: 07[CFG] loading secrets from '/etc/ipsec.secrets'
Dez 12 16:02:16 XPS-13-9360 charon[86503]: 07[CFG] loading secrets from '/etc/ipsec.d/ipsec.nm-l2tp.secrets'
Dez 12 16:02:16 XPS-13-9360 charon[86503]: 07[CFG]   loaded IKE secret for %any
Dez 12 16:02:16 XPS-13-9360 charon[86503]: 09[CFG] received stroke: initiate 'e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9'
Dez 12 16:02:16 XPS-13-9360 charon[86503]: 11[IKE] initiating Main Mode IKE_SA e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9[1] to <IP_ADDRESS>
Dez 12 16:02:16 XPS-13-9360 charon[86503]: 11[IKE] initiating Main Mode IKE_SA e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9[1] to <IP_ADDRESS>
Dez 12 16:02:16 XPS-13-9360 charon[86503]: 11[ENC] generating ID_PROT request 0 [ SA V V V V V ]
Dez 12 16:02:16 XPS-13-9360 charon[86503]: 11[NET] sending packet: from <IP_ADDRESS>[500] to <IP_ADDRESS>[500] (532 bytes)
Dez 12 16:02:20 XPS-13-9360 charon[86503]: 13[IKE] sending retransmit 1 of request message ID 0, seq 1
Dez 12 16:02:20 XPS-13-9360 charon[86503]: 13[NET] sending packet: from <IP_ADDRESS>[500] to <IP_ADDRESS>[500] (532 bytes)
Dez 12 16:02:23 XPS-13-9360 NetworkManager[7008]: <warn>  [1670857343.8002] vpn[0x55c5b8dea9e0,e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9,"badcloud"]: failed to connect: 'Zeitüberschreitung wurde erreicht'
Dez 12 16:02:26 XPS-13-9360 NetworkManager[86624]: Stopping strongSwan IPsec...
Dez 12 16:02:26 XPS-13-9360 charon[86503]: 00[DMN] SIGINT received, shutting down
Dez 12 16:02:26 XPS-13-9360 charon[86503]: 00[IKE] destroying IKE_SA in state CONNECTING without notification
Dez 12 16:02:26 XPS-13-9360 NetworkManager[86533]: initiating Main Mode IKE_SA e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9[1] to <IP_ADDRESS>
Dez 12 16:02:26 XPS-13-9360 NetworkManager[86533]: generating ID_PROT request 0 [ SA V V V V V ]
Dez 12 16:02:26 XPS-13-9360 NetworkManager[86533]: sending packet: from <IP_ADDRESS>[500] to <IP_ADDRESS>[500] (532 bytes)
Dez 12 16:02:26 XPS-13-9360 NetworkManager[86533]: sending retransmit 1 of request message ID 0, seq 1
Dez 12 16:02:26 XPS-13-9360 NetworkManager[86533]: sending packet: from <IP_ADDRESS>[500] to <IP_ADDRESS>[500] (532 bytes)
Dez 12 16:02:26 XPS-13-9360 NetworkManager[86533]: destroying IKE_SA in state CONNECTING without notification
Dez 12 16:02:26 XPS-13-9360 NetworkManager[86533]: establishing connection 'e5814a0d-d5b8-4d8b-8994-3b87b6faa1e9' failed
Dez 12 16:02:26 XPS-13-9360 ipsec_starter[86502]: child 86503 (charon) has quit (exit code 0)
Dez 12 16:02:26 XPS-13-9360 ipsec_starter[86502]:
Dez 12 16:02:26 XPS-13-9360 ipsec_starter[86502]: charon stopped after 200 ms
Dez 12 16:02:26 XPS-13-9360 ipsec_starter[86502]: ipsec starter stopped
Dez 12 16:02:26 XPS-13-9360 nm-l2tp-service[86443]: g_dbus_method_invocation_take_error: assertion 'error != NULL' failed

server logs:
2022-12-12 15:02:16.921 IPsec Client 5 (<IP_ADDRESS>:500 -> :::500): A new IPsec client is created.
2022-12-12 15:02:16.921 IPsec IKE Session (IKE SA) 5 (Client: 5) (<IP_ADDRESS>:500 -> :::500): A new IKE SA (Main Mode) is created. Initiator Cookie: 0xC9A389C8E397698, Responder Cookie: 0x8CA034A0586F9CCB, DH Group: MODP 2048 (Group 14), Hash Algorithm: SHA-2-256, Cipher Algorithm: AES-CBC, Cipher Key Size: 256 bits, Lifetime:<PHONE_NUMBER> Kbytes or 10800 seconds
2022-12-12 15:02:20.912 IPsec Client 6 (<IP_ADDRESS>:500 -> :::500): A new IPsec client is created.
2022-12-12 15:02:20.912 IPsec IKE Session (IKE SA) 6 (Client: 6) (<IP_ADDRESS>:500 -> :::500): A new IKE SA (Main Mode) is created. Initiator Cookie: 0xC9A389C8E397698, Responder Cookie: 0xD2732EC36673F89C, DH Group: MODP 2048 (Group 14), Hash Algorithm: SHA-2-256, Cipher Algorithm: AES-CBC, Cipher Key Size: 256 bits, Lifetime:<PHONE_NUMBER> Kbytes or 10800 seconds
2022-12-12 15:02:26.921 IPsec IKE Session (IKE SA) 5 (Client: 5) (<IP_ADDRESS>:500 -> :::500): This IKE SA is deleted.
2022-12-12 15:02:26.921 IPsec Client 5 (<IP_ADDRESS>:500 -> :::500): This IPsec Client is deleted.
2022-12-12 15:02:30.914 IPsec IKE Session (IKE SA) 6 (Client: 6) (<IP_ADDRESS>:500 -> :::500): This IKE SA is deleted.
2022-12-12 15:02:30.914 IPsec Client 6 (<IP_ADDRESS>:500 -> :::500): This IPsec Client is deleted.

Steps to reproduce
i only updated softether, same config file
thanks for your help

Please build from the latest source and try again.

with the current master I can now connect to the android again ubuntu but still does not work

ok but it is still the same config as with the old version and there it works.

I know what's going on.  This bug is on the ubuntu side.
You must have checked EAP in PPP authentication methods and apparently ubuntu has wrong EAP implementation.
Instead of sending the VPN username as EAP identity, it sends the machine hostname to the server and caused the authentication to fail.
Disabling EAP solves the problem.
SoftEther 4.x version does not support EAP authentication and is not affected by this bug.
You should have posted the new log after building from latest SoftEther source. It would clearly show the issue is in authentication.


[INLONG-2333] Support clickhouse sink in sort-single-tenant

Title Name: [INLONG-XYZ][component] Title of the pull request
where XYZ should be replaced by the actual issue number.
Fixes #2333
Motivation
Explain here the context, and why you're making that change. What is the problem you're trying to solve.
Modifications
Describe the modifications you've done.
Verifying this change

[ ] Make sure that the change passes the CI checks.

(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
(or)
This change is already covered by existing tests, such as (please describe tests).
(or)
This change added tests and can be verified as follows:
(example:)

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

Documentation

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

@ifndef-SleePy


[QUERY] How to detect or sync the real-time Event Hub partition length from receiver SDK code

Library name and version
Azure.Messaging.EventHubs 5.6.2
Query/Question
In some certain circumstances while receiving events data from Event Hub partition, I will get following error which indicates
the mismatching of offset between supplied value (in the checkpointing file) and system value(current real length of EH partition)
The supplied offset '10000' is invalid. The last offset in the system is '5000'
As we known, Checkpointing is the responsibility of the consumer side and the checkpointing files will be generated and stored into associated Blob Storage Account generally by SDK code. Based on this method, I understand that we can pass the starting position(offset) parameter or read the offset from checkpointing file (code link)make sure that event data won't be duplicate per consumer group.
But if the event data in the partition is removed due to retention policy and the length of partition changes. For example, if the latest offset was updated as 10000 in the checkpointing file, but the current real length of this specific partition became 5000, so that consumer can't receive the data from 10000 index anymore.
How consumer side detect and sync this behavior and update the offset value in the checkpointing file accordingly?
If I have any misunderstanding regarding above information, please kindly correct me. Thanks a lot.
Environment
No response

Hi @gjjtip0926.  Thank you for reaching out.  The offset is not an index into the event stream, it's the physical location of it.  It is a stable value that should not change as events age out of the retention period.   If the event that the offset corresponds to ages out, that offset is no longer valid, causing the event processor to begin with the next available event in the stream.
If you're not using an event processor and are manually positioning a consumer, when you create your EventPosition, you have the option of passing isInclusive.  Setting this to false will opt you into the "read the next event in the stream after this offset" behavior.   If you'd prefer, you can also call GetPartitionPropertiesAsync from the consumer, producer, or receiver which will return information about the last enqueued offset.
I'd like to understand a bit more about your scenario, if you're willing.

Is that error one that you're seeing while using an event processor?
Are you manually managing checkpoints for one of the other consumers?  If so, can you share how you're initializing the consumer?
How old was the checkpoint data?
What is the retention period for the Event Hub configured to be?
Was the Event Hub deleted and recreated after the checkpoint was recorded?

Hello Jess Squire,
Thank you so much for your prompt reply.
You have the option of passing isInclusive. Setting this to false will opt you into the "read the next event in the stream after this offset" behavior.
Does that mean the EP SDK will set the isInclusive as false? If the retention causes the event been removed and offset invalid, it will read next event automatically even the specified offset is bigger than last event offset in partition.
The offset is not an index into the event stream, it's the physical location of it.
Let’s say if we have offset 1-10 in one partition. If the first event was removed due to retention policy, remaining 2-9 events, where will the new incoming event be inserted? The offset 1 or offset 11?
If it’s inserted into offset 1 and the offset 10 is logged in the current checkpointing file, will the new event be consumed by client side? If it’s inserted into offset 11, what about the offset 1? Will it be used still again?
Look forward to your update😊.
Best Regards,
Jay
From: Jesse Squire @.>
Sent: Wednesday, March 2, 2022 10:25 PM
To: Azure/azure-sdk-for-net @.>
Cc: Jay Gong @.>; Mention @.>
Subject: Re: [Azure/azure-sdk-for-net] [QUERY] How to detect or sync the real-time Event Hub partition length from receiver SDK code (Issue #27295)
Hi @gjjtip0926https://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fgjjtip0926&data=04|01|jaygong%40microsoft.com|d6783d87b49b4fe7dcf908d9fc587b9d|72f988bf86f141af91ab2d7cd011db47|1|0|637818279293985529|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=OF84W1LTVGn5oNetBalaHt7Kt2VSSjEzkxTqQQ2sG%2Bc%3D&reserved=0. Thank you for reaching out. The offset is not an index into the event stream, it's the physical location of it. It is a stable value that should not change as events age out of the retention period. If the event that the offset corresponds to ages out, that offset is no longer valid, causing the event processor to begin with the next available event in the stream.
If you're not using an event processor and are manually positioning a consumer, when you create your EventPositionhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fdotnet%2Fapi%2Fazure.messaging.eventhubs.consumer.eventposition.fromoffset%3Fview%3Dazure-dotnet%23azure-messaging-eventhubs-consumer-eventposition-fromoffset(system-int64-system-boolean)&data=04|01|jaygong%40microsoft.com|d6783d87b49b4fe7dcf908d9fc587b9d|72f988bf86f141af91ab2d7cd011db47|1|0|637818279293985529|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=GJ29ki80XRCcgl5VqbJcMP9o3vTC6F8S8geXMjMLZzs%3D&reserved=0, you have the option of passing isInclusive. Setting this to false will opt you into the "read the next event in the stream after this offset" behavior. If you'd prefer, you can also call GetPartitionPropertiesAsynchttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fdocs.microsoft.com%2Fdotnet%2Fapi%2Fazure.messaging.eventhubs.consumer.eventhubconsumerclient.getpartitionpropertiesasync%3Fview%3Dazure-dotnet%23azure-messaging-eventhubs-consumer-eventhubconsumerclient-getpartitionpropertiesasync(system-string-system-threading-cancellationtoken)&data=04|01|jaygong%40microsoft.com|d6783d87b49b4fe7dcf908d9fc587b9d|72f988bf86f141af91ab2d7cd011db47|1|0|637818279293985529|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=JYydnBWP9lqppEs1UkFx1%2BCVlEC9nQh6UgokEYzmM44%3D&reserved=0 from the consumer, producer, or receiver which will return information about the last enqueued offset.
I'd like to understand a bit more about your scenario, if you're willing.

Is that error one that you're seeing while using an event processor?
Are you manually managing checkpoints for one of the other consumers? If so, can you share how you're initializing the consumer?
How old was the checkpoint data?
What is the retention period for the Event Hub configured to be?
Was the Event Hub deleted and recreated after the checkpoint was recorded?

—
Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FAzure%2Fazure-sdk-for-net%2Fissues%2F27295%23issuecomment-1056987125&data=04|01|jaygong%40microsoft.com|d6783d87b49b4fe7dcf908d9fc587b9d|72f988bf86f141af91ab2d7cd011db47|1|0|637818279293985529|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=RgMRfoStNg25HM%2BHT1Pzyo3WpKDTVEO0TOGpB%2F8YqJg%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAXN5NHCQYGUTWPOLSWJMO5LU5525BANCNFSM5PWNSS7Q&data=04|01|jaygong%40microsoft.com|d6783d87b49b4fe7dcf908d9fc587b9d|72f988bf86f141af91ab2d7cd011db47|1|0|637818279293985529|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=JmfIAIA7yiG%2B9v28eXvL16FjpBpCSKovSshjxcFd1PI%3D&reserved=0.
Triage notifications on the go with GitHub Mobile for iOShttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fapps.apple.com%2Fapp%2Fapple-store%2Fid1477376905%3Fct%3Dnotification-email%26mt%3D8%26pt%3D524675&data=04|01|jaygong%40microsoft.com|d6783d87b49b4fe7dcf908d9fc587b9d|72f988bf86f141af91ab2d7cd011db47|1|0|637818279293985529|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=VsJ8Ckj2JB6NEu4a8xRKprXC8x3A%2FNRuxf4FcyIIyIc%3D&reserved=0 or Androidhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fplay.google.com%2Fstore%2Fapps%2Fdetails%3Fid%3Dcom.github.android%26referrer%3Dutm_campaign%253Dnotification-email%2526utm_medium%253Demail%2526utm_source%253Dgithub&data=04|01|jaygong%40microsoft.com|d6783d87b49b4fe7dcf908d9fc587b9d|72f988bf86f141af91ab2d7cd011db47|1|0|637818279293985529|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000&sdata=TuBZMACP%2FucAJQ5B54lYWhmWwPcijjyaHCG3nonYh3E%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>

Does that mean the EP SDK will set the isInclusive as false?

This depends on the client type that we're talking about.   In the case of an event processor, yes.

If the retention causes the event been removed and offset invalid, it will read next event automatically.

Yes, that is the expected behavior when setting isInclusive to false or when using an event processor.

Even the specified offset is bigger than last event offset in partition.

Offsets do not change by a predictable pattern and only the Event Hubs service can correctly interpret them.  Generally, if an offset is larger, then it was enqueued later than an event with a smaller offset - but that is not always the case because offsets will wrap around when they reach more than the maximum offset value.

Let’s say if we have offset 1-10 in one partition. If the first event was removed due to retention policy, remaining 2-9 events, where will the new incoming event be inserted? The offset 1 or offset 11?

Your scenario is flawed unless we define each event as a single byte.  Offsets are not contiguous; they are not an index into the stream.  At a high-level, they represent "the number of bytes that this location is offset from the first location in the partition."   That said, it's not quite as straightforward as that; the service maps and tracks the partition across a series of segments rather than one large space.
The point is that the event may have an arbitrary offset; there's no guaranteed pattern.  Generally, based on the current implementation, the new single-byte event would have an offset of 11 or greater.

what about the offset 1? Will it be used still again?

An offset will not be reused until it grows beyond the capacity of a 64-bit integer and wraps around.
If we assume every event that is published to the partition is exactly the maximum of 1MB, you will have to publish 8,796,093,022,207 events to experience a wrap-around.   Let's assume that you're using a dedicated Event Hubs cluster with no ingress limit and can publish 1,000 of those 1MB events per second, it will take you nearly 101,807 days to reach the overflow point where the offset would wrap.


Add support for .maps section

Describe the feature you'd like supported
Regarding the doc in progress at https://github.com/ebpffoundation/ebpf-docs/pull/4, Quentin wrote:

libbpf v1.0 (see dropping support for maps section in favour of .maps (Andrii's blog)

Proposed solution
Match libbpf 1.0
Additional context
cilium/ebpf seems to read both types (and also data sections), which seems reasonable behavior:
https://github.com/cilium/ebpf/blob/master/elf_reader.go#L125
Aya also seems to read both types:
https://github.com/aya-rs/aya/blob/main/aya/src/obj/mod.rs#L1024
redbpf (which unlike Aya is listed as Major) only supports "maps":
https://github.com/foniod/redbpf/blob/main/redbpf/src/lib.rs#L1544

@dthaler todo: file equivalent issues in ubpf and prevail repositories

Blocked on https://github.com/ebpffoundation/ebpf-docs/pull/4 documentation for .maps

Related to issue #900

Blocked on:

https://github.com/iovisor/ubpf/issues/130
https://github.com/vbpf/ebpf-verifier/issues/394

@Alan-Jowett assigning to you for now since it sounded like you were looking at this

@dthaler I believe this is complete now? There is no reason to block on ubpf supporting this as ubpf doesn't have map support in general.


fix chung2019 404

Hi @julian-risch !
Thanks for this great repository. Chung2019 returns a 404 for me and I fixed the URL.
Mathis

Thank you for your contribution! Much appreciated! 👍


SPARK-12729. PhantomReference to replace finalize in python broadcast…

What changes were proposed in this pull request?
Replace finalize() method in PythonBroadcast with Phantom Reference. Redesigned some portions of the code to better handle the thread to avoid thread leak. Fixed existing null pointer exceptions. Introduced a new thread class and a phantom reference class.
How was the this patch tested?
build/sbt "test-only org.apache.spark.api.python.*" - Passes all tests

Can one of the admins verify this patch?

@davies @zsxwing Can you please verify this patch?

Test build #2547 has started for PR 11257 at commit f0dc402.

Test build #2547 has finished for PR 11257 at commit f0dc402.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds no public classes.

@zsxwing  Most documentations on phantom reference i referred to suggests a separate daemon thread to do the cleanup. I can try adding the phantomreference removal from the queue in the same function without a thread. Would that work?

@zsxwing Most documentations on phantom reference suggests a separate daemon thread to do the cleanup. I can try adding the phantom reference removal from the queue in the same function without a thread. Would that work?

The problem is it will create one thread for each PythonBroadcast. If a task has hundreds of PythonBroadcasts, it will create hundreds of threads.

@zsxwing how about creating one thread and the reference queue would contain all instances of the file object that needs to be GC'ed? Start a global thread?

@zsxwing  Should i modify the code to use one thread?

@GayathriMurali actually, I'm not sure if it will work. E.g., you need to create a global thread, but when to stop that?

@zsxwing when the queue is empty? Add a listener to the queue to invoke or stop the thread accordingly?  Would this approach still make Phantom reference more beneficial than finalize()?

@zsxwing when the queue is empty? Add a listener to the queue to invoke or stop the thread accordingly? Would this approach still make Phantom reference more beneficial than finalize()?

Right. I'm thinking about it. Actually, it looks much more complicated than it was thought. Maybe let's just leave it until someone complaints the bad performance.

Why not use a finalizer? this is looking pretty complex with new threads and reference schemes otherwise

@srowen  The JIRA was created by @davies and the intent was to replace finalize() with Phantom Reference. http://resources.ej-technologies.com/jprofiler/help/doc/index.html

I think this is the wrong solution. finalize() should not do significant work unless something went wrong -- some expensive resource was not closed. Is that happening regularly? then I think that call site needs to be fixed. This pushes the problem somewhere else.

The finalize() here is to cleanup the disk file for Python broadcasts, is the regular path.
@srowen This change is requested by @rxin,  to avoid blocking operations in finalize().
Since the Python broadcasts are rarely used and exists() and delete() should be lightly system calls, I'm fine with current finalizer.

Another way to avoid blocking in finalize is to not do the work in the finalizer. It's as simple as making an idempotent "close" or "cleanup" method that does nothing if it has already been disposed. ... are these broadcasts not otherwise cleaned up?
To the extent they're rarely used, is this a problem?
My concern is that you're simply reimplementing a separate 'finalizer' queue with all the associated complexity.

The problem is blocking GC threads ...

Yes, I certainly understand that. finalize shouldn't do non-trivial work. Objects shouldn't require non-trivial cleanup, in general, when they hit the finalizer. This is typically a symptom of not cleaning up the object in normal execution paths. Why is that not possible?

Yea we could do that too. Actually explicit management is probably better, with a fallback to do implicit management so it is robust against mem leaks. That is provided somebody has the cycles to do it.

Thanks for the pull request. I'm going through a list of pull requests to cut them down since the sheer number is breaking some of the tooling we have. Due to lack of activity on this pull request, I'm going to push a commit to close it. Feel free to reopen it or create a new one. We can also continue the discussion on the JIRA ticket.


Failed to update UAA Service Provider configuration

We are running on CF v243 with UAA v3.7.3. Is there a known issue on UAA to update SP configuration with CF manifest?
The issue is CF deployment completed successfully but failed to update UAA SP configuration (serviceProviderKey, serviceProviderKeyPassword, serviceProviderCertificate) under /var/vcap/jobs/uaa/config/login.yml on UAA VMs.
Followed below link to override default UAA SP configuration - https://github.com/cloudfoundry/uaa/blob/69fc38968ecf6d0748acbfec7aac9ca32cf4ed3d/uaa/src/main/resources/required_configuration.yml to configure UAA SP. Following is an excerpt of the CF manifest.
cf.yml
...
properties:
  login:
    serviceProviderKey: |
      -----BEGIN RSA PRIVATE KEY-----
      <KEY_HERE>
      -----END RSA PRIVATE KEY-----
    serviceProviderKeyPassword: <PASSWORD_HER>
    serviceProviderCertificate: |
      -----BEGIN CERTIFICATE-----
      <CERT_HERE>
      -----END CERTIFICATE-----

Use correct namespace
https://github.com/cloudfoundry/uaa-release/blob/develop/jobs/uaa/spec#L647-L668


Track spawn pressure via queue

Use a queue of pairs (game.time, spawntime) to track spawn pressure. A pair would be enqueued whenever spawncreep returns OK. This queue would be stored in Cache. A Tmp variable for current pressure could be used to only calculate this value maximum once per tick. An update would involve pruning (dequeing) all old data off of the front of the queue and then summing all of the spawnTime values.
In the case of a global reset, we should be keeping track of last reset anyway. If last reset was less than 1500 (or whatever the length of the queue is) ticks ago, we multiply pressure by 1500/(Game.time - lastResetTime)

I actually improved on this by just recording spawntime in creep memory and occasionally summing spawntime of creeps born in the last "lifetime". This was implemented with great success in season 6 and is now on master as well


Make tracing imports lazy

This PR changes the import the tracing extensions and makes them lazy. This prevents having to have opentelemetry installed when wanting to use ApolloTracing
Closes #565
Closes #1753

/pre-release

Pre-release
:wave:
Releasing commit [47d3e1e058534b63672242b387eabb7be537c4a1] to PyPi as pre-release! :package:

Pre-release
:wave:
Pre-release 0.115.0.dev.1656535533 [47d3e1e058534b63672242b387eabb7be537c4a1] has been released on PyPi! :rocket:
You can try it by doing:
poetry add strawberry-graphql==0.115.0.dev.1656535533

/pre-release


environment and modules can be specified in execution_context and YAML

I modified @ohm314 first implementation so that settings in YAML completely overrides what was specified in Benchmark.execution_context, so that the user can completely takes over if needed.
What do you think @ohm314 ?

I see now I missed your comment on the top. I don't think that new semantic of completely replacing sections is intuitive. I wouldn't do this.

Coverage increased (+0.6%) to 85.925% when pulling ba0f7870e3921f52b188e216ce94827f1b42886c on enh/bench_modules into 7fed68a1cd58e5efecb809f842e48a70abf5c85c on master.

I have just updated to overriding mechanism of environment so that the
user is able to add, replace, or remove some of the variables set by the
benchmark itself.
But when it comes to modules, there is no easy way to given such control to
the user. Anyway, modules are specific to a cluster environment and should
not be specified inside a benchmark.
Tristan Carel
On Mon, May 28, 2018 at 9:29 AM, Omar Awile<EMAIL_ADDRESS>wrote:

I see now I missed your comment on the top. I don't think that new
semantic of completely replacing sections is intuitive. I wouldn't do this.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tristan0x/hpcbench/pull/185#issuecomment-392443845,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAWd-ysh9cOLTFSCVWrOjiFGU88hQjfGks5t26dpgaJpZM4UOLky
.


Does this library support playlist mp3

hi, does this library support playlist mp3 like this?

Hello. Currently, there is no single audio encapsulation. Later versions will take into account the audio package.

hi, i applicable to that. The flow is that, you just make custom layout control view. Inside control view, you put design below there and list out just put recycleview on top controller view below. Lastly, in programmatically, make control view always visible. The only things, latest current version exoplayer cannot support to get each timeline  as show in the picture (4.38). Hope, if anyone want to refer this as solution for their problem.

Oh I see, the duration is 4.35, not 4.35. Is my understanding right?

Oh I see, the duration is 4.35, not 04.35. Is my understanding right?

duration is hard cord because i still cannot how to find each timeline for mp3 list music. The developer said that they will enhanced but not know when they will update.

addUpdateProgressListener which from interface? is it from DefaultTimeBar?

the problem is that, before load all music file I create array list which contain music title and time(hardcord).  Then, i read list file directory music get name of files, url uri file list then concatenate media source. The problem current version 2.8.2 not applicable to get one by one time from file music that i extract from the directory.

Hello, recommend using content-provider to query your MP3 file information. doc
Cursor cursor = query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null, null, null, MediaStore.Audio.Media.DEFAULT_SORT_ORDER);

歌曲ID：MediaStore.Audio.Media._ID
Int id = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media._ID));

歌曲的名称：MediaStore.Audio.Media.TITLE
String tilte = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.TITLE));

歌曲的专辑名：MediaStore.Audio.Media.ALBUM
String album = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ALBUM));

：MediaStore.Audio.Media.ARTIST
String artist = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.ARTIST));

：MediaStore.Audio.Media.DATA
String url = cursor.getString(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DATA));

：MediaStore.Audio.Media.DURATION
Int duration = cursor.getInt(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.DURATION));

：MediaStore.Audio.Media.SIZE
Int size = cursor.getLong(cursor.getColumnIndexOrThrow(MediaStore.Audio.Media.SIZE));

so this cursor come from database server or ??

content-provider   get  content-provider Automatic reading of native database

owh so meaning that, i retrieve all data from server first then store in database instead of reading from native exoplayer list timeline to get duration of mp3.

Yes, exoplayer acquisition is just the duration of the current MP3 player. In my development experience, the duration of audio and video is provided by the duration interface or by the local database, not by the exoplayer player. More than consumption memory. The experience is bad.

ok note. but some suggest use this way
Timeline timeline = musicPlayer.getCurrentTimeline();         int currentWindowIndex = musicPlayer.getCurrentWindowIndex();         long currentPosition = musicPlayer.getCurrentPosition();         long totalTime = 0;         Timeline.Window tmpWindow = new Timeline.Window();         if (timeline != null) {             for (int i = 0; i < timeline.getWindowCount(); i++) {                 long windowDuration = timeline.getWindow(i, tmpWindow).getDurationMs();                 timeVideo.setText(String.format("%02d:%02d",                         TimeUnit.MILLISECONDS.toMinutes(currentPosition),                         TimeUnit.MILLISECONDS.toSeconds(currentPosition) -                                 TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(currentPosition))));                 //totalTime += windowDuration;                 //if (i < currentWindowIndex) {                   //  currentPosition += windowDuration;                 //}             }         }
However, timeline second mp3 is zero instead of to show one by one.


despike gives type error for samples=True

First of all, splendid work on the open source geoscience toolset. I am trying to characterise a local well, but am running into some troubles while trying to despike the caliper log. Any tips on how to solve it would be more than welcome.
See output below, if needed happy to supply a minimum working example. Even with samples=True, despike fails to despike the curve. Running welly version '0.4.2' and sys.version_info(major=3, minor=7, micro=1, releaselevel='final', serial=0).

TypeError                                 Traceback (most recent call last)
 in
----> 1 p.data['HGR_edited'] = p.data['HGR'].despike(window_length=5,samples=False, z=1)
2 p.data['HGR_edited']= p.data['HGR_edited'].to_basis(step=0.5)
3 p.data['HGR_edited']= p.data['HGR_edited'].smooth(window_length=10)
~\AppData\Local\Continuum\anaconda3\envs\rock\lib\site-packages\welly\curve.py in despike(self, window_length, samples, z)
806         window_length //= 1 if samples else self.step
807         z *= np.nanstd(self)  # Transform to curve's units
--> 808         curve_sm = self._rolling_window(window_length, np.median)
809         spikes = np.where(np.nan_to_num(self - curve_sm) > z)[0]
810         spukes = np.where(np.nan_to_num(curve_sm - self) > z)[0]
~\AppData\Local\Continuum\anaconda3\envs\rock\lib\site-packages\welly\curve.py in _rolling_window(self, window_length, func1d, step, return_rolled)
783         rolled = np.lib.stride_tricks.as_strided(data,
784                                                  shape=shape,
--> 785                                                  strides=strides)
786         result = np.apply_along_axis(func1d, -1, rolled)
787         result[np.isnan(self)] = np.nan
~\AppData\Local\Continuum\anaconda3\envs\rock\lib\site-packages\numpy\lib\stride_tricks.py in as_strided(x, shape, strides, subok, writeable)
101         interface['strides'] = tuple(strides)
102
--> 103     array = np.asarray(DummyArray(interface, base=x))
104     # The route via __interface__ does not preserve structured
105     # dtypes. Since dtype should remain unchanged, we set it explicitly.
~\AppData\Local\Continuum\anaconda3\envs\rock\lib\site-packages\numpy\core\numeric.py in asarray(a, dtype, order)
536
537     """
--> 538     return array(a, dtype, copy=False, order=order)
539
540
TypeError: 'numpy.float64' object cannot be interpreted as an integer

Hi Peter, thanks for this... I don't have an easy fix I'm afraid. I've never been very satisfied with the despike method on curves -- it seems to just clip spikes, not actually remove them. You might have more luck with a median filter (something like p.data['HGR_edited'].smooth(window_length=10, samples=True, func_1d=np.median). Often, the median will remove spikes, but still preserve 'edges' in the curve (unlike a mean smoother).
If that doesn't work, let me know... the other option is trying a convervative filter like this one in bruges: https://github.com/agile-geoscience/bruges/blob/master/bruges/filters/filters.py#L197-L239

Thanks for the help Matt, I had already given the median filter a try with decent results, and will definitely also look into what the bruges filters have to offer.


MComix: Restrict to 64-bit

It works only on 64-bit Windows.

[x] I have read the Contributing Guide.

/verify


Documentation for KeRundownQueue seems outdated wrt. currently waiting threads

The documentation for KeRundownQueue seems outdated. In the remarks, it says:

KeRundownQueue should never be called for a queue if any threads are waiting on the queue object.

This seems to be true up until Windows XP: on those platforms, KeRundownQueue doesn't appear to satisfy existing waits, potentially leaving threads waiting forever. However, at least since Windows 7, KeRundownQueue causes any calls to KeRemoveQueue to fail with STATUS_ABANDONED, as correctly documented in the page for KeRemoveQueue.

Hi @lorihollasch, assigning to you since this issue references https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/ntifs/nf-ntifs-kerundownqueue.

@MicheleCicciottiWork , great catch and you are absolutely right about the behavior change starting in Windows 7. I have updated the page accordingly. Thanks for filing an issue and for the additional useful info RE OS versions. Apologies for my slow response!


get host uuid

the host uuid get by pyvmomi api is:
In [54]: esxi_host.hardware.systemInfo.uuid
Out[54]: '16d67ccc-d67c-11e3-84ff-8edada343434'
while the command "esxcli system uuid get" output is:
566a465d-4498-62c0-51a2-3440b5c5cd68
They are not name, why?

The uuid in systemInfo is the hardware uuid rather than the system.
It should match up with "esxcli hardware platform get"
(I'm not sure at the moment where to gather the value of esxcli system uuid get with pyvmomi api)

The value of esxcli system uuid can be get using:
"esxcli system uuid get"


[flutter_adaptive_scaffold] Remove excessive body APIs.

Proposal

The AdaptiveScaffold APIs are unecessary. Consider the following fields in the AdaptiveScaffold constructor.
  const AdaptiveScaffold({
    // ...
    this.smallBody,
    this.body,
    this.largeBody,
    this.smallSecondaryBody,
    this.secondaryBody,
    this.largeSecondaryBody,
    this.bodyRatio,
    // ...
  });

There is nothing in the Material 3 Adaptive Spec that suggests that either the body or secondary body will adapt itself when the screen size changes, so why have a body and largeBody. The only place I can see this being useful is in the parameter's omission, not the supplementation.
The Scaffold itself should concern itself with global navigation elements, similar to that of the Scaffold API, but not local/detail elements that are inside the body. I believe that the original intent of the ${size}Body APIs to be configurable like a Canonical Layout, but I think that we should extract the implementation of a Canonical Layout into a separate widget.

Canonical Layouts are already a widget in the Microsoft dual screen package as the widget called TwoPane see:
https://pub.dev/packages/dual_screen
using it we write a screen based layout using the TwoPane api to handle two use cases:
-Foldable hinge devices
-non foldable devices
Also flutter adaptive scaffold with two bodies will never be integrated with the Flutter sponsored Gorouter plugins as GoRouter only takes one child in shell routes and other scaffold enabled routes.


not enough actual parameters for macro '__REFLEX_GET_MACRO_3'

I get this weird error in visual studio 2017 when I try to compile the examples

Hi,
Do you have a code example that triggered that error?
__REFLEX_GET_MACRO_3 is a macro used by REGISTER_CLASS_FUNCTIONS.
REGISTER_CLASS_FUNCTIONS can either be used for non-namespaced class methods REGISTER_CLASS_FUNCTIONS (ClassName, (fct1)(fct2)) or namespaced class methods REGISTER_CLASS_FUNCTIONS (Namespace, ClassName, (fct1)(fct2)).
If there are less than two parameters, then __REFLEX_GET_MACRO_3 will be called with an insufficient number of parameters and will fail.
Best,


vmsdk: add error handling for get_cc_report in go

Handle the case on corrupted generation in configfs-tsm

LGTM


SalesforceProxy-Endpoint not defined in header

I must be missing something simple.
I've implemented the bulk.page example in a sandbox without any modifications but I am getting a 400 response with the error "SalesforceProxy-Endpoint not defined in header" when attempting to create the job.
Any thoughts on what I forgot to do?  Thanks!

My bad - I fixed this, committed it (c3edd29) but forgot to push. Should work now!

Woot!  Working great now.
Thank you for working on this!

Hi,
I am trying to use your code in my sandbox but i am getting error
HTTP ERROR 400 Problem accessing /services/proxy. Reason:
Unable to forward request due to: Stream closed
Can you please help me resolve it?


You shouldn't do this in the class declaration:

You shouldn't do this in the class declaration:
Rec_Count = model.objects.all().count()
if Rec_Count > 500:
    length_menu = [[10, 25, 50, 100], [10, 25, 50, 100]]
else:
    length_menu = [[10, 25, 50, 100, -1], [10, 25, 50, 100, _("All")]]

since RecCount would be evaluated only once when the file is imported.
I would rather override get_length_menu as follows:
def get_length_menu(self):
    Rec_Count = model.objects.all().count()
    if Rec_Count > 500:
        length_menu = [[10, 25, 50, 100], [10, 25, 50, 100]]
    else:
        length_menu = [[10, 25, 50, 100, -1], [10, 25, 50, 100, _("All")]]
    return self.length_menu

Did you encounter other problems?
Originally posted by @morlandi in https://github.com/morlandi/django-ajax-datatable/issues/11#issuecomment-792516477

thank you for your reply it is useful,
But this did not solve my original point, which i would like to show the date range filter fields

it will be appreciated if you can assist me to resolve this issue


how to add 'datum' in tranasaction

Datum is  a form of json, but hashed and assigned to an UTXO
I want to add 'datum' in transaction.
in Cardano, the datum hash needs to be attached to a UTXO at a script address.
Thanks

Datum is a data that is consumed by smart contract when 'locking' event happens...I am not able to find how to implement this.
'locking' happens when we  send a transaction to the smart contract address.