JSON Integers cannot be negative?

Hello,
I'm wondering if there is a particular reason why it seems JSON integers cannot be negative.
See:
https://github.com/outlines-dev/outlines/blob/aed9d21bb622e3579c3296a73a0240e36d04180d/outlines/fsm/json_schema.py#L14
"No negatives" seems to be explicitly tested for:
https://github.com/outlines-dev/outlines/blob/aed9d21bb622e3579c3296a73a0240e36d04180d/tests/fsm/test_json_schema.py#L65
This seems incorrect to me, but maybe I'm missing something.

This is indeed wrong. Would you be willing to submit a PR?


error Couldn't find the binary git

main.yml:

name: Tests

# Controls when the action will run.  Installing modules...
## Running Jest
error Couldn't find the binary git

Not sure if this is related to your action or something I've setup wrong. Any help would be appreciated.

Hey @emiliokyp
I've tried using your main.yml on a dummy project and it worked ok. You can check it here: https://github.com/stefanoeb/github-actions-app/pull/12
However, it seems like it's trying to use a git binary where it should be only installing modules. Out of curiosity, does any of your modules are installed via git? If so, are they private (using ssh?)
Thanks for reporting this

I'm having the same problem and, yes, one of my dependencies is installed from a public GitHub repo, not from npm, so that makes sense. Is there a solution for this case?

@eduter @emiliokyp I've added git + openssh to the base docker image on this action.
This is already available under the 1.0.3 version (update your workflow to use uses<EMAIL_ADDRESS>


[WIP] Make Keras model

Create a model for RNN CTC using Keras.
Note: Use of Keras save functionality will greatly help in saving and restoring models.

If I remember correctly there were some blockers about representing LSTMs in Keras previously but that seems to be resolved now, perhaps this task is now easier than it was before.


comma: init at 1.1.0

Motivation for this change
Fixes https://github.com/nix-community/comma/issues/2
Things done

Built on platform(s)

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

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

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

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

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

[x] Fits CONTRIBUTING.md.

@GrahamcOfBorg build comma

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/prs-ready-for-review/3032/663

Just fixed the maintainers variable

Dependency nix-index doesn't build on aarch64-darwin, any @NixOS/darwin-maintainers aware of this?

Dependency nix-index doesn't build on aarch64-darwin, any @NixOS/darwin-maintainers aware of this?

nix-index hasn't had a stable release since 2018 - this PR https://github.com/NixOS/nixpkgs/pull/153229 updates nix-index to unstable to support aarch64-darwin build

Result of nixpkgs-review pr 150431 run on x86_64-darwin 1

1 package built:

comma

Thanks. Any objections for merging this? Should we wait for #153229?


I still get this error even after update 'Warning: a promise was created in a handler but was not returned from it'

(This issue tracker is only for bug reports or feature requests, if this is neither, please choose appropriate channel from http://bluebirdjs.com/docs/support.html)
Please answer the questions the best you can:

What version of bluebird is the issue happening on?
3.3.4
What platform and version? (For example Node.js 0.12 or Google Chrome 32)
Node 5.7.1 / Docker Node
Did this issue happen with earlier version of bluebird?
Yes
(Write description of your issue here, stack traces from errors and code that reproduces the issue are helpful)

I get this error when i do something like
promise.resolve(result).then(function(result){
			var _code = ( result && result.code ) || response_status.internal_success;
			return response.status(_code).json( ( result && result.response ) || result || []);
		}).catch(function(result){
			var _code = ( result && result.code ) || response_status.internal_error;
			return !response.headersSent ? response.status(_code).send(get_error_message(_code)) : get_error_message(_code);
		});

and even a return before the promise.resolve gives me nothing
Stack trace
api_1             | [ Nodemon ][ Error ] Warning: a promise was created in a handler but was not returned from it
api_1             |     at Object.__default__ (/var/app/current/api/common/utils/api_response_handler.js:181:18)
api_1             |     at Object.exports.switch_case (/var/app/current/api/common/utils/utils.js:77:51)
api_1             |     at Seneca.<anonymous> (/var/app/current/api/common/utils/api_response_handler.js:215:17)
api_1             |     at act_done (/var/app/current/api/node_modules/seneca/seneca.js:1220:21)
api_1             |     at /var/app/current/api/node_modules/gate-executor/gate-executor.js:155:20
api_1             |     at /var/app/current/api/common/utils/api_response_handler.js:262:12
api_1             |     at processImmediate [as _immediateCallback] (timers.js:383:17)
api_1             | From previous event:
api_1             |     at Object.__default__ (/var/app/current/api/common/utils/api_response_handler.js:257:27)
api_1             |     at Object.exports.switch_case (/var/app/current/api/common/utils/utils.js:77:51)
api_1             |     at null.callback (/var/app/current/api/common/utils/api_response_handler.js:322:18)
api_1             |     at Query.handleReadyForQuery (/var/app/current/api/node_modules/pg/lib/query.js:89:10)
api_1             |     at null.<anonymous> (/var/app/current/api/node_modules/pg/lib/client.js:163:19)
api_1             |     at emitOne (events.js:95:20)
api_1             |     at emit (events.js:182:7)
api_1             |     at Socket.<anonymous> (/var/app/current/api/node_modules/pg/lib/connection.js:109:12)
api_1             |     at emitOne (events.js:90:13)
api_1             |     at Socket.emit (events.js:182:7)
api_1             |     at readableAddChunk (_stream_readable.js:153:18)
api_1             |     at Socket.Readable.push (_stream_readable.js:111:10)
api_1             |     at TCP.onread (net.js:529:20)

what ia default

function() {

		var return_code = { code: response_status.internal_success, message: 'Successful' };

		if(error) {
			console.error(addTimestamp(), '** HTTP RESPONSE ERROR - within function', calling_function, '|', error.code, ':', utils.get_error(error), '\n');
			return_code = { code: response_status.internal_error, message: utils.get_error(error) };
			return seneca_done( null, { status: return_code, result: null } );
		}

		if (_.isFunction(__callback__)) {
			result = __callback__(result, model_version) || result;
		}

		if(result && (result.__continue__) ) {
			return;
		}

		promise.resolve(result).then(function(result){
			if(result && (result.__empty__ || result.__continue__) ) {
				var _code = result.code || response_status.internal_success;
				return_code = { code: _code, message: result.message || 'No Records Found.' };
				return seneca_done( null, _.merge({ status: return_code, result: result.response || null }, result.http_response || {}));
			}

			if(!result || !result.rows || !_.size(result.rows)) {
				return_code = { code: response_status.internal_error, message: 'HTTP endpoint returned no results' };
				console.error(addTimestamp(), '** HTTP RESPONSE ERROR - HTTP endpoint returned no results - within function', calling_function, '\n');
			}

			return seneca_done(null, { status: return_code, result: ( result && result.rows ) || result });
		}).catch(function(error){
			return_code = { code: response_status.internal_error, message: 'Unknown error occured ' + ( error && error.message ) || error };
			console.error(addTimestamp(), '** HTTP RESPONSE ERROR - unknown error occured - within function', calling_function, ( error && error.message ) || error, '\n');
			return seneca_done(null, { status: return_code, result: null });
		});
	};

I have tried returning the promise.resolve in default but same error

I have returned every promise.resolve to see if that is the issue but it has seemed to not change anything... could a timer i have be an issue in this
exports.log_seneca_request = function(level, args, return_code, procedure_name, calling_function, execution_time, result, error, error_code) {

	promise.resolve(true).then(function() {

		var seneca_identifier = _.filter(
			[ ].concat(
				[ args['action'], args['attribute'], args['data'] ],
				[ args['for'], args['from'], args['with'], args['via'], args['by'], args['as'] ]
			), function(value){ return !!value; }
		).join('-');

		if(args.data === 'logging') { return; }

		return seneca_identifier;

	}).then(function(seneca_identifier){
		if(!seneca_identifier) { return; }
		process.nextTick(function(){
			global.logger[level || 'info']('Seneca Request Log', {
				seneca_function: 'log_seneca_request',
				seneca_data: {
					seneca_identifier: seneca_identifier,
					calling_function: calling_function,
					procedure_name: procedure_name,
					execution_time: execution_time,
					return_code: return_code,
					error_code: error_code,
					result: result,
					error: error
				}
			});
		});
	}).catch(function(error){
		return console.error('** API LOG ERROR ** - Error Logging Seneca Request:', ( error && error.message ) || error);
	});
};

You need to return the promise from __default__, additionaly the caller needs to returned the returned promise to its caller and so on. It is likely that you have an actual bug if you see this warning in 3.3.4.

I have now returned all promises within the full file and yet same thing
https://gist.github.com/devotox/809ea6d9711d1f330091
I have pasted the full file and error there as i cannot see anywhere else to return from

If it is too long to look at i can cut out the pieces i think is relevant ... but everywhere there is a promise.resolve i have made sure to return it

Is the seneca.js framework promise-aware? If you are calling seneca from a promise handler and seneca calls your functions that returns promises but doesn't return them to the original call, then that would explain it.

No highly doubt it is. What would be the best way to go about fixing this so it doesnt care about the seneca framework

You can disable the warning with Promise.config or environment variable BLUEBIRD_W_FORGOTTEN_RETURN=0

Thank you will do


Not able to sign in using the latest Google OAuth provider

Description:
OAuth SignIn doesn't work with the latest Google OAuth process. Now the iOS/Android OAuth clients don't provide the Client Secret without which the library does not successfully fetch the token. If we use Web client instead during registration on Google API console we cannot set the custom callback URI.(Even if we do it throws error during sign in process). Your demo example is outdated and shows a different http schemed redirect URI. Please let me know if I'm missing something.
URL received on app delegate:
<app.bundle.id>:/oauth2redirect?code=4/2O3vlmmgWeJWUrrFSK3ygp3JtN5ioNb7LvHiYJYU&authuser=0&session_state=4d9f34f683268c9198ca81fe302031c1a212784d..70a8&prompt=consent#
Error received:
OAuthSwiftError error -3
OAuth Provider:
Google
OAuth Version:

[ ] Version 1
[x] Version 2

OS (Please fill the version) :

[x] iOS :
[ ] OSX :
[ ] TVOS :
[ ] WatchOS  :

Installation method:

[ ] Carthage
[x] CocoaPods
[ ] Manually

Library version:

[x] head
[ ] v1.2 (Swift 4.0)
[ ] v1.0.0
[ ] v0.6
[ ] other: (Please fill in the version you are using.)

Xcode version:

[x] 9.0 (Swift 4.0)

[ ] 9.0 (Swift 3.2)

[ ] 8.x (Swift 3.x)

[ ] 8.0 (Swift 2.3)

[ ] 7.3.1

[ ] other: (Please fill in the version you are using.)

[ ] objective c

error -3 maybe oauthswift.allowMissingStateCheck = true could help

Thanks that helped!
As for the OAuthSwiftURLHandlerType I'm using the built-in SafariURLHandler but how can I get notified if the user cancels the authorization process by pressing Done in the consent screen.
Is it possible to return back this action in the form of failure callback event while requesting authorization? Something like failure?(OAuthSwiftError.cancelled)?
The problem is I'm handling OAuth related functions in a non NSObject class and I cant implement the SFSafariViewControllerDelegate (I see I can set this delegate to SafariURLHandler.#delegate) to be notified about user dismissal actions.

@mervyn777 do not hesitate to PR if you need add open to some functions


Activation Url should be a component setting or activation should be it's own component.

I'm trying to put my login/signup forms within a modal, and thus the account component is attached to my main layout to make it available on all pages. This causes issues with the way activations work, since it assumes the activation url is whatever url the registration happened on. This means the email link generated is always wrong. If the activation url was a parameter of the Account component, I could create a separate page for activation and point the component to that.
Alternatively, activation could be broken out into it's own component since the Account component already performs quite a few functions.

same problem!

+1
I just wrote about the same thing in #193

Closing as it has been over a month since any activity on this occurred.


Fixes #1918 - Added docs for image/icon settings & paths

Summary of the Pull Request
Added docs re. Icon and background images. Also added note that Terminal-specified icon URIs should not relied upon and are considered internal implementation detail.

Described URI Schemes & their use
Added guidance re. background images
Added notes re. icons (inc. sizing)
Added example JSON & screenshot of background & icon

PR Checklist

[X] Closes #1918
[X] CLA signed. If not, go over here and sign the CLA
[ ] Tests added/passed
[ ] Requires documentation to be updated
[ ] I've discussed this with core contributors already. If not checked, I'm ready to accept this work might be rejected in favor of a different grand plan. Issue number where discussion took place: #xxx

Still reckon you don’t need to be proscriptive and say that the images can be PNG, GIF or JPG. They can be any taster format, and ICO is popular with people migrating from old shortcuts to the new profile system. Know what I mean?


portfolio mobile set up

Hi,
Added linters.
Added html file.
Styled the nav bar and heading section in the header element.
updated the REAME.md
Thank you for reviewing my pull request.

Mostly welcome 🙏
@glorymugizi now you can request for another code review


Issue/5884 improve logging regarding resource sets

Description
Improve error reporting when attempting to move a resource to another resource set in a partial compile.
closes #5884
Self Check:
Strike through any lines that are not applicable (~~line~~) then check the box

[ ] Attached issue to pull request
[ ] Changelog entry
[ ] Type annotations are present
[ ] Code is clear and sufficiently documented
[ ] No (preventable) type errors (check using make mypy or make mypy-diff)
[ ] Sufficient test cases (reproduces the bug/tests the requested feature)
[ ] Correct, in line with design
[ ] End user documentation is included or an issue is created for end-user documentation (add ref to issue here: )
[ ] If this PR fixes a race condition in the test suite, also push the fix to the relevant stable branche(s) (see test-fixes for more info)

Processing this pull request

Processing #6102.


stdenv/platform-notes: convert to markdown

Motivation for this change
Part of RFC 72.
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[ ] Fits CONTRIBUTING.md.

This pull request has been mentioned on NixOS Discourse. There might be relevant details there:
https://discourse.nixos.org/t/happy-docsgiving/10214/24

Thanks.


Unable to download data from Amazon AWS server

Hi,
I was looking to download the NinaPro and DarcyFlow datasets for my NAS experiments but am receiving HTTP request sent, awaiting response... 403 Forbidden when I try wget https://pde-xd.s3.amazonaws.com/piececonst_r421_N1024_smooth1.mat. Is there something I'm missing in order to download the data?
Hrushi

Hi Hrushi, we are in the process of changing the dataset's hosting so AWS might be temporarily unavailable. In the meantime, please use the datasets hosted on the shared drive here: https://drive.google.com/drive/folders/1OOp6UrCiP79mTIkCrUdjjHWDo8K0bJUw.
You should be able to find the files for NinaPro and Darcyflow in their corresponding folders. Best of luck with your experiments.
Renbo


docs(guided remediation): document override strategy for Maven remediation

WIP
Currently at rendered at https://michaelkedar.github.io/osv-scanner/experimental/guided-remediation/

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 66.27%. Comparing base (0ecee7c) to head (6a0a2f7).

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #1181      +/-   ##
==========================================
+ Coverage   65.79%   66.27%   +0.48%
==========================================
  Files         165      165
  Lines       13915    10784    -3131
==========================================
- Hits         9155     7147    -2008
+ Misses       4257     3131    -1126
- Partials      503      506       +3

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


add a command to edit existing worklogs

This should resolve #45
The workaround to changing the associated issue is to delete the existing worklog and create a new one with the given configuration.

@MiSikora Formatting issues can be fixed automatically with running npm run lint.

@Vivec1990 Are you going to finish implementing this or should I close this PR?

I am closing this due to a lack of activity.


pkg/profile: Use buffer pools to reduce allocs

Not a seasoned Go programmer, so let me know what you think about replacingsync.Pool with something that's perhaps simpler and clearer: directly preallocating a buffer and resetting it before using it. Something like this pseudocode:
buf := make([]byte, 0, 4)
unwindTable := bytes.NewBuffer(buf)

func updateTable() {
  unwindTable.Reset() # reset slice, reusing the underlying memory buffer
  # do work involving `unwindTable`
}

The explicitness of this code is a bit easier to read I think and might make it potentially harder to introduce potential correctness issues.

This always allocated a new byte slice. The idea behind the sync.Pool + bytes.Buffer is to prevent allocation of the byte slice and reuse existing. Or did you mean to propose to use a single global (package level) byte slice and re-use it every time?

Yeah, exactly that!

I can't find the constant that you're talking about, how much memory would we be talking about?

Hi!, thank you for the feedback!
I was looking for a low hanging fruit within parca-agent repository even though there are bigger wins in its dependencies (I skimmed code of github.com/godbus/dbus).

go tool pprof dist/parca-agent allocs.pprof
(pprof) top10 -cum
Showing nodes accounting for 1685.42MB, 33.25% of 5069.28MB total
Dropped 331 nodes (cum <= 25.35MB)
Showing top 10 nodes out of 79
      flat  flat%   sum%        cum   cum%
         0     0%     0%  2718.46MB 53.63%  github.com/oklog/run.(*Group).Run.func1
         0     0%     0%  2718.46MB 53.63%  runtime/pprof.Do
    0.50MB 0.0099% 0.0099%  2717.96MB 53.62%  github.com/parca-dev/parca-agent/pkg/profiler/cpu.(*CPU).Run
         0     0% 0.0099%  2717.96MB 53.62%  main.run.func6
         0     0% 0.0099%  2717.96MB 53.62%  main.run.func6.1
    0.50MB 0.0099%  0.02%  2051.43MB 40.47%  github.com/parca-dev/parca-agent/pkg/profiler.(*RemoteProfileWriter).Write
         0     0%  0.02%  2045.43MB 40.35%  github.com/google/pprof/profile.(*Profile).Write
         0     0%  0.02%  2032.64MB 40.10%  compress/gzip.(*Writer).Write
 1684.42MB 33.23% 33.25%  2032.14MB 40.09%  compress/flate.NewWriter
         0     0% 33.25%  1369.66MB 27.02%  github.com/godbus/dbus/v5.(*Conn).inWorker

So I checked cpu.(*CPU).Run which led me to profiler.(*RemoteProfileWriter).Write.

go tool pprof -source_path=github.com/parca-dev/parca-agent/ dist/parca-agent allocs.pprof
ROUTINE ======================== github.com/parca-dev/parca-agent/pkg/profiler/cpu.(*CPU).Run in pkg/profiler/cpu/cpu.go
  512.12kB     2.65GB (flat, cum) 53.62% of Total
         .          .    320:			return ctx.Err()
         .          .    321:		case <-ticker.C:
         .          .    322:		}
         .          .    323:
         .          .    324:		obtainStart := time.Now()
         .   134.73MB    325:		profiles, err := p.obtainProfiles(ctx)
         .          .    326:		if err != nil {
         .          .    327:			p.metrics.obtainAttempts.WithLabelValues("error").Inc()
         .          .    328:			level.Warn(p.logger).Log("msg", "failed to obtain profiles from eBPF maps", "err", err)
         .          .    329:			continue
         .          .    330:		}
         .          .    331:		p.metrics.obtainAttempts.WithLabelValues("success").Inc()
         .          .    332:		p.metrics.obtainDuration.Observe(time.Since(obtainStart).Seconds())
         .          .    333:
         .          .    334:		processLastErrors := map[int]error{}
         .          .    335:
         .          .    336:		for _, prof := range profiles {
         .          .    337:			start := time.Now()
         .          .    338:			processLastErrors[int(prof.ID.PID)] = nil
         .          .    339:
         .    13.96MB    340:			if err := p.symbolizer.Symbolize(prof); err != nil {
         .          .    341:				// This could be a partial symbolization, so we still want to send the profile.
         .          .    342:				level.Debug(p.logger).Log("msg", "failed to symbolize profile", "pid", prof.ID.PID, "err", err)
         .          .    343:				processLastErrors[int(prof.ID.PID)] = err
         .          .    344:			}
         .          .    345:
         .          .    346:			// ConvertToPprof can combine multiple profiles into a single profile,
         .          .    347:			// however right now we chose to send each profile separately.
         .          .    348:			// This is not too inefficient as we batch the profiles in a single RPC message,
         .          .    349:			// using the batch profiler writer.
         .     2.50MB    350:			pprof, err := profiler.ConvertToPprof(p.LastProfileStartedAt(), prof)
         .          .    351:			if err != nil {
         .          .    352:				level.Warn(p.logger).Log("msg", "failed to convert profile to pprof", "pid", prof.ID.PID, "err", err)
         .          .    353:				processLastErrors[int(prof.ID.PID)] = err
         .          .    354:				continue
         .          .    355:			}
         .          .    356:
         .    98.15MB    357:			labelSet := p.labelsManager.LabelSet(p.Name(), uint64(prof.ID.PID))
         .          .    358:			if labelSet == nil {
         .          .    359:				level.Debug(p.logger).Log("msg", "profile dropped", "pid", prof.ID.PID)
         .          .    360:				continue
         .          .    361:			}
         .          .    362:
         .          .    363:			p.metrics.symbolizeDuration.Observe(time.Since(start).Seconds())
         .          .    364:
         .        2GB    365:			if err := p.profileWriter.Write(ctx, labelSet, pprof); err != nil {
         .          .    366:				level.Warn(p.logger).Log("msg", "failed to write profile", "pid", prof.ID.PID, "err", err)
         .          .    367:				processLastErrors[int(prof.ID.PID)] = err
         .          .    368:				continue
         .          .    369:			}
         .          .    370:			if p.debuginfoManager != nil {
         .   512.12kB    371:				maps := p.processMappings.MapsForPID(int(prof.ID.PID))
         .          .    372:				var objFiles []*objectfile.MappedObjectFile
         .          .    373:				for _, mf := range maps {
         .   416.19MB    374:					objFile, err := p.objFileCache.ObjectFileForProcess(mf.PID, mf.Mapping)
         .          .    375:					if err != nil {
         .          .    376:						processLastErrors[int(prof.ID.PID)] = err
         .          .    377:						continue
         .          .    378:					}
  512.12kB   512.12kB    379:					objFiles = append(objFiles, objFile)
         .          .    380:				}
         .          .    381:				// Upload debug information of the discovered object files.
         .          .    382:				p.debuginfoManager.EnsureUploaded(ctx, objFiles)
         .          .    383:			}
         .          .    384:		}
ROUTINE ======================== github.com/parca-dev/parca-agent/pkg/profiler.(*RemoteProfileWriter).Write in pkg/profiler/profile_writer.go
  512.03kB        2GB (flat, cum) 40.47% of Total
         .          .     67:	}
         .          .     68:}
         .          .     69:
         .          .     70:// Write sends the profile using the designated write client.
         .          .     71:func (rw *RemoteProfileWriter) Write(ctx context.Context, labels model.LabelSet, prof *profile.Profile) error {
         .   512.02kB     72:	buf := bytes.NewBuffer(nil)
         .        2GB     73:	if err := prof.Write(buf); err != nil {
         .          .     74:		return err
         .          .     75:	}
         .          .     76:
         .   512.02kB     77:	_, err := rw.profileStoreClient.WriteRaw(ctx, &profilestorepb.WriteRawRequest{
         .          .     78:		Normalized: true,
         .          .     79:		Series: []*profilestorepb.RawProfileSeries{{
         .     4.50MB     80:			Labels: &profilestorepb.LabelSet{Labels: convertLabels(labels)},
  512.03kB   512.03kB     81:			Samples: []*profilestorepb.RawSample{{
         .          .     82:				RawProfile: buf.Bytes(),
         .          .     83:			}},
         .          .     84:		}},
         .          .     85:	})

Most allocations happen in profile.(*Profile).Write:

_, err := zw.Write(serialize(p))
z.compressor, _ = flate.NewWriter(z.w, z.level)

For some reason pprof doesn't reuse gzip.Writer and creates a new one each time zw := gzip.NewWriter(w).
So gzip package has to allocate a new compressor instead of calling compressor.Reset(w).
For the start I was thinking to reuse parca-agent buffers even though that would be just a tiny improvement in allocs.

go tool pprof -source_path=/home/vagrant/go/pkg/mod/ dist/parca-agent allocs.pprof
(pprof) list Write
ROUTINE ======================== github.com/google/pprof/profile.(*Profile).Write in<EMAIL_ADDRESS>         0        2GB (flat, cum) 40.35% of Total
         .          .    323:	return b
         .          .    324:}
         .          .    325:
         .          .    326:// Write writes the profile as a gzip-compressed marshaled protobuf.
         .          .    327:func (p *Profile) Write(w io.Writer) error {
         .        1MB    328:	zw := gzip.NewWriter(w)
         .          .    329:	defer zw.Close()
         .     1.98GB    330:	_, err := zw.Write(serialize(p))
         .    20.04MB    331:	return err
         .          .    332:}
         .          .    333:
         .          .    334:// WriteUncompressed writes the profile as a marshaled protobuf.
         .          .    335:func (p *Profile) WriteUncompressed(w io.Writer) error {
         .          .    336:	_, err := w.Write(serialize(p))

go tool pprof -source_path=/snap/go/current/src/ dist/parca-agent allocs.pprof
ROUTINE ======================== compress/gzip.(*Writer).Write in compress/gzip/gzip.go
         0     1.98GB (flat, cum) 40.10% of Total
         .          .    163:			z.buf[8] = 2
         .          .    164:		} else if z.level == BestSpeed {
         .          .    165:			z.buf[8] = 4
         .          .    166:		}
         .          .    167:		z.buf[9] = z.OS
         .   512.03kB    168:		_, z.err = z.w.Write(z.buf[:10])
         .          .    169:		if z.err != nil {
         .          .    170:			return 0, z.err
         .          .    171:		}
         .          .    172:		if z.Extra != nil {
         .          .    173:			z.err = z.writeBytes(z.Extra)
         .          .    174:			if z.err != nil {
         .          .    175:				return 0, z.err
         .          .    176:			}
         .          .    177:		}
         .          .    178:		if z.Name != "" {
         .          .    179:			z.err = z.writeString(z.Name)
         .          .    180:			if z.err != nil {
         .          .    181:				return 0, z.err
         .          .    182:			}
         .          .    183:		}
         .          .    184:		if z.Comment != "" {
         .          .    185:			z.err = z.writeString(z.Comment)
         .          .    186:			if z.err != nil {
         .          .    187:				return 0, z.err
         .          .    188:			}
         .          .    189:		}
         .          .    190:		if z.compressor == nil {
         .     1.98GB    191:			z.compressor, _ = flate.NewWriter(z.w, z.level)
         .          .    192:		}
         .          .    193:	}
         .          .    194:	z.size += uint32(len(p))
         .          .    195:	z.digest = crc32.Update(z.digest, crc32.IEEETable, p)
         .          .    196:	n, z.err = z.compressor.Write(p)
ROUTINE ======================== compress/flate.NewWriter in compress/flate/deflate.go
    1.64GB     1.98GB (flat, cum) 40.09% of Total
         .          .    665:// compression efficiency.
         .          .    666://
         .          .    667:// If level is in the range [-2, 9] then the error returned will be nil.
         .          .    668:// Otherwise the error returned will be non-nil.
         .          .    669:func NewWriter(w io.Writer, level int) (*Writer, error) {
    1.64GB     1.64GB    670:	var dw Writer
         .   347.72MB    671:	if err := dw.d.init(w, level); err != nil {
         .          .    672:		return nil, err
         .          .    673:	}
         .          .    674:	return &dw, nil
         .          .    675:}

I can't find the constant that you're talking about, how much memory would we be talking about?

It's not implemented yet, was suggesting going for this approach in the pseudocode above

I couldn't find setUnwindTable in the profile, I guess a benchmark is needed.
BTW, we can get rid of bytes.NewBuffer(stackBytes) allocations as well if it matters.

ROUTINE ======================== github.com/parca-dev/parca-agent/pkg/profiler/cpu.(*bpfMaps).readKernelStack in pkg/profiler/cpu/maps.go
         0        4MB (flat, cum) 0.079% of Total
         .          .    202:func (m *bpfMaps) readKernelStack(kernelStackID int32, stack *combinedStack) error {
         .          .    203:	if kernelStackID == 0 {
         .          .    204:		return errUnwindFailed
         .          .    205:	}
         .          .    206:
         .     1.50MB    207:	stackBytes, err := m.stackTraces.GetValue(unsafe.Pointer(&kernelStackID))
         .          .    208:	if err != nil {
         .          .    209:		return fmt.Errorf("read kernel stack trace, %v: %w", err, errMissing)
         .          .    210:	}
         .          .    211:
         .     2.50MB    212:	if err := binary.Read(bytes.NewBuffer(stackBytes), m.byteOrder, stack[stackDepth:]); err != nil {
         .          .    213:		return fmt.Errorf("read kernel stack bytes, %s: %w", err, errUnrecoverable)
         .          .    214:	}
         .          .    215:
         .          .    216:	return nil
         .          .    217:}
ROUTINE ======================== github.com/parca-dev/parca-agent/pkg/profiler/cpu.(*bpfMaps).readUserStack in pkg/profiler/cpu/maps.go
         0     7.51MB (flat, cum)  0.15% of Total
         .          .    152:func (m *bpfMaps) readUserStack(userStackID int32, stack *combinedStack) error {
         .          .    153:	if userStackID == 0 {
         .          .    154:		return errUnwindFailed
         .          .    155:	}
         .          .    156:
         .     2.50MB    157:	stackBytes, err := m.stackTraces.GetValue(unsafe.Pointer(&userStackID))
         .          .    158:	if err != nil {
         .          .    159:		return fmt.Errorf("read user stack trace, %v: %w", err, errMissing)
         .          .    160:	}
         .          .    161:
         .        5MB    162:	if err := binary.Read(bytes.NewBuffer(stackBytes), m.byteOrder, stack[:stackDepth]); err != nil {
         .          .    163:		return fmt.Errorf("read user stack bytes, %s: %w", err, errUnrecoverable)
         .          .    164:	}
         .          .    165:
         .          .    166:	return nil
         .          .    167:}

Leaving the decision to merge @javierhonduco

I wrote a benchmark for setUnwindTable() and results show improvements, but the numbers look huge overall, e.g., 6.84MB (new) and 14.97MB (old) allocs per call.
# new code
BenchmarkBPF-2   	      33	  35094869 ns/op	 6841518 B/op	 1729045 allocs/op

# old code
BenchmarkBPF-2   	      32	  38474101 ns/op	14975921 B/op	 1729064 allocs/op

func BenchmarkBPF(b *testing.B) {
	m, err := bpf.NewModuleFromBufferArgs(bpf.NewModuleArgs{
		BPFObjBuff: bpfObj,
		BPFObjName: "parca",
	})
	require.NoError(b, err)
	err = m.BPFLoadObject()
	require.NoError(b, err)
	b.Cleanup(m.Close)

	bpfMaps, err := initializeMaps(m, byteorder.GetHostByteOrder())
	require.NoError(b, err)

	pid := 1
	tb := unwind.NewUnwindTableBuilder(log.NewNopLogger())
	pt, err := tb.UnwindTableForPid(pid)
	require.NoError(b, err)

	b.ResetTimer()
	b.ReportAllocs()
	for n := 0; n < b.N; n++ {
		err = bpfMaps.setUnwindTable(pid, pt)
		require.NoError(b, err)
	}
}

I wrote a benchmark for setUnwindTable() and results show improvements, but the numbers look huge overall, e.g., 6.84MB (new) and 14.97MB (old) allocs per call.
# new code
BenchmarkBPF-2   	      33	  35094869 ns/op	 6841518 B/op	 1729045 allocs/op

# old code
BenchmarkBPF-2   	      32	  38474101 ns/op	14975921 B/op	 1729064 allocs/op

This is expected. We plan to reduce calls to this drastically. Maybe we should first wait for that PR to land.

This is expected, as Kemal mentioned we are actively working on this area and will be publishing the changes over the next few weeks.
We added a simple table generation benchmark to keep track of performance changes over time, as definitely there's a lot of low-hanging fruit. We mostly prioritised correctness over performance until now! 😄
That being said, I think your change to add the sync.Pool is still valuable and I'll be happy to merge it. Once we merge all the changes we have planned for table generation, I am more than happy to let you know if you are interested in helping us to optimise it further
Just to give you a taste of the changes I am working on (will open a PR in the next few weeks), this is how things are looking now. There's still a lot of performance left on the table, though!
[javierhonduco@fedora parca-agent]$ go test -v github.com/parca-dev/parca-agent/pkg/stack/unwind -bench=.
=== RUN   TestBuildUnwindTable
--- PASS: TestBuildUnwindTable (0.00s)
goos: linux
goarch: amd64
pkg: github.com/parca-dev/parca-agent/pkg/stack/unwind
cpu: Intel(R) Core(TM) i7-8700K CPU @ 3.70GHz
BenchmarkParsingLibcDwarfUnwindInformation
BenchmarkParsingLibcDwarfUnwindInformation-12<PHONE_NUMBER> ns/op         5753089 B/op      84624 allocs/op
PASS
ok      github.com/parca-dev/parca-agent/pkg/stack/unwind       3.438s

Awesome, thank you for the explanation!

@javierhonduco any thoughts on this?

Hi @marselester! Sorry for the delay! This code has significantly changed now. I have checked some memory profiles and I think the cost has shifted a little bit.
If it's ok we can maybe close this PR and if you are interested, Iam more than happy in a few days to point you to other areas where we need to reduce allocations / CPU cycles 😄

@javierhonduco no worries :) I would appreciate the pointers for sure!

@marselester sure thing, happy to get back to you next week :)


cdc: buffer messages and flush them at once

What problem does this PR solve?
Buffer CDC messages and flush them at once, also address https://github.com/tikv/tikv/pull/8629#discussion_r486101231
Related changes

Need to cherry-pick to the release branch

Check List
Tests

Unit test
Integration test

Release note

No release note

/lgtm

Any improvement?

Just for better understandability and debugability.

PTAL, thanks!

/run-unit-test

/test

/run-all-tests

/run-all-tests

/run-all-tests


feat(ecc-client-ga4gh-tes): add publish scripts

Description
Setup package to be published on npm.
Fixes #120
Checklist

[x] My code follows the [contributing guidelines][contributing] of this project.
[x] I am aware that all my commits will be squashed into a single commit, using the PR title as the commit message.
[x] I have performed a self-review of my own code.
[x] I have commented my code in hard-to-understand areas.
[x] I have updated the user-facing documentation to describe any new or changed behavior.
[x] My changes generate no new warnings.
[x] I have added tests that prove my fix is effective or that my feature works.
[x] I have not reduced the existing code coverage.

@git-anurag-hub @SalihuDickson , Can you check this PR?
This is the test package I have created and this is the branch I did it on (pushed all the code in one commit :sweat_smile: )
The current issues I need an opinion on:

FAST needs some wrapper to be used with React. Since the comps must be cross-platform, how would I export the component? I will need to change the file str, too.
Exports: The current way is exporting all the Web Components simultaneously. How to configure so that the only required comps get exported.
Versioning and changelog: How to set up and define package versioning here (Maybe this could be another PR)?

This LGTM @JaeAeich! Can you delete the package from the npm named ecc-client-ga4gh-tes will publish the new package!

yeah sure!


Fix noConsoleSecurity option

Also skip security by default for tests

btw forgot to mention that this fixes the master build tests

@neykov Thanks.


Weight Column - is it "supported" or "automatically created and implemented"

A weight column: automated ML supports a column of weights as input, causing rows in the data to be weighted up or down, which can be used to make a class more or less "important".

recommended fix:
A weight column: automated ML will create a column of weights as input to cause rows in the data to be weighted up or down, which can be used to make a class more or less "important".

As it is written "supports a column of weight" ... implies that the use adds that column and AutoML supports that column; however there seems to be no documentation and no obvious place in ML labs for a user generated weight column to be consumed.
[Enter feedback here]

Document Details
⚠ Do not edit this section. It is required for learn.microsoft.com ➟ GitHub issue linking.

ID: 441d4999-ab6f-b371-bfbc-7441f6a866c8
Version Independent ID: 3aabaf41-b1cf-5689-f358-54de7f42cbba
Content: Avoid overfitting & imbalanced data with AutoML - Azure Machine Learning
Content Source: articles/machine-learning/concept-manage-ml-pitfalls.md
Service: machine-learning
Sub-service: automl
GitHub Login: @manashgoswami
Microsoft Alias: magoswam

@MikeBreenMSFT
Thanks for your feedback! We will investigate and update as appropriate.

@MikeBreenMSFT
Thanks for reporting this! We have created a PR for this issue and the changes should go live soon.


Add a bot to post issues from github to the discord server

I'd like to create follow this steps: https://gist.github.com/jagrosh/5b1761213e33fc5b54ec7f6379034a22 but I don't have access to it.
Could you help me out? @rrd108
I'd like to check if with this option let me select individual events enables some kind of options to choose "Issue creation" or something like that to trigger this webhook.

I shared the webhook link via discord dm


Changed peripheral and central manager state handling

Ok, so as we've discussed - we need to consider starting state.

Merged already,


Fix unreachable code by removing it or commenting it out

Purpose or Intent
I'd prefer to just remove all unreachable code but some have expressed the desire
to keep the example code around.  Therefore, where appropriate, I commented it
out for now since it silences the cop and doesn't remove the example code.
Note, I believe we can whitelist each of these using a comment:
# rubocop:disable Lint/UnreachableCode
But, that implies that the current code is correct and we're just saying "ignore"
it.  Clearly, unreachable code is wrong so let's not pretend this previously
active but unreachable code is correct.
rubocop --only "Lint/UnreachableCode"

would have been nice to just delete this code.


Adding linting

Per @tihuan 's suggestion, add linting to the Markdown files that will be added to this repo. There are a couple ideas:

Github's new super-linter - to lint PR
A Node based CLI tool: markdownlint-cli, which powers Github's super-linter - to set up pre-commit hook to autofix errors

Thanks for creating the issue, @maniarathi 🤩 !

https://github.com/github/super-linter

This one we probably just need to follow the repo's doc to see how to enable Markdown linting lol

https://github.com/DavidAnson/markdownlint

I think instead of markdownlint-cli, we might need to use just markdownlint!
So the steps for setting up linting precommit could be:

Add package.json via npm init in the root of this directory // this should create package.json
It seems like a package.json must contain name and version, so probably some placeholder will do doc
npm i --save-dev prettier markdownlint
npx mrm lint-staged doc
Configure package.json to lint markdown:

// package.json
{
  // { other code ... },
  "lint-staged": {
    "*.md": ["markdownlint", "prettier --write"]
  }
}

Now it pre-commit hook should be set up, so we can verify it works by editing an .md file that could be fixed by the linter
Now try to commit it via git add . && git commit -m 'test linter
See if the .md file is now fixed and commited!

(I can also help set up the pre-commit hook portion if that's easier 😆 )

Haha, do you mind too much if you go ahead and do it? :) It seems like you're 70% there with the detailed information above! 😃

Ahaha totally! I'll work on that now!

@maniarathi Oh can I haz write access please 😄 🙏 ? Ready for a PR! Thank you! 🎉

Ahh sorry! Should be good now!

Hurray! Thanks @maniarathi ! PR out 🎉  https://github.com/chanzuckerberg/cellxgene-rfcs/pull/3


Column filters don't work for the product maintenance grid

self-explanatory.

 Column filters don't work for the product maintenance grid

duplicate


Generate texture coordinates

This feature appears to me to be the most controversial, for the following reasons:

there is no single way to generate UV unwraps, contrary to how positions and normals are generated
handling UV seams is somewhat difficult/inconvenient from the implementation point of view
users are very sensitive to how exactly UVs are laid out

I vaguely suggest the following solution:

separate generator structs from iterators. Thus users will call cube.iter() or cube.iter_uv to get different iterators.
don't implement UV for the SharedVertex logic, since it's too much headache, and the users can always use LruIndexer to compute those, if needed. Perhaps, we could have a helper to do this semi-automatically?
stick to Three.js UV layout convention. This also sparks the question of vertex positions should follow the same order.

Any opinions? @csherratt @ozkriff @brendanzab

I ran into this problem while using Amethyst. I wouldn't have had a problem if the texture coordinates for a sphere were simply the latitude and longitude scaled to 0..1.
It would be perfectly fine to me to have to write the shape and UV generation myself but it would be useful to have helper functions available for computing tangents etc.


Jira build 87 secret configmap volume mounts in builds

https://issues.redhat.com/browse/BUILD-87

@adambkaplan Comments have been addressed in current push. ptal

/hold
Given the complexity of the feature and the time remaining before 4.8 reaches "final freeze" period, we are going to hold this until master opens for 4.9

/retest

/retest

/retest

I have test the feature following test cases https://url.corp.redhat.com/buildvolumes, no critial issue found.
/label qe-approved

/retest

/hold cancel

/retest

/retest

/retest

@adambkaplan @gabemontero ptal, almost all tests passing, e2e-aws-upgrade failures are unrelated to pull request, this one is ready for review.

/retest

/cc @rolfedh @RickJWagner
Please verify we have ready for docs and PX by adding the "docs-approved" and "px-approved" label to this PR and the other PRs for this feature.

/hold cancel

/label px-approved

PLM approves.

/retest

/docs-approved

/retest

@adambkaplan @gabemontero this one is ready for final review and hopefully an lgtm

@adambkaplan @gabemontero this one is ready for final review and hopefully an lgtm

opened up in a browser window and on today's to-do list @coreydaley

/retest

/retest


Upgrade dependecies

We were having some hardly caught race conditions and seems like it was because of old version of when.
So I upgraded it (our race condition is gone) and all other deps as well.

Thanks!


Changes for PowerShell Reelease 1.3.0 (Hold until 3/30)

Hi @markcowl, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!

It looks like you're working at Microsoft (markcowl). If you're full-time, we DON'T require a contribution license agreement.

If you are a vendor, DO please sign the electronic contribution license agreement. It will take 2 minutes and there's no faxing! https://cla.azure.com.

TTYL, AZPRBOT;

#sign-off

Editors/approves, note that this must publish on 3/30.


Infinite recursive call gives java.lang.OutOfMemoryError

Description:
java.lang.OutOfMemoryError: GC overhead limit exceeded
Dumping heap to /usr/lib/ballerina/ballerina-0.981.0/heap-dump.hprof ...
Unable to create /usr/lib/ballerina/ballerina-0.981.0/heap-dump.hprof: Permission denied

Steps to reproduce:
Run following code
import ballerina/io;

function test(int n) returns (int) {
    if(n==1) {return 1;}
    return test(n) * n;
}

function main(string... args) {
    io:println(test(5));
}

Affected Versions:

Ballerina 0.981.0 on Ubuntu

Instead of letting bvm to go out of memory I think we need to throw an error indicating stackoverflow and terminate the program.

This should be fixed in the master with the PR https://github.com/ballerina-platform/ballerina-lang/pull/12642
now it should throw StackOverflow error


FAQ added to Navbar

👨💻 Changes proposed
FAQ button directing to the FAQ section is added to the navbar in the homepage.
✔ Check List (Check all the applicable boxes)

[x] My code follows the code style of this project.
[x] This PR does not contain plagiarized content.
[x] The title of my pull request is a short description of the requested changes.

📄 Note to reviewers

Screenshots of the changes were attached here.
📷 Screenshots

Pervious one

Please review this PR to merge @SauravMukherjee44
I am a GSSOC'23 contributor.

@PVBharadwaj add the FAQs button after Contact Us

@rohanbabbar04  please check the changes. I have moved FAQ button after the contact us button


getFocusedPath can break on IE11 for svg elements

Explain the problem
When the getFocusPath fn is called passing the node argument an svgElement the contains method  is not part of it/
Expected Behaviour
Should return if node is on the root element or not (Boolean).
Actual Behaviour
It throws an error and break page.
Provide your Environment details

Node version:
Node 8.11
Operating System:
Windows 7/8 - IE11
melody version:
1.04

A polyfill for contains can be found here:
https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Node/prototype/contains/polyfill.js
For fixing the problem we have two main options:
a) Document that Node.prototype.contains must be polyfilled if IE11 & SVG elements should be supported
b) Replace usage of node.contains with an inlined contains function similar to the one from the polyfill if node.contains does not exist.

Hello! I would like to take this issue.
Regarding the options @pago listed above:
a) I think if we do such thing melody enters the realm of plugins since it starts to have peer dependencies. IMO a framework must provide consistent cross-browser behaviour, and since the problem is within the framework codebase itself that is where we should tackle the problem.
b) Sounds the most reasonable approach here.
Let me know whether we agree in going with option b) and I'll give it a try.

@danielcaldas Both are valid approaches. Melody should not include polyfills for standard behaviour as the application developers know best who their users are and which polyfills they'll need. Or they could use polyfill.io to be even more specific. A framework can't deliver that level of precision so sometimes just saying "we expect this and that environment, here's how you can polyfill it for your users" is the better choice.
In this case the logic is tiny and therefore not much of a hassle, in other cases the choice would be different.

It depends on the granularity level that we are referring. In this case is such a small and specific issue that the effort to support it on the framework side is way less painful than to have it on the client side. But agree on the part where we should not polyfill standard behavior.


upgrade grpc-go client library to fix panic issue

This https://github.com/apache/apisix/issues/9528 is an Issue with go grpc library and is fixed here - https://github.com/grpc/grpc-go/issues/6373 / https://github.com/grpc/grpc-go/pull/6374/files. According to this comment, the fix is available in release 1.55.1 - https://github.com/grpc/grpc-go/issues/6373#issuecomment-1624845430 . Our grpc client  nginx module uses version 1.47.0.

@AlinsRan pls take a look.

LGTM.


Unable to Expose Dashboard (hitting HTTP 404) on EKS with ELB and NLB

Hi there,
I have used the latest chart (version: 9.1.0) and enabled the following values

# Pod disruption budget
podDisruptionBudget:
  enabled: true
  maxUnavailable: 1

# Create an IngressRoute for the dashboard
ingressRoute:
  dashboard:
    annotations:
      kubernetes.io/ingress.class: traefikv2

rollingUpdate:
  maxUnavailable: 1
  maxSurge: 1

globalArguments: []

ports:
  web:
    redirectTo: websecure

additionalArguments:
- "--providers.kubernetesingress.ingressclass=traefikv2"
- "--api.insecure=true"
- "--metrics.prometheus=true"

logs:
  general:
    level: DEBUG
  access:
    enabled: true

# Options for the main traefik service, where the entrypoints traffic comes
# from.
service:
  enabled: true
  type: LoadBalancer
  # Additional annotations (e.g. for cloud provider specific config)
  annotations:
    external-dns.alpha.kubernetes.io/hostname: traefikv2.test.<root-domain>
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    service.beta.kubernetes.io/aws-load-balancer-internal: <IP_ADDRESS>/0
    service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: <acm>
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"

rbac:
  namespaced: true

affinity:
  podAntiAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
    - labelSelector:
        matchExpressions:
        - key: app.kubernetes.io/instance
          operator: In
          values:
          - traefikv2
      topologyKey: kubernetes.io/hostname

hostNetwork: true

What we expected?
Dashboard should work on accessing url: http://traefikv2.test.<root-domain>/dashboard/
What we actually see?
HTTP 404 Error
curl -LI http://traefikv2.test.<root-domain>/dashboard/
HTTP/1.1 308 Permanent Redirect
Content-Length: 18
Content-Type: text/plain; charset=utf-8
Date: Wed, 26 Aug 2020 06:31:33 GMT
Location: https://traefikv2.test.<root-domain>/dashboard/
Connection: keep-alive

HTTP/1.1 404 Not Found
Content-Length: 19
Content-Type: text/plain; charset=utf-8
Date: Wed, 26 Aug 2020 06:31:34 GMT
X-Content-Type-Options: nosniff
Connection: keep-alive

Logs
<IP_ADDRESS> - - [26/Aug/2020:06:31:33 +0000] "HEAD /dashboard/ HTTP/1.1" 308 18 "-" "-" 733 "web-to-443@internal" "-" 0ms
<IP_ADDRESS> - - [26/Aug/2020:06:31:34 +0000] "HEAD /dashboard/ HTTP/1.1" - - "-" "-" 734 "-" "-" 0ms
<IP_ADDRESS> - - [26/Aug/2020:06:31:41 +0000] "GET /ping HTTP/1.1" 200 2 "-" "-" 735 "ping@internal" "-" 0ms

Helm Version
version.BuildInfo{Version:"v3.2.4", GitCommit:"0ad800ef43d3b826f31a5ad8dfbb4fe05d143688", GitTreeState:"dirty", GoVersion:"go1.14.3"}

K8s Version
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.4", GitCommit:"c96aede7b5205121079932896c4ad89bb93260af", GitTreeState:"clean", BuildDate:"2020-06-18T02:59:13Z", GoVersion:"go1.14.3", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.13-eks-2ba888", GitCommit:"2ba888155c7f8093a1bc06e3336333fbdb27b3da", GitTreeState:"clean", BuildDate:"2020-07-17T18:48:53Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"linux/amd64"}

I tried the same thing with following changes:

disabled ssl redirects
disabled non-standard ingressClass name ie --providers.kubernetesingress.ingressclass=traefikv2
added more logging information: - "--accesslog.fields.headers.names.RequestAddr=keep"
updated dashboard ingressRoute to :

spec:
  entryPoints:
  - traefik
  routes:
  - kind: Rule
    match: Host(`traefik.test.<root-domain>`)
    services:
    - kind: TraefikService
      name: api@internal

I still only see the following:
{"ClientAddr":"<IP_ADDRESS>:57655","ClientHost":"<IP_ADDRESS>","ClientPort":"57655","ClientUsername":"-","DownstreamContentSize":19,"DownstreamStatus":404,"Duration":82601,"Overhead":82601,"RequestAddr":"traefik.test.<root-domain>","RequestContentSize":0,"RequestCount":767,"RequestHost":"traefik.test.<root-domain>","RequestMethod":"GET","RequestPath":"/","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"StartLocal":"2020-08-31T00:46:09.798277326Z","StartUTC":"2020-08-31T00:46:09.798277326Z","level":"info","msg":"","time":"2020-08-31T00:46:09Z"}{"ClientAddr":"<IP_ADDRESS>:57655","ClientHost":"<IP_ADDRESS>","ClientPort":"57655","ClientUsername":"-","DownstreamContentSize":19,"DownstreamStatus":404,"Duration":100978,"Overhead":100978,"RequestAddr":"traefik.test.<root-domain>","RequestContentSize":0,"RequestCount":768,"RequestHost":"traefik.test.<root-domain>","RequestMethod":"GET" ,"RequestPath":"/favicon.ico","RequestPort":"-","RequestProtocol":"HTTP/1.1","RequestScheme":"http","RetryAttempts":0,"StartLocal":"2020-08-31T00:46:10.066274828Z","StartUTC":"2020-08-31T00:46:10.066274828Z","level":"info","msg":"","time":"2020-08-31T00:46:10Z"}
I still all requests leading to 404 error. I do know this same pattern with ingress is working as-is in traefik1; traefik2 seems like a black box and hardly has any updates/responses.

Hi @imdhruva , are you certain that your traefik installation expects traefikv2 as ingress class? Default Helm installation uses traefik as a class name. Can you provide deployment arguments of traefik?

Hi @MRostanski , the reason why I have used traefikv2 as ingress class is that we have traefik as an ingress class already present and we want to upgrade traefik to v2. We use traefik as an ingress controller. The idea is we update the ingress annotations in all the affected apps to move them over from traefik v1 to traefik v2.
I am certain non-default ingressclass works. I have updated the the ingress annotations on the dependent apps and I can see them in traefikv2 ( I have to port-forward to check the dashboard) .

Can you provide deployment arguments of traefik?

I am not sure what you exactly mean by this since all the arguments we are overriding has already been provided above for traefikv2. There are no overrides we are providing during deployments. Over and above what's described here I am running this command to perform the deployment: helm install --debug traefikv2-test traefik/traefik -n test -f k8s-values.yaml (where k8s-values.yaml has the values described here ).

Im not too sure, if you can use the Dashboard like that with API insecure. Try without api insecure plx :)

@imdhruva Yes, I wes referring to any addidtional --set arguments, sorry if I was not clear. And also to be clear - I am not pointing any flaw in your issue, because I have the same issue as well, I solve it by deploying my own IngressRoute. That's the reason I visited this issue in the first place.

Also, when you look in the IngressRoute that is created, what helm chart does is the only entrypoint it has is  traefik. Try to set it up as 'websecure`

@SantoDE
I tried without - "--api.insecure=true" and I am very certain that it is required since not having that disables the entire dashboard - not even the port-forward from the pods work then. I even tried it with updated set of values (notice ports.traefik.expose: true):
# Pod disruption budget
podDisruptionBudget:
  enabled: true
  maxUnavailable: 1

# Create an IngressRoute for the dashboard
ingressRoute:
  dashboard:
    annotations:
      kubernetes.io/ingress.class: traefikv2

globalArguments: []

ports:
  web:
    redirectTo: websecure
  traefik:
    expose: true

additionalArguments:
- "--api.insecure=true"
- "--metrics.prometheus=true"
- "--providers.kubernetesingress.ingressclass=traefikv2"
logs:
  general:
    format: json
  access:
    enabled: true
    fields:
      headers:
        defaultmode: keep
        names:
          RequestAddr: keep

# Options for the main traefik service, where the entrypoints traffic comes
# from.
service:
  # Additional annotations (e.g. for cloud provider specific config)
  annotations:
    external-dns.alpha.kubernetes.io/hostname: traefikv2.{{ .Environment.Name }}.{{ .Environment.Values.domain }}
    service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: Name={{ .Environment.Values.namespace }}-traefikv2,class=traefikv2,role={{ .Environment.Name }},vpc={{ .Environment.Values.kubectx }}
    service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
    service.beta.kubernetes.io/aws-load-balancer-internal: <IP_ADDRESS>/0
    service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"
    service.beta.kubernetes.io/aws-load-balancer-ssl-cert: {{ .Environment.Values.acm }}
    service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
    service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
rbac:
  namespaced: true

affinity:
  podAntiAffinity:
    requiredDuringSchedulingIgnoredDuringExecution:
    - labelSelector:
        matchExpressions:
        - key: app.kubernetes.io/instance
          operator: In
          values:
          - traefikv2
      topologyKey: kubernetes.io/hostname

hostNetwork: true

I created a new ingress-route:
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  annotations:
    kubernetes.io/ingress.class: traefikv2
  labels:
    app.kubernetes.io/instance: traefikv2-test
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: traefik
    helm.sh/chart: traefik-9.1.0
  name: traefikv2-test-dashboard-test
  namespace: test
spec:
  entryPoints:
  - websecure
  routes:
  - kind: Rule
    match: Host(`traefikv2.test.<root-domain>`)
    priority: 10
    services:
    - kind: Service
      name: traefikv2-test
      namespace: infra
      port: 9000

neither of these are working for me
@MRostanski i tried websecure as well as traefik nothing is working.
I can though work it with the following ingress (with ports.traefik.expose: true):
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
     kubernetes.io/ingress.class: traefikv2
  generation: 2
  name: traefikv2-test-dashboard
  namespace: infra
spec:
  rules:
  - host: traefikv2.test.<root-domain>
    http:
      paths:
      - backend:
          serviceName: traefikv2-test
          servicePort: traefik
status:
  loadBalancer: {}

@imdhruva what is your wanted outcome? Like how do you want the dashboard to have accessible? From what I see, you want to have it accessible via http://traefikv2.test./dashboard/. For that to work, the best bet is to create an own IngressRoute which could look like this.
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: traefik-dashboard
spec:
  entryPoints:
    - web
  routes:
  - match: PathPrefix(`/dashboard`) || PathPrefix(`/api`)
    kind: Rule
    services:
    - name: api@internal
      kind: TraefikService

This is currently not supported by the helm-chart directly (at least not yet, see #186) but should work.  I have tried this with entryPoint set as web as well as websecure. Again, I am not sure how you could get it to work with api.insecure not set since I do not see any dashboard even when I port-forward ports from traefik pods. Again the gist of my configs are:

set NLB on
set SSL on NLB
force SSL redirection
set ingressclass to ingressv2
I have tried these configs for ingressRoute:

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: traefik-dashboard
  namespace: test
spec:
  entryPoints:
    - web
  routes:
  - match: PathPrefix(`/dashboard`) || PathPrefix(`/api`)
    kind: Rule
    services:
    - name: api@internal
      kind: TraefikService

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: traefik-dashboard
  namespace: test
spec:
  entryPoints:
    - web
  routes:
  - match: Host(`traefikv2.test<root-domain) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
    kind: Rule
    services:
    - name: api@internal
      kind: TraefikService

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: traefik-dashboard
  namespace: test
spec:
  entryPoints:
    - websecure
  routes:
  - match: PathPrefix(`/dashboard`) || PathPrefix(`/api`)
    kind: Rule
    services:
    - name: api@internal
      kind: TraefikService

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: traefik-dashboard
  namespace: test
spec:
  entryPoints:
    - websecure
  routes:
  - match: Host(`traefikv2.test<root-domain) && (PathPrefix(`/dashboard`) || PathPrefix(`/api`))
    kind: Rule
    services:
    - name: api@internal
      kind: TraefikService

I still get 404 response. I continue to use k8s ingress with service set  to expose traefik endpoint as a work-around

For the ingressroute,I would start with web endpoint to avoid TLS issues for starters and recommend you use the pathprefix since that should work (or at least does in my setup).
One thing that may be missing when the ingressroute is created from helm that I was looking into is the dashboard wouldn't work for me either unless port value is specified in services section. Try editing the ingressroute once it's created by including the expected port 9000 and see if that works.
I am not sure why this worked for me but hopefully it helps and can potentially be included as part of the dashboard-hook-ingressroute.yaml template as  a default value if possible or makes sense.

I found adding a service and ingress hellped
kind: Service
apiVersion: v1
metadata:
  labels:
    k8s-app: treafik
  name: treafik-dashboard
spec:
  ports:
    - name: dashboard
      port: 9000
      targetPort: 9000
  selector:
    app.kubernetes.io/instance: traefik
    app.kubernetes.io/name: traefik
---
apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: treafik-dashboard-ingress
spec:
  entryPoints:
    - web
  routes:
    - match: Host(`{{ traefik_dashboard_hostname }}`)
      kind: Rule
      services:
        - name: treafik-dashboard
          kind: Service
          port: 9000

have you enabled tls on websecure?
its disabled by default and with https the websecure needs tls!
my config below works fine as basic example
logs:
  general:
    level: INFO
  access:
    enabled: true
ports:
  websecure:
    tls:
      enabled: true
additionalArguments:
  - --metrics.prometheus=true

Were you ever able to solve this? Can't believe this simple problem had no resolution.

README.md implies that simply port-forwarding with default configuration should be enough to access dashboard, however that is not true.
If one looked at https://doc.traefik.io/traefik/reference/static-configuration/cli/ specifically:
--api.insecure:
Activate API directly on the entryPoint named traefik. (Default: false)

Dashboard works as soon as I activate insecure mode. I assume it would work if I changed IngressRoute to use a different entrypoint.
From my understanding dashboard will not work unless:
a) IngressRoute created by the chart uses different entrypoint than traefik
b) api.insecure option is set.

You don't need to deploy any Ingress objects if you install Traefik Ingress controller using this Helm Chart. It deploys a IngressRoute object for dashboard and it looks like below
 kind: IngressRoute apiVersion: traefik.containo.us/v1alpha1 metadata:   annotations:     helm.sh/hook: 'post-install,post-upgrade'   labels:     app.kubernetes.io/instance: traefik     app.kubernetes.io/managed-by: Helm     app.kubernetes.io/name: traefik     helm.sh/chart: traefik-9.18.1   name: traefik-dashboard   namespace: kube-system spec:   entryPoints:     - traefik   routes:     - kind: Rule       match: PathPrefix(/dashboard) || PathPrefix(/api)       services:         - kind: TraefikService           name: api@internal
You can use kubectl-portforward to test the WebUI
kubectl port-forward svc/traefik -n kube-system 9000:9000
Now open a local browser and enter http://localhost:9000/dashboard/
Remember to enter / at the end of dashboard prefix. You will get 404 without that
If you want to access the WebUI using NLB DNS or Route 53 then update the above IngressRoute object like below
  routes:     - kind: Rule       match: Host(NLB DNS  or Route53 endpoint) && PathPrefix(/dashboard) || PathPrefix(/api)

@vara-bonthu
Traefik port (9000) is not exposed by default on the service so we must do the port-forward directly on the pod,
but for me I still have a 404 response for the dashboard (with the ended /).
I have deployed the latest chart 9.18.2 with traefik 2.4.8.

@vara-bonthu
Traefik port (9000) is not exposed by default on the service so we must do the port-forward directly on the pod,
but for me I still have a 404 response for the dashboard (with the ended /).
I have deployed the latest chart 9.18.2 with traefik 2.4.8.

Ok I just found out that we need to set --api.insecure=true to access the dashboard through a port-forward.

Any update on this. I am seeing very similar results and have tried multiple ingressroutes and flags as the original author of this ticket. This should be a fairly simple thing to do, not sure what could be going wrong .

I am having a similar issue but for a non traefik service. I too have an ELB in front of Traefik, a service of type LoadBalancer and I am receiving 404s when trying to route to a particular url configured via IngressRoute, either http/https does not work. I do see an access log entry, but i am not getting routed to my API pod.

I had the same problems as described above, I managed to expose the dashboard by doing the following:
Set values.yaml in helm to:
ingressRoute:
  dashboard:
    enabled: true
    # Additional ingressRoute annotations (e.g. for kubernetes.io/ingress.class)
    annotations: {}
    # Additional ingressRoute labels (e.g. for filtering IngressRoute by custom labels)
    labels: {}

I then created the following ingress route:
kind: IngressRoute
apiVersion: traefik.containo.us/v1alpha1
metadata:
  annotations:
    helm.sh/hook: 'post-install,post-upgrade'
  labels:
    app.kubernetes.io/instance: traefik
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: traefik
    helm.sh/chart: traefik-9.18.1
  name: traefik-dashboard-test
  namespace: kube-system
spec:
  entryPoints:
    - web
  routes:
    - kind: Rule
      match: Host(`hostname of alb`) && PathPrefix(`/dashboard`) || PathPrefix(`/api`)
      services:
        - kind: TraefikService
          name: api@internal

This goes with what @vara-bonthu was saying except note that the entrpoint is set to web and not traefik. This matches whats documented on the offical site - https://doc.traefik.io/traefik/getting-started/install-traefik/.
What's really infurating is that the ingress rotue created by the chart is wrong so if you just copy that with the added Host() match it doesn't work.

I close this issue since now, there is some documentation on how to do it.
It's hard to get it right, so don't hesitate to share how you think we can improve it.

seriously, I am deploying the latest traefik v2.9.6 on eks 1.23, still got 404. finally I switched to ingress-nginx controller. it is too hard for me to make traefik in the EKS cluster.

@eastwoo We recommend to use IngressRoute as it's simpler to use.
If you want to keep using Ingress, maybe you will be interested by this detailed blog post on using Ingress with AWS.
There is also a detailed example on dashboard on this repo.
Does this works for you ?
For your question about using an Ingress with the dashboard, it should work. When I will have more time, I will add an example on it on this repository.


Combine conditions

Codecov Report

Merging #426 (abf0693) into master (a5f1eee) will increase coverage by 0.69%.
The diff coverage is 50.54%.

@@             Coverage Diff              @@
##             master     #426      +/-   ##
============================================
+ Coverage     59.88%   60.57%   +0.69%
- Complexity      541      573      +32
============================================
  Files           100      103       +3
  Lines          2064     2161      +97
  Branches        222      236      +14
============================================
+ Hits           1236     1309      +73
- Misses          736      757      +21
- Partials         92       95       +3

Impacted Files
Coverage Δ

...n/java/seedu/programmer/commons/core/Messages.java
0.00% <ø> (ø)

...main/java/seedu/programmer/logic/LogicManager.java
39.47% <0.00%> (-7.41%)
:arrow_down:

...seedu/programmer/logic/commands/AddLabCommand.java
62.50% <0.00%> (ø)

...grammer/logic/commands/DashboardCommandResult.java
100.00% <ø> (+100.00%)
:arrow_up:

...u/programmer/logic/commands/ShowCommandResult.java
36.36% <ø> (+3.03%)
:arrow_up:

...edu/programmer/logic/parser/EditCommandParser.java
61.11% <0.00%> (-3.60%)
:arrow_down:

...du/programmer/model/student/UniqueStudentList.java
84.21% <ø> (ø)

src/main/java/seedu/programmer/ui/CommandBox.java
0.00% <0.00%> (ø)

.../main/java/seedu/programmer/ui/CommandHistory.java
78.57% <0.00%> (+3.57%)
:arrow_up:

...main/java/seedu/programmer/ui/DashboardWindow.java
0.00% <0.00%> (ø)

... and 35 more

Continue to review full report at Codecov.

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


bosh-agent reporting erroneous disk data on bionic

BOSH Director: 271.9.0
CPI: AWS/88
Stemcell: Bionic 1.22
We moved various deployments off stemcell Xenial 621.125 to Bionic 1.22 and our Prometheus system started to alert on persistent disk usage warnings on various VMs which do not have any persistent disk assigned.  Our alert threshold was set to 75% and most alerts came in between 75.1 and 75.9 after moving the VMs to Bionic.
Looking at the VMs in question I found the following under /var/vcap/bosh
spec.json
  "persistent_disk": 0,

settings.json
    "persistent_disk_fs": "",
    "persistent_disk_mount_options": null,
    "persistent_disk_partitioner": ""

/var/vcap/bosh/log/current
2021-09-01_13:41:22.72666 {"deployment":"cf-production","job":"nats","index":2,"job_state":"running","vitals":{"cpu":{"sys":"0.7","user":"1.7","wait":"0.1"},"disk":{"ephemeral":{"inode_percent":"6","percent":"19"},"persistent":{"inode_percent":"36","percent":"76"},"system":{"inode_percent":"36","percent":"76"}},"load":["0.00","0.06","0.07"],"mem":{"kb":"2426640","percent":"30"},"swap":{"kb":"0","percent":"0"},"uptime":{"secs":87633}},"node_id":"XXXXXXXX"}

Since we changed stemcell these where fresh VMs but a bosh recreate did not resolve the issue.  We tried to add additional ephemeral disk as well, no change in behavior.  The only way to make the stat drop was to add a persistent disk to the VMs in question.
This appears to have happened before with the bosh-agent but these issues suggested a possible code fix and/or nothing done and the issues auto closed for being stale:
https://github.com/cloudfoundry/bosh/issues/2204
https://github.com/cloudfoundry/bosh-agent/issues/36
I'm wondering if a change in the Bionic stemcell to mounts is causing the agent to report erroneous data.  A df - h does show the root partition of the stemcell being ~75% in use.  We have not moved forward to the latest Bionic stemcell 1.25 yet as we pinned 1.22 for now until we migrate our whole environment over to Bionic.  I do see from the Bionic release notes that the bosh-agent between 1.22 and 1.25 has not changed and is 2.346.0 for both stemcells:
https://github.com/cloudfoundry/bosh-linux-stemcell-builder/releases/tag/ubuntu-bionic%2Fv1.25
https://github.com/cloudfoundry/bosh-linux-stemcell-builder/releases/tag/ubuntu-bionic%2Fv1.22
Thanks

As an analysis, the root cause seems located here:
https://github.com/cloudfoundry/bosh-agent/blob/main/platform/vitals/service.go#L113-L119
where there is no check that path is actually a mount point whereas it is assumed to be a mountedPath later here:
https://github.com/cloudfoundry/bosh-agent/blob/main/sigar/sigar_stats_collector.go#L98
without this assumption having been verified anywhere before.
When the directory does not exist, the error is generated by the call to syscall.Statfs() there:
https://github.com/cloudfoundry/bosh-agent/blob/main/vendor/github.com/cloudfoundry/gosigar/sigar_unix.go#L9-L12
and then is carried over up the call stack.

Hi - has there been any movement on this issue?  I see the PR from @bgandon submitted a week ago but it appears that PR has no movement either.  Please advise.

That's right. Being part of the BOSH EU team I'm now trying to get the PR reviewed and merged by the US team.
This one is not top of the list, because we have few priorities before, but it's in.


How to count API calls?

I'm using boto3 and while the resources it provides are great, it can be difficult to track what's going on behind the scenes.  Unfortunately I can't find much documentation on how hooks work, so I figured I'd ask both how to do it, and ask whether some documentation could be added.

You can enable the debug logging with boto3.set_stream_logger('') which might help provide the data you're looking for (you may need to take the output and do some processing of it to count requests)

Hmm, would that let me get programmatic access to the API calls being made behind the scenes. I was hoping to put some stuff using this into automated tests.

It would output verbose logs of what is going on behind the scenes, ex:
2016-07-09 21:46:40,990 botocore.endpoint [DEBUG] Sending http request: <PreparedRequest [PUT]>
2016-07-09 21:46:40,991 botocore.vendored.requests.packages.urllib3.connectionpool [INFO] Starting new HTTP connection (3): <IP_ADDRESS>
2016-07-09 21:46:40,992 botocore.awsrequest [DEBUG] Waiting for 100 Continue response.
2016-07-09 21:46:41,993 botocore.awsrequest [DEBUG] No response seen from server, continuing to send the response body.
2016-07-09 21:46:42,204 botocore.endpoint [DEBUG] ConnectionError received when sending HTTP request.

@copumpkin Would using the event system help? Here is documentation on the provide-client-params event you could hook into to grab information related to the params passed in and the operation to be invoked by the underlying client.

@kyleknap Looks like the docs aren't linked?  Actually looks like we don't document this event.  Let me see if I can get a code snippet together.

It is in the boto3 docs: https://boto3.readthedocs.io/en/latest/guide/events.html. The botocore guide on events is really out of date.

Specifically here:
https://boto3.readthedocs.io/en/latest/guide/events.html#provide-client-params

Ah, I see.  Looks like our search needs some work :( https://boto3.readthedocs.io/en/latest/search.html?q=provide-client-params&check_keywords=yes&area=default
Ok, I'm going to go ahead and close out the issue.  @copumpkin let me know if this event doesn't work for you and I'll reopen and take another look.

That looks pretty promising, thanks. I'll try it out and let you know if it doesn't work.


Hangman_Game project Typo

Description
It is really simple problem, but there is typo in project Hangman_Game.
When you lose the game, the message you get should be "You Lose", not "You Loose".
Hope you have an awesome weekend!
Type of issue

[ ] Feature (New Script)
[ ] Bug
[ ] Documentation

Checklist:

[x] I have read the project guidelines.
[x] I have checked previous issues to avoid duplicates.
[x] This issue will be meaningful for the project.

Hey @19lyaejin,
Thanks for the notice. Would you like to work on this issue? I can assign it to you 😄

That would be awesome! I would be really glad to work on it!

The problem is on line 81


Add work to receive_all() in wallet.py

Not a blocking issue, but work should be added to the receive_all() method so that each individual block can have custom work generated in receive_specific().
This worked for me locally:
def receive_all(self, count=20, threshold=None, work = False):
    responses = []
    receivable_blocks = self.get_receivable_whole_threshold(count=count, threshold=threshold)["blocks"]
    for block_hash in receivable_blocks:
      #receive them
      responses.append(self.receive_specific(block_hash, work=work))
    return responses

Want to make a PR?

Yeah, thanks!

Closed by #7


Update scala-library, scala-reflect to 2.13.7

Updates

org.scala-lang:scala-library
org.scala-lang:scala-reflect

from 2.13.6 to 2.13.7.
I'll automatically update this PR to resolve conflicts as long as you don't change it yourself.
If you'd like to skip this version, you can just close this PR. If you have any feedback, just mention me in the comments below.
Configure Scala Steward for your repository with a .scala-steward.conf file.
Have a fantastic day writing Scala!

Ignore future updates
Add this to your .scala-steward.conf file to ignore future updates of this dependency:
updates.ignore = [ { groupId = "org.scala-lang" } ]

labels: library-update, early-semver-patch, semver-spec-patch

Anyone, can we get rid of simulacrum? It's a constant PITA.

Superseded by #864.


Add libinput xorg configuration for mouse pointers (in addition to touchpad).

Issue description
There doesn't currently seem to be a way to set the mouse pointer speed and acceleration profile for mouse pointers (other than services.xserver.extraConfig). For touch pads, we already have services.xserver.libinput.accelSpeed and related options. The xorg config this generates chooses to only apply to touchpads. source
Proposed Solution
From what I've seen, it seems like libinput is the correct way to set the mouse speed on linux. We should make options so that we can set these for mouse pointers as well.
We can add an additional option to libinput, called pointerType, which will allow you to set if the options will be applied to a pointer or to a touchpad (and later extended if there are other filters that we need).
This will not allow someone to set the speed differently for a mouse pad and pointer on the same computer (e.g. If you have a laptop and you want your usb mouse and touchpad, you cannot set both). I think this could be extended into that later.
Steps to reproduce
N/A (missing functionality)
Technical details
Please run nix-shell -p nix-info --run "nix-info -m" and paste the
results.

system: "x86_64-linux"
host os: Linux 4.19.52, NixOS, 19.03.172927.30a82bba734 (Koi)
multi-user?: yes
sandbox: yes
version: nix-env (Nix) 2.2.2
channels(tom): "unstable-19.09pre182717.b58ada326aa"
channels(root): "nixos-19.03.172927.30a82bba734, unstable-19.09pre182717.b58ada326aa"
nixpkgs: /nix/var/nix/profiles/per-user/root/channels/nixos

I would be willing to do the development on this, if I get some feedback about if the proposal looks good. Please add any other suggestions that come to mind.

+1, it was odd that I had to use an xorg config section to make these changes since I didn't have a touchpad

still important to me

I'm not sure if this is the right place to post, but i'd love something like this too.  I've been struggling to get my Thinkpad touchpad and "red dot" trackpoint to be tolerable (i'm a convert from MacBook, which for all its faults has a great touchpad and scrolling experience).  What i currently use, is:
  services.xserver.displayManager.sessionCommands = ''
    ${pkgs.xorg.xinput} --set-prop 'SynPS/2 Synaptics TouchPad' 'libinput Accel Speed' 0.6
    ${pkgs.xorg.xinput} --set-prop 'TPPS/2 Elan TrackPoint' 'libinput Accel Speed' -0.5
  '';

but the disadvantage of this is that it seems to sometimes "forget" my config and revert to default speeds.  Is services.xserver.libinput.accelSpeed the recommended mechanism to set, declaratively, a different speed for trackpoints and touchpads on a Thinkpad?

xinput --set-prop 'YICHIP Wireless Device Mouse' 'libinput Accel Speed' 1.0
works for increasing speed of mouse


A question of preprocess ucf-101 🤗

I have the dataset of ucf-101 and it seems format mismatch with the preprocess.py.
My ucf-101 has 2 folder: (From https://www.crcv.ucf.edu/data/UCF101.php)
The UCF-101
$ tree -L 1 UCF-101/
UCF-101/
├── ApplyEyeMakeup
├── ApplyLipstick
├── Archery
...
├── WritingOnBoard
└── YoYo

And The ucfTrainTestlist
$ tree -L 1 ucfTrainTestlist/
ucfTrainTestlist/
├── classInd.txt
├── testlist01.txt
├── testlist02.txt
├── testlist03.txt
├── trainlist01.txt
├── trainlist02.txt
└── trainlist03.txt

Even I can process them with a script, but
How to deal with that? 🤗❤

This works.
import csv

def split_by_capital(name):
    # BoxingPunchingBag -> Boxing Punching Bag
    new_name = ""
    for i in range(len(name)):
        if name[i].isupper() and i != 0:
            new_name += " "
        new_name += name[i]
    return new_name

class_d = {}
with open("./ucfTrainTestlist/classInd.txt", "r") as f:
    class_l = f.readlines()
    for kv in class_l:
        k, v = kv.strip("\n").split(" ")
        class_d[k] = v

data_l = []
with open("./ucfTrainTestlist/trainlist01.txt", "r") as f:
    data_l.extend(f.readlines())
with open("./ucfTrainTestlist/trainlist02.txt", "r") as f:
    data_l.extend(f.readlines())
with open("./ucfTrainTestlist/trainlist03.txt", "r") as f:
    data_l.extend(f.readlines())

for i in range(len(data_l)):
    k, v = data_l[i].strip("\n").split(" ")
    data_l[i] = "./videos/UCF-101/" + k, split_by_capital(class_d[v])

with open("./ucfTrainTestlist/data_index.csv", "w") as f:
    writer = csv.writer(f)
    writer.writerows(data_l)

print("Finish!")


Mock BigQuery client

Create a BQ client interface with all functions inside it. It helps us to mock functions using the client.
ref- https://github.com/neha-Gupta1/conduit-connector-bigquery/pull/12#discussion_r886723861

PR - https://github.com/neha-Gupta1/conduit-connector-bigquery/pull/33


[BUG]Buffer Memory not available?

Under Memory only "Agent Memory" is available and this is not connectable to the memory input of the Conversation Chain.
Buffer Memory not available in version 2.0.5

This is not a bug. When you use Agentflows, that is the only memory u need.

thanks - it is still available in the chat flows


New package: Todo v0.2.0

Registering package: Todo
Repository: https://github.com/analytech-solutions/Todo.jl
Created by: @krrutkow
Git reference: register/Todo/v0.2.0
Version: v0.2.0
Commit: 087c9bb6eb5eeabc3e8ea3b7f01c72aff39de598
Reviewed by: @krrutkow
Reference: https://github.com/analytech-solutions/Todo.jl/commit/087c9bb6eb5eeabc3e8ea3b7f01c72aff39de598#commitcomment-33529837

Please just retag 0.1.0. You can retrigger for the same version.


Enhancement: avoid computing full mask (+ adding types)

While running a generation using the CLI on the student JSON grammar with the Phi-3.5-mini-4bit model, I observed that the majority of tokens were already valid without applying a mask.

As evident in the screenshot above, the green tokens were sampled without constraints and were already valid.
I implemented the following logic in the mask_logits method:

Compute the argmax of the logits to determine the sampled token (with temperature set to 0). This operation has negligible computational cost (approximately 1e-5 seconds).
Evaluate the validity of this token.
If valid, return this token directly.
If invalid, compute the entire mask.

This minor modification resulted in a significant speed increase of 3 tokens per second.

As shown in the second screenshot, the impact of the logits_processor has been substantially reduced. It's worth noting that this improvement becomes more pronounced as the vocabulary size increases.

@nathanrchn  This looks great.  I think we could provide user two execution mode: speculation and full_mask
In some cases, full_mask does has its own advantage like it allows user to measure how many probablity mass is distributed on the allowed tokens VS non-allowed tokens etc.
Once this is done, I'm ready to merge it !

Won't this lead to the generation becoming deterministic when the top token is valid? This will lead to e.g. strings in JSON almost aways being generated deterministically.

Of course these changes works only when temperature = 0 (which is already deterministic).

@nathanrchn  Thank you again for the amazing work ;)


[SPARK-31021][SQL] Support MariaDB Kerberos login in JDBC connector

What changes were proposed in this pull request?
When loading DataFrames from JDBC datasource with Kerberos authentication, remote executors (yarn-client/cluster etc. modes) fail to establish a connection due to lack of Kerberos ticket or ability to generate it.
This is a real issue when trying to ingest data from kerberized data sources (SQL Server, Oracle) in enterprise environment where exposing simple authentication access is not an option due to IT policy issues.
In this PR I've added MariaDB support (other supported databases will come in later PRs).
What this PR contains:

Introduced SecureConnectionProvider and added basic secure functionalities
Added MariaDBConnectionProvider
Added MariaDBConnectionProviderSuite
Added MariaDBKrbIntegrationSuite docker integration test
Added some missing code documentation

Why are the changes needed?
Missing JDBC kerberos support.
Does this PR introduce any user-facing change?
Yes, now user is able to connect to MariaDB using kerberos.
How was this patch tested?

Additional + existing unit tests
Additional + existing integration tests
Test on cluster manually

Can one of the admins verify this patch?

Test build #120336 has started for PR 28019 at commit ff04926.

Test build #120336 has finished for PR 28019 at commit ff04926.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
  class JDBCConfiguration(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/120336/
Test FAILed.

Seems unrelated.

retest this please

Test build #120353 has started for PR 28019 at commit ff04926.

Filed https://issues.apache.org/jira/browse/SPARK-31247

Test build #120353 has finished for PR 28019 at commit ff04926.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
  class JDBCConfiguration(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/120353/
Test FAILed.

Seems unrelated.

retest this please

Test build #120363 has started for PR 28019 at commit ff04926.

Filed https://issues.apache.org/jira/browse/SPARK-31252

Test build #120363 has finished for PR 28019 at commit ff04926.

This patch fails Spark unit tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
  class JDBCConfiguration(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/120363/
Test FAILed.

Seems unrelated.

retest this please

Test build #120404 has started for PR 28019 at commit ff04926.

Hm, I think the tests became considerably flaky lately .. might be best to file a JIRA.

Test build #120404 has finished for PR 28019 at commit ff04926.

This patch fails due to an unknown error code, -9.
This patch merges cleanly.
This patch adds the following public classes (experimental):
  class JDBCConfiguration(

Merged build finished. Test FAILed.

Test FAILed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/120404/
Test FAILed.

retest this please

Test build #120407 has started for PR 28019 at commit ff04926.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/25115/
Test PASSed.

Test build #120407 has finished for PR 28019 at commit ff04926.

This patch passes all tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
  class JDBCConfiguration(

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/120407/
Test PASSed.

Filed https://issues.apache.org/jira/browse/SPARK-31266 and https://issues.apache.org/jira/browse/SPARK-31267

cc @HeartSaVioR

Test build #120581 has started for PR 28019 at commit 89f5ac9.

Test build #120581 has finished for PR 28019 at commit 89f5ac9.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/120581/
Test PASSed.

cc @vanzin @dongjoon-hyun

While I'm implementing DB2 kerberos part I've realised that creating new database is not essential for kerberos testing so I've made this simplification in the last commit. Worth to mention re-executed all the docker tests again and all passed.

Test build #120670 has started for PR 28019 at commit 2bb6426.

Test build #120670 has finished for PR 28019 at commit 2bb6426.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/120670/
Test PASSed.

Test build #120865 has started for PR 28019 at commit 2740a50.

Test build #120865 has finished for PR 28019 at commit 2740a50.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/120865/
Test PASSed.

Loks good, merging to master.

@vanzin many thanks for taking care!


Add support for the spanmetrics connector

Which problem is this PR solving?
Resolves #4345
Short description of the changes

Adds support for spanmetrics connector via config parameters, while maintaining backwards compatibility with spanmetrics processor.
Some quality of life changes added to help contributors with making changes to the SPM feature.

Testing

Add test cases for connector case, and rely on existing tests to assert backwards compatibility.
Manual testing via docker-compose to ensure both the service-level and operation-level metrics are visible in the Monitor tab.

@yurishkuro please let me know if there's anything else that needs addressing in this PR.

hi @albertteoh @yurishkuro. Are the changes included in all the images of Jaeger componets (agent, colector, query,....) version 1.45 ? If not, is any addional configuration needed to add ? Thanks

Are the changes included in all the images of Jaeger componets (agent, colector, query,....) version 1.45 ?

@hdong69 this change should be available from the next release (version 1.46.0), and is only relevant to jaeger all-in-one and jaeger-query components.

is any addional configuration needed to add ?

Please find instructions here: https://github.com/jaegertracing/jaeger/tree/main/docker-compose/monitor#migrating

@albertteoh thanks for your feedback. so I understand that following the instruction (adding some variables in jaeger-query,...) could make the current version of jaeger query (jaegertracing/jaeger-query:1.45) works ? please correct me if i am wrong. thanks

so I understand that following the instruction (adding some variables in jaeger-query,...) could make the current version of jaeger query (jaegertracing/jaeger-query:1.45) works (curently, p95 doesnot appear in my Jaeger UI ) ?

Apologies, I wasn't clear. The instructions above only apply from version 1.46.
jaeger-query 1.45 will only work (for Latencies) with OTEL collector versions 0.70.0 and below. It was broken because of a breaking change to the prometheusexporter in OTEL collector.
I'll create a PR that updates the v1.46 documentation to include these details.

so I understand that following the instruction (adding some variables in jaeger-query,...) could make the current version of jaeger query (jaegertracing/jaeger-query:1.45) works (curently, p95 doesnot appear in my Jaeger UI ) ?

Apologies, I wasn't clear. The instructions above only apply from version 1.46.
jaeger-query 1.45 will only work (for Latencies) with OTEL collector versions 0.70.0 and below. It was broken because of a breaking change to the prometheusexporter in OTEL collector.
I'll create a PR that updates the v1.46 documentation to include these details.

okay i got it. Many thanks

Can we get a 1.46 release out?


gorm.Open

Hi i m trying move my jinzhu/gorm packet to go-gorm/gorm packet. But I think open function is changed.  I used to use it like this.
DB, err = gorm.Open("postgres", cnnString)
But now we have new parameters
func Open(dialector Dialector, config *Config) (db *DB, err error)
I checked https://gorm.io/docs/ link but it is old version quick start description. Can you share me a sample for open function. It is realy great packet for go and i want to use new packet in my project.
thanks.

http://v2.gorm.io/


JXL (JPEG XL) Image Support

A modern and efficient image format that is currently in its final stages of standardization, it can be implemented and supported by Flutter so by the time it is the new standard, it is fully functional.
libjxl

sounds like a good idea for a package rather than a first party feature
how does it compare to webp?

sounds like a good idea for a package rather than a first party feature
how does it compare to webp?

I do agree with you to an extent, the thing about JXL is it is a superset of JPEG in a way, and some might say it is a replacement of JPEG.
As far as I can see, it can make a big difference for web and embedded servers or limited bandwidth networks.

Here is a comparison of JXL against other image formats, including webp.

Generation loss from re-encoding - YouTube

Speed and size comparison - YouTube

Flutter has support for falling for using codecs on the device for codecs it doesn't ship with in the Flutter Engine binary. If the device supports that codec, so will Flutter apps automatically.
But we don't want to add this additional codec as it will increase the engine binary size for all application and it seems like Chrome is dropping support for it too.
If the application really wishes to support this format, I recommend a plugin.
Closing this as a Wont-Fix.


Update react-native lib and project to v0.17

Can we merge this? Trying to add lock-android to rn v.17.
@hzalaz

@hzalaz Thanks. Can you publish on maven/jcentral also?

I'll do it tomorrow EOD cause I wan to see if I can squeeze something else in the release

sure. Thanks :+1:


Alpha white edges in harmony on PNGs

 Freshdesk Ticket ID: 111
 Freshdesk Ticket Agent: Milan Kolar
 Freshdesk Ticket Agent Email<EMAIL_ADDRESS> Ticket Priority: High
 Freshdesk Ticket Description:

Hey, just wondering if you have heard about this. Whenever we import bg's in (through png) this weird halo appears. When we go into the render view. A weird glitch happens.

[12:31 PM]

Agent Milan Kolar linked Freshdesk ticket 111 for this issue.