Are there any plans to implement more math functions?

Hi,
Are there any immediate plans to implement more math functions, such as log() and exp()? If not, is there a reason as to why they haven't been implemented?
Thanks.

Hi,
There are plans to add both precise and approximate versions of various mathematical functions. The list of functions is at least what C++ provides in the cmath header, initially the C++98 subset, later C++11.
The reason why this hasn't been done already is lack of time. The projects that use libsimdpp and where I'm involved myself don't use most of these functions. The implementations of functions that are used are not rigorously tested and it's probably not a good idea to open source things that are possibly broken in some edge case :-)
Any contributions in this area are welcome. One possibility to reduce the effort needed is to port the code that boost.simd uses (at least used to use, before the recent purge of history), as the licenses are the same.

Forgot to mention that there's several more people interested in math functions, though I don't know how much time they will be able contribute. For anyone who starts working on this feature, please create an issue for functions that you are working on, assign to yourself and don't close the issue until the implementation lands into the master branch.

Thanks for the quick reply.
Unfortunately I haven't got the time at the moment to attempt the implementation of further math functions, but I will have a go if/when I'm less busy.
Shall I leave this issue open for the time being?

Yes, let's leave this issue open.

In older projects we used Intel's amath for exp2(), sin(), cos(), and possibly some other similar functions. It would be nice to these in simdpp!

I am currently porting boost.simd math functions to libsimdpp. I will come up with some initial pull requests in the near future.

@xugng Could you do a preliminary PR as early as possible so that we can discuss changes? Even a single function would be enough at the beginning.

The license for Gromacs (LGPL >= 2.1) prevents it from being included in libsimdpp
but it contains some highly optimized SIMD code for mathematical functions. I haven't used it myself
but I guess it might be useful outside the scope of libsimdpp. I just wanted to mention it because
the Gromacs SIMD implementation of mathematical functions might not be so well-known.
https://github.com/gromacs/gromacs/blob/master/src/gromacs/simd/simd_math.h
http://manual.gromacs.org/documentation/2016.4/doxygen/html-lib/simd__math_8h.xhtml
https://stackoverflow.com/a/47951585/757777


playwright/expect-expect with expect in fixtures gives warning

Hi,
I've updated to the latest, and I'm getting lint warnings for playwright/expect-expect in some of my tests where I have a bunch of custom fixtures. There is no expect directly in the top level test, but there are in each of the fixtures. I've written the fixtures due to the amount of code reuse in the application. So, for example, our test looks like:
test('Create Document', async ({
  context,
  page,
  homePage,
  customerInvoice,
  cashControl,
  documentSearch,
  paymentApplication,
  paymentApplicationAdjustment
}) => {
  await homePage.goto();
  await homePage.getSidebar().jumpTo('Customer Invoice');
  await customerInvoice.awaitInitialLoad();
  const docId= await customerInvoice.createRequiredCustomerInvoice([data here]);
  ... more processing here ...
};

So each of the fixtures like homePage, customerInvoice, etc, have expect within them. Is my only option at this time to disable the rule for these top level drivers?
Thanks!

This is kind of the point of the expect-expect rule. It's not clear in the code you've written that there are any expectations. I would highly recommend against using expectations in page objects as it makes your code much less clear.
The way I think about it is that page objects drive the test and then expectations ensure your app does what it should.

Sounds like https://github.com/playwright-community/eslint-plugin-playwright/issues/154 would help with this

That's fair. I'm just trying to reduce duplication since these will be used in many many different tests.

Maybe it would be possible to statically analyse the called methods for existence of expects? Then only when there is provably at least one execution path that leads to no expect would the warning trigger. But I'm not familiar enough with static analysis to say how easy or hard this is to do. I do know that many IDEs provide this level of insight in some cases (e.g. warnings that some parameter of a function is unused by all callers).
Some very nice features of having expectations in page object methods is that

a complex assertion can be wrapped in a test.step(), so it's readable as one step in the html report.
testing (especially integration testing) complex flows becomes a lot more manageable.

By the second I mean the following: at work we have these SAP Luigi microfrontends, which are basically independent SPAs that are hosted on different domains and are stitched together via iFrames into a cohesive whole.
Integration testing a long flow across multiple of the SPAs can then be done like this:
// "page"-objects, which represents an entire SPA and encapsulate page objects for the individual pages
spa1App.someComplexSetup();
spa2App.doSomeSubflow();
spa3App.verifyThatHappyPathFlowStillWorks();

or possibly with one of these levels broken up to test an interesting bit directly and surround it with happy-path one-liners:
// "page"-objects, which represents an entire SPA and encapsulate page objects for the individual pages
spa1App.someComplexSetup();
... lots of individual steps and assertions directly in the test
spa3App.verifyThatHappyPathFlowStillWorks();

I do know that many IDEs provide this level of insight in some cases (e.g. warnings that some parameter of a function is unused by all callers).

That typically requires type information which is something that static analysis with ESLint doesn't provide. Perhaps it's possible using @typescript-eslint, I'm honestly not sure.
I'll again re-iterate that placing expect statements in page objects is NOT recommended.  That's my entire point in this thread. I'm trying to convey what is and isn't recommended. If you decide to use a different pattern for you app, that's totally fine, but the ESLint rules this plugin provides are aimed at helping you write code according to recommendations we have from experience writing Playwright tests and from recommendations from the Playwright team itself.
For your use case, you're probably best to just disable the rule if you want to continue using page objects the way you are. There's nothing wrong with disabling this rule if it doesn't fit your coding standards. I still would recommend rethinking expects in page objects, but again that's your decision.


Allow PATCH method in github_api requests

Checklist

[x] I've run bundle exec rspec from the root directory to see all new and existing tests pass
[x] I've followed the fastlane code style and run bundle exec rubocop -a to ensure the code style is valid
[x] I've read the Contribution Guidelines
[x] I've updated the documentation if necessary.

Motivation and Context
There are API calls in the GitHub API that require the PATCH verb. Editing a release is one example. Fastlane currently unnecessarily disallows these as part of a validation before the call is made.
Description
This change adds PATCH to the list of valid HTTP methods.

I signed it!


Add domain name geo location lookup

Background
To get domain name hosted geo location for setting ACL;
Suggestion
Add feature to get domain name geo location; As most of the existing API are required API key and / or license restricted to redistribute data.
There are 2 options:

IP to ASN. It is free but it only can lookup to country level.
IP2Location. Require register but it can lookup to city level.

Common problem:

Data source from external source. Need to find a wat to keep data in latest version.

Code change and pushed. But need to update the IP range lookup logic.


How Get Other Users of my website registration id

Hello
Please let me know how I can get other user of my website registration id to send push notifications.
please help me.
Regards,
Jaswant

Hey @Jaswant0039 I suggest posting this question to http://stackoverflow.com/questions/tagged/progressive-web-apps


Internal Server Error

I pulled new images yesterday, removed my logs and database, and started a new scan. I found this in the back-end log:
Not Found: /api/jobs/
Unauthorized: /api/rqavailable/
Bad Request: /api/nextcloud/listdir/
Not Found: /api/jobs/
Downloading: "https://download.pytorch.org/models/resnet152-b121ed2d.pth" to /root/.cache/torch/hub/checkpoints/resnet152-b121ed2d.pth
 37%|███▋      | 85.0M/230M [00:15<00:26, 5.84MB/s]Not Found: /api/jobs/
100%|██████████| 230M/230M [00:41<00:00, 5.89MB/s]
19:45:31 Cleaning registries for queue: default
19:59:01 Cleaning registries for queue: default
20:12:31 Cleaning registries for queue: default
20:26:01 Cleaning registries for queue: default
20:39:31 Cleaning registries for queue: default
20:53:01 Cleaning registries for queue: default
21:06:32 Cleaning registries for queue: default
21:20:02 Cleaning registries for queue: default
21:33:32 Cleaning registries for queue: default
21:47:02 Cleaning registries for queue: default
22:00:32 Cleaning registries for queue: default
22:14:02 Cleaning registries for queue: default
22:27:32 Cleaning registries for queue: default
22:41:02 Cleaning registries for queue: default
22:54:33 Cleaning registries for queue: default
23:08:03 Cleaning registries for queue: default
23:21:33 Cleaning registries for queue: default
23:35:03 Cleaning registries for queue: default
23:48:33 Cleaning registries for queue: default
00:02:03 Cleaning registries for queue: default
00:15:33 Cleaning registries for queue: default
00:29:03 Cleaning registries for queue: default
00:42:34 Cleaning registries for queue: default
00:56:04 Cleaning registries for queue: default
01:09:34 Cleaning registries for queue: default
01:23:04 Cleaning registries for queue: default
01:36:34 Cleaning registries for queue: default
01:50:04 Cleaning registries for queue: default
02:03:34 Cleaning registries for queue: default
02:17:04 Cleaning registries for queue: default
02:30:34 Cleaning registries for queue: default
02:44:05 Cleaning registries for queue: default
02:57:35 Cleaning registries for queue: default
03:11:05 Cleaning registries for queue: default
03:24:35 Cleaning registries for queue: default
03:38:05 Cleaning registries for queue: default
03:51:35 Cleaning registries for queue: default
04:05:05 Cleaning registries for queue: default
04:18:35 Cleaning registries for queue: default
04:32:05 Cleaning registries for queue: default
04:45:35 Cleaning registries for queue: default
04:59:06 Cleaning registries for queue: default
05:12:36 Cleaning registries for queue: default
05:26:06 Cleaning registries for queue: default
05:39:36 Cleaning registries for queue: default
05:53:06 Cleaning registries for queue: default
06:06:36 Cleaning registries for queue: default
06:20:06 Cleaning registries for queue: default
06:33:36 Cleaning registries for queue: default
06:47:06 Cleaning registries for queue: default
07:00:36 Cleaning registries for queue: default
07:14:06 Cleaning registries for queue: default
07:27:37 Cleaning registries for queue: default
07:41:07 Cleaning registries for queue: default
07:54:37 Cleaning registries for queue: default
08:08:07 Cleaning registries for queue: default
08:21:37 Cleaning registries for queue: default
08:35:07 Cleaning registries for queue: default
08:48:37 Cleaning registries for queue: default
09:02:07 Cleaning registries for queue: default
09:15:37 Cleaning registries for queue: default
09:29:07 Cleaning registries for queue: default
09:42:37 Cleaning registries for queue: default
09:56:08 Cleaning registries for queue: default
10:09:38 Cleaning registries for queue: default
10:23:08 Cleaning registries for queue: default
10:36:38 Cleaning registries for queue: default
10:50:08 Cleaning registries for queue: default
11:03:38 Cleaning registries for queue: default
11:17:08 Cleaning registries for queue: default
11:30:38 Cleaning registries for queue: default
11:44:08 Cleaning registries for queue: default
Unauthorized: /api/persons/
Unauthorized: /api/albums/place/list/
Unauthorized: /api/albums/user/list/
Unauthorized: /api/albums/thing/list/
Unauthorized: /api/searchtermexamples/
Unauthorized: /api/albums/date/photohash/list/
Unauthorized: /api/stats/
Unauthorized: /api/user/1/
Internal Server Error: /api/searchtermexamples/
Traceback (most recent call last):
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/exception.py", line 47, in inner
    response = get_response(request)
  File "/usr/local/lib/python3.8/site-packages/django/core/handlers/base.py", line 181, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/views/decorators/csrf.py", line 54, in wrapped_view
    return view_func(*args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/django/views/generic/base.py", line 70, in view
    return self.dispatch(request, *args, **kwargs)
  File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 509, in dispatch
    response = self.handle_exception(exc)
  File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 469, in handle_exception
    self.raise_uncaught_exception(exc)
  File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 480, in raise_uncaught_exception
    raise exc
  File "/usr/local/lib/python3.8/site-packages/rest_framework/views.py", line 506, in dispatch
    response = handler(request, *args, **kwargs)
  File "/code/api/views.py", line 1360, in get
    search_term_examples = get_search_term_examples(request.user)
  File "/code/api/api_util.py", line 163, in get_search_term_examples
    term_thing = random.choice(datum['things'])
  File "/usr/local/lib/python3.8/random.py", line 290, in choice
    raise IndexError('Cannot choose from an empty sequence') from None
IndexError: Cannot choose from an empty sequence
Not Found: /api/jobs/
11:57:38 Cleaning registries for queue: default
Unauthorized: /api/rqavailable/
Unauthorized: /api/rqavailable/

The backtrace is in the gunicorn_django.log file.

Hey, thanks for the bug report. This is a duplicate of #175 I think.
This is only related to the search at the top. It is the function which generates default examples to click on.
I will close this ticket due to being a duplicate :)


Fixing select for JOINs

When selecting with a JOIN table, just "*" doesn't do it as Fluent maps the id of JOIN table onto the target model
Super-simplified setup:
public final class Team: Model {
    public var id: UUID?
    public var name: String
    public var identifier: String
    public var admin: Bool
}

public final class User: Model {
    public var id: UUID?
    public var firstname: String
    public var lastname: String
    public var email: String
    public var verification: String?
    public var password: String?
    public var token: String?
    public var expires: Date?
    public var registered: Date
    public var disabled: Bool
    public var su: Bool
}

public final class TeamUser: ModifiablePivot, Model {

    public typealias Left = Team
    public typealias Right = User

    public static var leftIDKey: WritableKeyPath<TeamUser, UUID > {
        return \.teamId
    }

    public static var rightIDKey: WritableKeyPath<TeamUser, UUID > {
        return \.userId
    }

    public static var idKey: WritableKeyPath<TeamUser, UUID?> {
        return \.id
    }

    public var id: UUID?
    public var teamId: UUID
    public var userId: UUID

    // MARK: Initialization

    public init(_ left: TeamUser.Left, _ right: TeamUser.Right) throws {
        teamId = try left.requireID()
        userId = try right.requireID()
    }

}

extension User {

    public var teams: Siblings<User, Team, TeamUser> {
        return siblings()
    }

}

When I do user.teams.query(on: req).all() the teams I get back have id's on the team+user.id table ...

SELECT * is the appropriate behavior. This is a bug that needs to be fixed in Fluent.


Updated crossings status in pars, crkd, and carp

Sorry for the big dump. This should be the last of it for a little while I think.

No apologies necessary, thanks for doing all this QA!
I will try and get the updates applied right away.


implement iso8601 TimeSpan formatting

fixes #181
I ran this test. It basically tests that serializing and constructing returns the same TimeSpan that was serialized.
int main() {
    std::default_random_engine generator;
    std::uniform_int_distribution<int32_t> distribution(-2147483648,<PHONE_NUMBER>);
    char buf[19];
    for (int i=0; i<10000000; i++) {
        int32_t seconds = distribution(generator);
        TimeSpan t(seconds);
        t.toCharArray(buf, 19);
        TimeSpan t1(buf);
        assert(t1._seconds == t._seconds);
    }
}

I was looking for somewhere to put tests like this, but it seems like this repository doesn't really have tests.

What's the status of this PR? Should I do something to move it along?

I guess you could solve the two issues raised by GitHub:

This pull request is still a work in progress
This branch has conflicts that must be resolved

The conflict is pretty easy to fix:
diff --cc RTClib.cpp
index e282548,2ecffb4..3a0ff37
--- a/RTClib.cpp
+++ b/RTClib.cpp
@@@ -694,8 -713,8 +713,8 @@@ bool DateTime::operator==(const DateTim
      @return Timestamp string, e.g. "2020-04-16T18:34:56".
  */
  /**************************************************************************/
 -String DateTime::timestamp(timestampOpt opt) {
 +String DateTime::timestamp(timestampOpt opt) const {
-   char buffer[20];
+   char buffer[25]; // large enough for any DateTime, including invalid ones

    // Generate timestamp according to opt
    switch (opt) {

I would consider rebasing on top of master, and maybe squashing the last 9 commits together.
As for the “work in progress” status, you should be able to change it to “Ready for review”, when you are ready.


New version: GPUArrays v1.0.0

Registering package: GPUArrays
Repository: https://github.com/JuliaGPU/GPUArrays.jl
Created by: @maleadt
Version: v1.0.0
Commit: 3a6c08b60b1fcf686c4351fd250c16a03c4e6092
Reviewed by: @maleadt
Reference: https://github.com/JuliaGPU/GPUArrays.jl/commit/3a6c08b60b1fcf686c4351fd250c16a03c4e6092#commitcomment-34282623
Release notes:

Compatibility with latest Adapt.

Congrats on the 1.0 release!


Localization Support

Q: Is your feature request related to a problem? Please describe.
A: Some Strings are hardcoded ( "avg.", "No data available", ... ) with no way to change them.
Q: Describe the solution you'd like
A: Make them configurable or even better implement automatic localization for top n languages ( via strings file ).
Q: Describe alternatives you've considered
A: Forking but that would not be nice ^^
Thanks for your time
undeaD_D

PS: Is the Darkmode not working currently ? ( It does not switch automatically, and there is no clear example -> just an image inside the readme.md )

Solve the DarkMode issue myself ^^ The Color Assets are not available if FLCharts is used via SPM ...
Just copy the colors to the main apps asset folder to fix it.
Made a Fork that gets rid of the english strings ( "-" for the no data text, "Ø" for the average text, ... )
This is merely a temporary fix though.

@undeaDD Added localisation in v 1.9.0


How to use nexrender-action-cache

Forgive my ignorance but the documentation for nexrender-action-cache is very light.
how do I write a cache file, is it json and do I reference the file and location?
Improved documentation and an example cache file would be appreciated

Hey @JamesBotterill
Maybe this pull request would help shine a bit more light on the use case: https://github.com/inlife/nexrender/pull/616 ?
Cheers


'/' operator not in current release (1.2.0)

@casey just getting started here (heh).  As of 1.2.0 (current release as of this writing), this operator doesn't exist but the docs/book/readme describes things as if it does.  I know there is a lot to synchronize and it'll be a non-issue soon.   For those that are running into this currently, I'm installing from master using cargo install --git https://github.com/casey/just just.
Thanks for the amazing work!

Thanks for the note! This is unfortunately a recurring problem, I'll add a feature and add it to the readme, but then it might take a some time to make it into a release, and then there's confusion.
Some things that might help:

Release more frequently, potentially after every new feature. I kind of don't want to do this, because I like to have a little time for a feature to be in master, and potentially get a few users who might discover problems with it, before it makes it into a release.
Avoid building https://just.systems/man/en/ from master, and instead only update it on new releases. The readme would still be out of date, but we could add a note. One downside of this is that improvements to the readme would need to wait for a release to be published, even if they weren't related to a new feature.

I just released 1.3.0, so path operator away! In the future, I think I'll try to set a calendar reminder of like a week or so after I add a new feature to cut a release, to minimize the time that a new feature is documented in the readme but unavailable in a release.

Thanks for the amazing work!

And thank you for the kind words!

To help alleviate the problem maybe you could add the update to the README with a consistent suffix like (not yet released) that you can search for and update by either deleting the suffix or are add a new one like (available in version 1.3.0+) or some such. I always appreciate little notes that let you know when a features was added to the language. Though Just is not a full blown programming language I think its API could be tracked with the same mindset. Also I believe those notes can still be quite valuable for CI/CD integrators, etc.

That's a good idea, I'll try to add notes like that going forward. I can also add something to the release script that panics if it sees (unreleased) or (master branch).

Though Just is not a full blown programming language…

Someone needs to implement #792 so I can defend just against such unfair slander 😁


Multiple versions of Xcode are taking too much space

Does downloading different Xcode versions through Xcodes make some optimization to reduce the size or it just a CLI to manage them easily?
I mean if we installed 10 versions of Xcode through Xcodes, is this taking x10 storage a single version?

@ahmdyasser There's no optimization of making it smaller. So if you have 10 versions of Xcode, you're probably running out of disk space :)

thanks, @MattKiazyk


Log UID in a variety of places during auth process

Should help with getting a clearer picture regarding UID spoofing attacks.

Shouldn't we probably tell users that their UIDs are logged?

should probably log in activateplayer

Shouldn't we probably tell users that their UIDs are logged?

We've been logging UIDs since v1.5.1 via https://github.com/R2Northstar/NorthstarMods/pull/220 so this is nothing new.
Also keep in mind that UIDs are public information. Given an Origin playername one can use Origin APIs to extract that players UID. And as Origin playernames are required to be unique (albeit they can be changed by the user) this is not so different from just logging playernames which we've been doing since initial release :P


Scroll out Select component

Summary
When I open a Select component, I want the options to open below the component inside the same component instead of on top of it. It should work in a similar way like Accordion, but as a Select.
Examples
For example, I'd have a Select called Languages which when clicked would summon a list of languages to choose from but the list would expand the container where the Select is placed instead of summoning the list on top of it.
Motivation
I want to have such a component as an item in a mobile menu where it's easier to work with the items when they become the part of the container component and opening such Select would push the items below the Select down, making the menu scrollable.
Search keywords: select

@CzechCoder You can do this by using the disablePortal prop:
<Select MenuProps={{ disablePortal: true }} />

Here's a working demo: https://stackblitz.com/edit/mcve-react-material-ui-dgh8qu?file=src%2FApp.tsx


The most efficient way to extend the list

When you have an expandable array, what would be the most sufficient way to extend array, without digesting the whole array over.
 [].push.apply(scope.table, extending);

Yeah I'm wondering if this is usable/efficient with real client-server paging in the background.


159 - Manage File User Permissions for the Files Tab

What this PR does / why we need it:
This PR adds the management of the file user permissions for the  the Files Tab.
Which issue(s) this PR closes:

Closes #159

Special notes for your reviewer:
Changes

Two new useCases added to manage the file permissions checkFileDownloadPermission and checkFileEditDatasetPermission. Note: The checkFileEditDatasetPermission at the file level may be replaced in the future by a checkDatasetEditPermission at the dataset level but since in the js-dataverse implementation the editDataset permission can only be retrieved using a file, that's what have been implemented in the UI.
The File model has been refactored to remove the canDowload property since this property is actually a permission instead of a property of the resource. This affects most of the changed code
A FilePermissionsProvider has been added to globally manage the file permissions in the application

Suggestions on how to test this:
To test this from a UI perspective, the Files Tab elements in the Storybook should continue being displayed as in the previous PRs, this is because in previous PRs the permissions were hardcoded and now they have been implemented with their own use cases. So basically the testing consists on checking that everything is being displayed in the Files Table as it was before, for example as it was working in the feature/139-files-table-file-action-buttons-ui branch

npm i
cd packages/design-system && npm run build
cd ../../
npm run storybook
Check the Dataset Page and the stories in Sections/Dataset Page/DatasetFiles/

Is there a release notes update needed for this change?:
No
Additional documentation:

coverage: 98.58% (+0.5%) from 98.116% when pulling 81dfb57264bdfe3d84527e5bb3d890c68b3d16d0 on feature/159-manage-user-permissions-files into 86ce0d24c9c851856ad55345e1b74e9b48120281 on feature/139-files-table-file-action-buttons-ui.

@MellyGray I actually had trouble loading this in Storybook. I saw two blank pages:

@pdurbin For any class you see with the "Mother" suffix, it is a naming convention for classes used in testing that helps create objects used for testing.
https://martinfowler.com/bliki/ObjectMother.html

@MellyGray I keep seeing blank pages, even after trying the tricks:
Sometimes I fix the blank page in Storybook by deleting the node_modules cache, from the dataverse-frontend/ root run:
rm -rf node_modules/.cache && npm i
If that doesn't work then maybe try deleting the whole node_modules folder:
rm -rf node_modules && npm i

@kcondon We can try troubleshooting in a zoom call after the standup

@MellyGray Yes, maybe try after standup, thanks!

@MellyGray Works well but the changed behavior of the checkbox selecting all on a page rather than all isn't in this -still selects all files.

Works well but the changed behavior of the checkbox selecting all on a page rather than all isn't in this -still selects all files.

@kcondon I've merged the changes from 'develop' into this branch, so now the checkbox should work as expected here as well


Expect Confirmed Rule only working when enter the confirmed input

Expect confirmed rule should not wok when enter the email input.

Currently, the confirmed rule triggers validation on the target fields as well, This behavior should be changed to only do that when the confirmed input has been interacted with or the form is being manually validated with validator.validate()

@logaretm Yes, here is a similar problem #1912 , the validation should trigger by interaction or validator.validate()


sccache timeouts in CI

eg https://ci.heliax.dev/anoma/anoma/4214/3/4
+ sccache --start-server
sccache: Starting the server...
sccache: error: Timed out waiting for server startup

This only happens occasionally. We could probably workaround by allowing more time for sccache to start up.

I’ve also been getting these quite often

cache cleared, should be good for now


Regression issue #151

Bug #151 appears to have regressed and the related commit missing: https://github.com/diafygi/acme-tiny/pull/151/commits/28bd6745439631eee2c6c8485b851af650a03d79
This bug appears to occur again.  If there is an existing authentication via another mechanism, then verification gets stuck in a pending state perpetually.

My pull request is still open so this issue is technically not a regression and the related commit was never applied rather than missing. This is a pretty easy change to make by hand, so, if you are experiencing the issue, you could apply the change by hand. If that resolves it, you may want to make a second request to apply my pull request/commit.

Hah, I never even considered that a pull request from 2016 was still outstanding.  Yes, I made the change by hand myself and it fixed the problem.  Thanks for your bug fix!

For the ACME v2 re-write, I check for valid now. Is that what you were looking for?
https://github.com/diafygi/acme-tiny/blob/71a97aa92f0901d026a39810ad86a61f09e30cae/acme_tiny.py#L158

Looks like it.


_SslCertificate leaks 2Kb file

When using X509Certificate2's constructor it creates a 2kb file in C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys. This file is not cleaned up unless the X509Certificate2 object is Reset() or Dispose()ed.
In WatsonTcpClient and WatsonTcpServer's Dispose method,
if (_SslCertificate != null)
{
	_SslCertificate.Dispose();
}

Should be added.

A PR has been created
https://github.com/jchristn/WatsonTcp/pull/217

Hi @bendablegears thanks for doing this!  I'll get a new version pushed soon.  The reason for the delay is I'm moving the package off of Newtonsoft.Json, and encountering some issues in doing so.  But I will get it going, hopefully soon.  Cheers, Joel


Document next-prefetch

next-prefetch is a substitute for <Link /> (builds on top of it) that:

By default prefetches the given component using a ServiceWorker
It would have an option prefetch={false} if you want to turn it off
It would have an option fallbackWorker={true} to fallback to a web worker if the browser doesn't support service workers.

This is the technique that we use at ▲ZEIT to make everything really speedy.
We need to extract it out of our impl or someone can write this from scratch.
Installing a service worker is pretty intrusive, so I don't think this is something we want in core. We can write it as a separate module.

I'd like to help with this. Has there been a decision on whether it's going to be rewritten or if it's gonna be extracted from the zeit.co implementation? If it needs to be written from scratch, we should create a new repo for this to start working on this implementation.

That would be fantastic!
React-boilerplate seems to be doing similar, and it falls back to AppCache on older browsers. It seems to rely on Webpack offline-plugin, would it help here?
It seems like page prefetching and caching can be a great feature to not only provide speedier page loads, but even provide offline availability? I think offering "offline" and "low-bandwidth" abilities could make Next.js quite attractive, especially with the huge amount of users in emerging markets. In combination with e.g GraphQL, it could compete against Firebase which has an offline feature.
To make things straightforward to the user, could prefetching be offered out of the box so that users can see its full potential right away, like offline-plugin does? (If necessary, allow to disable through configuration.)

Also see Create React PWA based on Create-React-App, to create progressive web apps. It also features an "add to home screen" link (see blog post with short demo video).
Not saying all of this should be implemented right away, but definitely prefetching/caching would help with all of that.

@sedubois that makes sense. Let me go through those and start a new repo on my personal GitHub. We can migrate that repo into the Zeit organisation once it looks good. I'll definitely like to that repo here once I start it so we can keep everyone working on it up to date :)

@sedubois That sounds perfect. Let me go through those resources and begin working on this. Anyone else who wants to help, that'd be awesome

Exactly what is being discussed right now at https://developer.chrome.com/devsummit/

Thanks @ugiacoman, is there any way to view the talk or related article?

It looks like they haven't archived the stream yet. A few good pieces that I have read involves service workers. It seems incredibly easy, and it would be incredible if next allowed you to select assets and URLs to store via the service workers. The benefits are 💯  awesome. Here are the links below:
Pre-fetching with Service Workers
Push Notifications
PWA Checklist

This definitely seems like an exciting way forward in terms af setting a standard for future JS frameworks to implement.

@rauchg how can I help with this? It's a big want for my team 😉

Guys, I did a PR implementing page prefetching.
Have a look at here: https://github.com/zeit/next.js/pull/375

@arunoda any future plan for fallback to AppCache?

@sedubois we will add some fallback support with AppCache or something similar.

Any idea on whether this will make it into a release of next.js anytime soon?

It's already in master


Creating tunnel from localhost to gremlin server timed out

Hi, I have been following this wiki for Launch DynamoDB Storage Backend for Titan: http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Tools.TitanDB.GremlinServerEC2.html
The stack has been deployed and I am stuck at Step 9. The error message I had is: ssh -o ServerAliveInterval=50 -nNT -L8182:localhost:8182 -i ${HOME}/.ec2/dynamodb-gremlin-server.pem.txt<EMAIL_ADDRESS>ssh: connect to host ec2-54-167-134-221.compute-1.amazonaws.com port 22: Operation timed out
I have the dynamodb-gremlin-server.pem SSH key created on AWS and downloaded locally, but I don't have the ${HOME}/.ec2/ dir locally. So I had to manually create the /.ec2 folder and copy the key into it. Not sure if I missed anything and if the time out error is related to this.
Please let me know if you have any suggestions. Thank you very much!!

In case people are wondering what the issue is here. The VPC stack is created with an ACL and a security group setting on Source <IP_ADDRESS>/32 which means that access to the configured port 22 is still blocked. This needs to be changed to <IP_ADDRESS>/0 and then connection can be established. Check both ACL of your VPC and the EC2 associated security group

You need to properly configure the access origin for SSH port 22. Otherwise, you will not be able to SSH. You could set it to the IP address of your own computer, or to the IP address/prefix of another EC2 host in case your IP is dynamic.


Add list formatting extensions

Sf has function to format map representation, we should also do for list in following variants:

item1, item2, ...itemN
key1=>item1, key2=>item2 ,...

Required this feature in Ferrum

Should also add parameter for limit  number of item to print (if slice is too big)


Broken Link

https://aka.ms/azspshmigration170 lands on a 404 page...

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

ID: 149e500e-2dab-63cf-089c-92292073f589
Version Independent ID: d16476ba-1834-ac38-1142-a36a4864bb29
Content: Overview of Azure Stack Admin PowerShell
Content Source: docs-conceptual/azurestackps-1.7.1/overview.md
Service: azure-stack
GitHub Login: @sijuman
Microsoft Alias: sijuman

It should redirect here:
https://github.com/Azure/azure-powershell/blob/AzureRM/documentation/migration-guides/Stack/azurestack.1.7.1.md

@sijuman This is an Azure Stack doc issue, please fix.

@bganapa

This is fixed

I could not close, can some one close this issue as this got fixed


ec2_elastic_ip fails in autoscaling (same name)

https://github.com/puppetlabs/puppetlabs-aws/blob/master/examples/elastic-ip-addresses/README.md
ec2_elastic_ip needs to support instance_id as the same name can be used multiple times which leads to failure. Also, in an autoscale scenario it doesn't attach to the new node because the terminated node still carries the name you are trying to attach to. If it was instance_id you could use factor facts for ec2_instance_id in your manifests. Please help and support instance_id as well. Error below.
Warning: Multiple instances found named ePixFTPQAv1.0, using i-6cbf8743
Error: Could not set 'attached' on ensure: stopped waiting, encountered a failure state at 21:/opt/releases/puppet/manifests/site.pp
Error: Could not set 'attached' on ensure: stopped waiting, encountered a failure state at 21:/opt/releases/puppet/manifests/site.pp
Wrapped exception:
stopped waiting, encountered a failure state
Error: /Stage[main]/Main/Ec2_elastic_ip[<IP_ADDRESS>]/ensure: change from detached to attached failed: Could not set 'attached' on ensure: stopped waiting, encountered a failure state at 21:/opt/releases/puppet/manifests/site.pp
ec2_elastic_ip { '<IP_ADDRESS>':
ensure   => 'attached',
instance => 'ePixFTPQAv1.0',
region   => 'us-east-1',
}

@CarmenAPuccio, reading through the thread, I believe this was resolved for you by #188. Can I close this issue? Thanks!


Change Password page is "sticky"

When going to the "Password" tab in the user settings the form get automatically filled by Javascript (I think) with the effect of having your browser ask you for confirmation before leaving the page again.
Stumbled upon this while going trough all tabs in the Settings page.
Haven't tried on try.gitea.io but I guess that's how it works there too.
My tests were done locally against 1.1.0-dev (f4feeecc3af089a105c9a1ad976a78cd6856b407)

Isn't that specific and an implementation detail of your browser? How would we change this behaviour?

I haven't dug but I suspect the problem is with having Javascript
write into the form, rather than shipping the default form content
directly with the HTML

I suspect it's Your browser's password manager filling the form. When the form is non-empty, there is javascript's beforeunload event, that tries to warn You, that You are trying to leave non-empty form.

yeah, the areYouSure-plugin is doing the asking... might make that an optionally injected script for the pages that actually needs it (issue, wiki, anything with an editor) instead

This doesn't happen without password autofill.

@tboerger there's a no-autofill setting for input-boxes IIRC

@tboerger there's a no-autofill setting for input-boxes IIRC

I don't get this field prefilled automatically.


OpenSSL 1.1.1a: asn1_time and time_offset test failing on HP-UX

Output from make test V=1 TESTS="test_asn1_time test_time_offset" gives ...
        ( cd test; \
          mkdir -p test-runs; \
          SRCTOP=../. \
          BLDTOP=../. \
          RESULT_D=test-runs \
          PERL="/opt/perl5/bin/perl" \
          EXE_EXT= \
          OPENSSL_ENGINES=`cd .././engines 2>/dev/null && pwd` \
          OPENSSL_DEBUG_MEMORY=on \
            /opt/perl5/bin/perl .././test/run_tests.pl test_asn1_time test_time_offset )
../test/recipes/90-test_asn1_time.t ....
1..1
    # INFO:  @ test/asn1_time_test.c:343
    # Adding negative-sign time_t tests
    # INFO:  @ test/asn1_time_test.c:347
    # Adding 64-bit time_t tests
    # Subtest: ../../test/asn1_time_test
    1..4
        # Subtest: test_table_pos
        1..46
        ok 1 - iteration 1
        ok 2 - iteration 2
        ok 3 - iteration 3
        ok 4 - iteration 4
        ok 5 - iteration 5
        ok 6 - iteration 6
        ok 7 - iteration 7
        ok 8 - iteration 8
        ok 9 - iteration 9
        ok 10 - iteration 10
        ok 11 - iteration 11
        ok 12 - iteration 12
        ok 13 - iteration 13
        ok 14 - iteration 14
        ok 15 - iteration 15
        ok 16 - iteration 16
        ok 17 - iteration 17
        ok 18 - iteration 18
        ok 19 - iteration 19
        ok 20 - iteration 20
        ok 21 - iteration 21
        ok 22 - iteration 22
        ok 23 - iteration 23
        ok 24 - iteration 24
        ok 25 - iteration 25
        ok 26 - iteration 26
        ok 27 - iteration 27
        ok 28 - iteration 28
        ok 29 - iteration 29
        ok 30 - iteration 30
        ok 31 - iteration 31
        ok 32 - iteration 32
        ok 33 - iteration 33
        ok 34 - iteration 34
        ok 35 - iteration 35
        ok 36 - iteration 36
        ok 37 - iteration 37
        ok 38 - iteration 38
        ok 39 - iteration 39
        ok 40 - iteration 40
        # ERROR: (int) 'ASN1_TIME_cmp_time_t(&atime, td->t) == 0' failed @ test/asn1_time_test.c:130
        # [-2] compared to [0]
        # INFO:  @ test/asn1_time_test.c:131
        # ASN1_TIME_cmp_time_t(199912310100+0100 vs 946598400) compare failed
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, &atime, &atime) == true' failed @ test/asn1_time_test.c:135
        # false
        # INFO:  @ test/asn1_time_test.c:136
        # ASN1_TIME_diff(199912310100+0100) to self failed
        # ERROR: (int) 'sec == 0' failed @ test/asn1_time_test.c:139
        # [40] compared to [0]
        # INFO:  @ test/asn1_time_test.c:140
        # ASN1_TIME_diff(199912310100+0100) to self not equal
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, &gtime, &atime) == true' failed @ test/asn1_time_test.c:144
        # false
        # INFO:  @ test/asn1_time_test.c:145
        # ASN1_TIME_diff(199912310100+0100) to baseline failed
        # ERROR: (int) 'ASN1_TIME_cmp_time_t(&atime, gtime_t) == td->cmp_result' failed @ test/asn1_time_test.c:154
        # [-2] compared to [0]
        # INFO:  @ test/asn1_time_test.c:155
        # ASN1_TIME_cmp_time_t(199912310100+0100) to baseline bad comparison
        # ERROR: (int) 'ASN1_TIME_normalize(ptime) == td->check_result' failed @ test/asn1_time_test.c:189
        # [0] compared to [1]
        # INFO:  @ test/asn1_time_test.c:190
        # ASN1_TIME_normalize(199912310100+0100) failed
        # ERROR: (int) 'ptime->type == td->expected_type' failed @ test/asn1_time_test.c:193
        # [24] compared to [23]
        # INFO:  @ test/asn1_time_test.c:194
        # ASN1_TIME_set_string_gmt(199912310100+0100) unexpected type
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, ptime, &atime) == true' failed @ test/asn1_time_test.c:198
        # false
        # INFO:  @ test/asn1_time_test.c:199
        # ASN1_TIME_diff(day=0, sec=0,<PHONE_NUMBER>00+0100) after ASN1_TIME_set_string_gmt() failed
        # ERROR: (int) 'ASN1_TIME_cmp_time_t(ptime, gtime_t) == td->cmp_result' failed @ test/asn1_time_test.c:202
        # [-2] compared to [0]
        # INFO:  @ test/asn1_time_test.c:203
        # ASN1_TIME_cmp_time_t(199912310100+0100) after ASN1_TIME_set_string_gnt() to baseline bad comparison
        # INFO:  @ test/asn1_time_test.c:207
        # ASN1_TIME_set_string_gmt() =<PHONE_NUMBER>00+0100
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, ptime, &atime) == true' failed @ test/asn1_time_test.c:222
        # false
        # INFO:  @ test/asn1_time_test.c:223
        # ASN1_TIME_diff(day=0, sec=0,<PHONE_NUMBER>00+0100) after ASN1_TIME_set_string() failed
        # ERROR: (int) 'ASN1_TIME_cmp_time_t(ptime, gtime_t) == td->cmp_result' failed @ test/asn1_time_test.c:226
        # [-2] compared to [0]
        # INFO:  @ test/asn1_time_test.c:227
        # ASN1_TIME_cmp_time_t(199912310100+0100) after ASN1_TIME_set_string() to baseline bad comparison
        # INFO:  @ test/asn1_time_test.c:231
        # ASN1_TIME_set_string() =<PHONE_NUMBER>00+0100
        # ERROR:  @ test/asn1_time_test.c:253
        # atime=199912310100+0100
        #
        not ok 41 - iteration 41
        ok 42 - iteration 42
        ok 43 - iteration 43
        ok 44 - iteration 44
        # ERROR: (int) 'ASN1_TIME_cmp_time_t(&atime, td->t) == 0' failed @ test/asn1_time_test.c:130
        # [-2] compared to [0]
        # INFO:  @ test/asn1_time_test.c:131
        # ASN1_TIME_cmp_time_t(9912310100+0100 vs 946598400) compare failed
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, &atime, &atime) == true' failed @ test/asn1_time_test.c:135
        # false
        # INFO:  @ test/asn1_time_test.c:136
        # ASN1_TIME_diff(9912310100+0100) to self failed
        # ERROR: (int) 'sec == 0' failed @ test/asn1_time_test.c:139
        # [44] compared to [0]
        # INFO:  @ test/asn1_time_test.c:140
        # ASN1_TIME_diff(9912310100+0100) to self not equal
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, &gtime, &atime) == true' failed @ test/asn1_time_test.c:144
        # false
        # INFO:  @ test/asn1_time_test.c:145
        # ASN1_TIME_diff(9912310100+0100) to baseline failed
        # ERROR: (int) 'ASN1_TIME_cmp_time_t(&atime, gtime_t) == td->cmp_result' failed @ test/asn1_time_test.c:154
        # [-2] compared to [0]
        # INFO:  @ test/asn1_time_test.c:155
        # ASN1_TIME_cmp_time_t(9912310100+0100) to baseline bad comparison
        # ERROR: (int) 'ASN1_TIME_normalize(ptime) == td->check_result' failed @ test/asn1_time_test.c:189
        # [0] compared to [1]
        # INFO:  @ test/asn1_time_test.c:190
        # ASN1_TIME_normalize(9912310100+0100) failed
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, ptime, &atime) == true' failed @ test/asn1_time_test.c:198
        # false
        # INFO:  @ test/asn1_time_test.c:199
        # ASN1_TIME_diff(day=0, sec=0,<PHONE_NUMBER>+0100) after ASN1_TIME_set_string_gmt() failed
        # ERROR: (int) 'ASN1_TIME_cmp_time_t(ptime, gtime_t) == td->cmp_result' failed @ test/asn1_time_test.c:202
        # [-2] compared to [0]
        # INFO:  @ test/asn1_time_test.c:203
        # ASN1_TIME_cmp_time_t(9912310100+0100) after ASN1_TIME_set_string_gnt() to baseline bad comparison
        # INFO:  @ test/asn1_time_test.c:207
        # ASN1_TIME_set_string_gmt() =<PHONE_NUMBER>+0100
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, ptime, &atime) == true' failed @ test/asn1_time_test.c:222
        # false
        # INFO:  @ test/asn1_time_test.c:223
        # ASN1_TIME_diff(day=0, sec=0,<PHONE_NUMBER>+0100) after ASN1_TIME_set_string() failed
        # ERROR: (int) 'ASN1_TIME_cmp_time_t(ptime, gtime_t) == td->cmp_result' failed @ test/asn1_time_test.c:226
        # [-2] compared to [0]
        # INFO:  @ test/asn1_time_test.c:227
        # ASN1_TIME_cmp_time_t(9912310100+0100) after ASN1_TIME_set_string() to baseline bad comparison
        # INFO:  @ test/asn1_time_test.c:231
        # ASN1_TIME_set_string() =<PHONE_NUMBER>+0100
        # ERROR: (ptr) 'ptime != NULL' failed @ test/asn1_time_test.c:237
        # 0x0
        # INFO:  @ test/asn1_time_test.c:238
        # ASN1_TIME_to_generalizedtime(9912310100+0100) failed
        # ERROR:  @ test/asn1_time_test.c:253
        # atime=9912310100+0100
        #
        not ok 45 - iteration 45
        ok 46 - iteration 46
    not ok 1 - test_table_pos
        # Subtest: test_table_neg
        1..3
        ok 1 - iteration 1
        ok 2 - iteration 2
        ok 3 - iteration 3
    ok 2 - test_table_neg
        # Subtest: test_table_pos_64bit
        1..4
        ok 1 - iteration 1
        ok 2 - iteration 2
        ok 3 - iteration 3
        ok 4 - iteration 4
    ok 3 - test_table_pos_64bit
        # Subtest: test_table_compare
        1..16
        ok 1 - iteration 1
        ok 2 - iteration 2
        ok 3 - iteration 3
        ok 4 - iteration 4
        ok 5 - iteration 5
        ok 6 - iteration 6
        ok 7 - iteration 7
        ok 8 - iteration 8
        ok 9 - iteration 9
        ok 10 - iteration 10
        ok 11 - iteration 11
        ok 12 - iteration 12
        ok 13 - iteration 13
        ok 14 - iteration 14
        ok 15 - iteration 15
        ok 16 - iteration 16
    ok 4 - test_table_compare
../../util/shlib_wrap.sh ../../test/asn1_time_test => 1
not ok 1 - running asn1_time_test

#   Failed test 'running asn1_time_test'
#   at /.../openssl-1.1.1a/test/../util/perl/OpenSSL/Test/Simple.pm line 77.
# Looks like you failed 1 test of 1.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests
../test/recipes/90-test_time_offset.t ..
1..1
    # Subtest: ../../test/time_offset_test
    1..1
        # Subtest: test_offset
        1..22
        ok 1 - iteration 1
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, &the_asn1_time, &at) == true' failed @ test/time_offset_test.c:79
        # false
        # INFO:  @ test/time_offset_test.c:80
        # ASN1_TIME_diff() failed for<PHONE_NUMBER>0000+0100
        #
        not ok 2 - iteration 2
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, &the_asn1_time, &at) == true' failed @ test/time_offset_test.c:79
        # false
        # INFO:  @ test/time_offset_test.c:80
        # ASN1_TIME_diff() failed for<PHONE_NUMBER>0000+0500
        #
        not ok 3 - iteration 3
        ok 4 - iteration 4
        ok 5 - iteration 5
        ok 6 - iteration 6
        ok 7 - iteration 7
        ok 8 - iteration 8
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, &the_asn1_time, &at) == true' failed @ test/time_offset_test.c:79
        # false
        # INFO:  @ test/time_offset_test.c:80
        # ASN1_TIME_diff() failed for<PHONE_NUMBER>00+0100
        #
        not ok 9 - iteration 9
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, &the_asn1_time, &at) == true' failed @ test/time_offset_test.c:79
        # false
        # INFO:  @ test/time_offset_test.c:80
        # ASN1_TIME_diff() failed for<PHONE_NUMBER>00+0500
        #
        not ok 10 - iteration 10
        ok 11 - iteration 11
        ok 12 - iteration 12
        ok 13 - iteration 13
        ok 14 - iteration 14
        ok 15 - iteration 15
        ok 16 - iteration 16
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, &the_asn1_time, &at) == true' failed @ test/time_offset_test.c:79
        # false
        # INFO:  @ test/time_offset_test.c:80
        # ASN1_TIME_diff() failed for<PHONE_NUMBER>0000+0100
        #
        not ok 17 - iteration 17
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, &the_asn1_time, &at) == true' failed @ test/time_offset_test.c:79
        # false
        # INFO:  @ test/time_offset_test.c:80
        # ASN1_TIME_diff() failed for<PHONE_NUMBER>00+0100
        #
        not ok 18 - iteration 18
        ok 19 - iteration 19
        ok 20 - iteration 20
        # ERROR: (bool) 'ASN1_TIME_diff(&day, &sec, &the_asn1_time, &at) == true' failed @ test/time_offset_test.c:79
        # false
        # INFO:  @ test/time_offset_test.c:80
        # ASN1_TIME_diff() failed for<PHONE_NUMBER>3400+1234
        #
        not ok 21 - iteration 21
        ok 22 - iteration 22
    not ok 1 - test_offset
../../util/shlib_wrap.sh ../../test/time_offset_test => 1
not ok 1 - running time_offset_test

#   Failed test 'running time_offset_test'
#   at /.../openssl-1.1.1a/test/../util/perl/OpenSSL/Test/Simple.pm line 77.
# Looks like you failed 1 test of 1.
Dubious, test returned 1 (wstat 256, 0x100)
Failed 1/1 subtests

Test Summary Report
-------------------
../test/recipes/90-test_asn1_time.t  (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
../test/recipes/90-test_time_offset.t (Wstat: 256 Tests: 1 Failed: 1)
  Failed test:  1
  Non-zero exit status: 1
Files=2, Tests=2,  1 wallclock secs ( 0.05 usr  0.01 sys +  0.38 cusr  0.08 csys =  0.52 CPU)
Result: FAIL
*** Error exit code 1

Stop.
*** Error exit code 1

Stop.

All the failing tests seem to have a positive offset. The negative and no offset tests seems to work.
I don't see anything obvious why this would fail, and it would help that you can debug functions like asn1_time_to_tm() / OPENSSL_gmtime_adj().

I'll have a look tomorrow. But before digging into it, I will reduce the optimization level. I did a debug-build later today, which came out green.

This seems to be a compiler issue. When reducing the optimization level to +O1 the tests are not failing anymore ...

Which compiler are you using?

I am not sure either. I'll check if we can install a newer version of the compiler. There is at least one A.06.29 mentioned on HP's support pages. If this doesn't lead to anything, I'll check if I can raise a bug report with their compiler people ...
Meanwhile I will maintain a patch to build OpenSSL 1.1.1 with +O1 only.


Doc site down

https://gost.run/ and https://v2.gost.run/ has been down for a few days.

There is some snapshots in Wayback Machine: https://web.archive.org/web/20240000000000*/https://gost.run/
Some pages are outdated, I think.


tini.c: fix child subreaper error message

When TINI_MINIMAL was defined, the error message read "To fix the problem, or set the environment [...]".

Thanks! I merged this manually into master for reasons having to do messing up a bit in the UI here Github — sorry about that, but it is merged!


Update cuda_install.sh

Remove the comment to download cuda

Thank you for your contribution! I was a slow on this and just now merged a duplicate PR.


Issues with regex looking for eligible model names not finding uppercase extensions (e.g. ".SQL")

Describe the bug
There is some inconsistent behavior between running dbt on Windows and running it on MacOS/Linux. On Windows, filenames are not case-sensitive. So if one has a model with a filename of "MY_EXAMPLE_MODEL.SQL" then a dbt run will pick this model up. But then transferring and running the model on a non-Windows machine will result in the model not being found or executed. On the other hand, "MY_EXAMPLE_MODEL.sql" works on any OS environment.
I'm not sure whether this is intentional behavior or not. Is the goal to only process lower-case models? Or is it supposed to be anything regardless of case even in case-sensitive filesystems?
Steps To Reproduce
create a model named "example.SQL" and execute dbt run on a Mac -- no models will be found. Change the model name to "example.sql" and the model will be found.
Expected behavior
Models named .SQL, .sql, .Sql, basically, [Ss][Qq][Ll] in regex, will be found and processed.
System information
Which database are you using dbt with?
-Snowflake
The output of dbt --version:
0.14.1-rc1

The operating system you're using:
Validated on MacOS Mojave 10.14.5 and Windows 10
The output of python --version:
Python 2.7.10

closed by https://github.com/fishtown-analytics/dbt/pull/2263


Convert to inline resources and test create_if_missing

Inline resources greatly simplify the notification issues. This also
fixes requiring a command when you delete a cron entry, which was a
regression in 1.7.1. I've added a serverspec to ensure we're handling
create_if_missing correctly by first creating a cron entry, then
creating it again with create_if_missing.  We can expect to find the
content of the first creation only.

Thanks @tas50 for the fast turn around!

We're aiming for 1 day critical bug fixes.


Support keyboard interrupt

What

Handle os.Interrupt signal and propagate cancellation using context
Add defer spinner.Stop() to ensure that the spinner is stopped and cleaned up

Why
Current implementation does not handle keyboard interrupt, which causes unexpected side effect to the shell:
When I input ctrl-c while a spinner is running (with the message Fetching pull requests... for example), the cursor is still hidden even after the command finished.

Wow, I wasn't aware of the problem.
Thanks for the great fix 😃


fix #591: (1) polished ui with bootstrap (2) periodically update page (3...

Angular-dashboard-framework is great for sorting small widgets on a page, such as. charts. Actually the dashboard has more tables and other controls. The PR is suggesting use create a dashboard more flexible. The PR also includes an enhancement of updating page contents periodically. Furthermore, the metrics api has been integrated.

@kkasravi
Please help to reivew this big PR.

The found the history Metrics is retrived every 1 or 2 seconds, which is not expected.
The history metrics should only be retrived once, and then rely on the long connection to get more metrics update.

several issues:

Another bug I found is the the count column sometimes flip between two values, while what we expect is that the counter number is always growing.

Another bug is in file services.js
line 31:
this.wsUri = "ws://localhost:8091/";
angular.module('app')
.constant('CONF', {WebSocketSendTimeout:500})
.service('StreamingService', function(CONF) {
  var StreamingService = (function(CONF) {
    function StreamingService() {
      this.wsUri = "ws://localhost:8091/";

I do see a (404 in the browser - GET http://localhost:8090/webjars/visjs/3.10.0/vis.map 404 (Not Found))

The UI tables seem to be incorrect. Processor 0 has a very high count (throughput) but latencies values are all zero. This is based on Stanley's branch. See below:

Great improvements overall. Thanks!

@kkasravi
About
https://github.com/intel-hadoop/gearpump/pull/592#issuecomment-78088392
The UI tables seem to be incorrect. Processor 0 has a very high count (throughput) but latencies values are all zero. This is based on Stanley's branch. See below:

FOr processor0, it is the data source, it doesn't receive message but generate message.
So the receive latency is zero.

+1


updated alpine, golang and otel-collector version of telemetry/observability images

Description
Changes proposed in this pull request:

alpine 1.17.1
golang 1.19.5
otel-collector 0.70.0

Related issue(s)

/retest


New User Experience

New users don't have any indication of what the site is or what it can do.
Add a nice landing page for non-authenticated users and make the information available even after signing in via an "about" link.
Must include contact information to email and github.

Inspiration: http://www.marcellobrivio.com/projects/strava-toolbox/
Features:

Bright header with icon, name, and tagline
Mini Hero image with prompt to connect
Clear examples of the value brought by the app

My initial idea is to use a similar layout, find/create a hero image that has multiple weather effects (sun, rain, snow, etc.). Below the hero image I can include some sample output based on real summaries created by dark sky using known times.


Unfriendly error: "Write failed, port = 0"

On a number of occasions, I've run into the error "Write failed, port = 0". It seems to have a number of causes, but one simple reproduction is to run the following code using pub run and then press Enter a few times (sending newlines on stdin):
import 'dart:async';
import 'dart:io';

main() async {
  stdin.listen(print).cancel();

  await new Future.delayed(new Duration(seconds: 5));
}

The issue here isn't necessarily that there is an error, but that the error provides no information and is consequently very difficult to debug. Wherever this is coming from, would it be possible to add a stack trace? If this is indeed coming from low-level socket code, could higher-level code intercept it and add additional context? Currently Observatory seems completely unable to detect this—could we add some way for that to work?
I marked this as Area-IO because I've only seen this with IO APIs, but it's possible that it's a VM issue.

The reproduction does not work for me on Windows or Linux. What platform are you running on?

This is on Linux with pub 1.14.0-edge.26af34a1b3a912f16f52c69723ca99789d88153b. However, I've reduced it further in #25348—the reproduction there doesn't require pub.

I just ran into this while trying out an analyzer stress test that launches a subprocess (which may have died; haven't figured it out yet).

Ran into this today trying to run a simple "pub lish" on my Mac.

I hit this yesterday as well when trying to pub lish on OS X with HEAD and the latest dev build (1.22.0-dev.5.0).  Rolling back to 1.21 worked for me.

Just to note, yes using an older version of Dart (I don't recall which one) fixed this for me too. I was getting the error on bleeding edge.

I am also seeing this on my Mac. Extra carriage returns are not required.

Does somebody have a repro for this?
For me the given example doesn't trigger either, and I believe the small example in #25348 got fixed, too.
@zanderso : do you know of any change that could cause this?

I reliably see it on my Mac. Just build an SDK from bleeding edge and try to use the version of 'pub' in the built SDK to publish a package.

One recent change is that we make sure that close() doesn't clobber errno if there was some previous error. The new code isn't on the codepath that generates this error message. Otherwise there hasn't been a change to this code (at least on Mac) since last April.
In the code path that can generate "Write failed" there should be a SocketException that contains a field osError, which should have been non-null, and should have contained the errno from the OS. This information should have been printed along with "Write failed".

I did a tiny bit more digging. This error string is only generated when a low-level write() syscall on a "socket" fails, where a socket could be a pipe like stdin. See _NativeSocket.write() in socket_patch.dart:
https://github.com/dart-lang/sdk/blob/master/runtime/bin/socket_patch.dart#L672
which is bubbled up from, e.g.:
https://github.com/dart-lang/sdk/blob/master/runtime/bin/socket_macos.cc#L152
The stack trace where we generate that error message after the write fails is:
_NativeSocket.write failed: OS Error: Broken pipe, errno = 32
#0      _NativeSocket.write (dart:io-patch/socket_patch.dart:672)
#1      _RawSocket.write (dart:io-patch/socket_patch.dart:1317)
#2      _Socket._write (dart:io-patch/socket_patch.dart:1711)
#3      _SocketStreamConsumer.write (dart:io-patch/socket_patch.dart:1482)
#4      _SocketStreamConsumer.addStream.<anonymous closure> (dart:io-patch/socket_patch.dart:1454)
#5      _rootRunUnary (dart:async/zone.dart:1158)
#6      _CustomZone.runUnary (dart:async/zone.dart:1037)
#7      _CustomZone.runUnaryGuarded (dart:async/zone.dart:932)
#8      _BufferingStreamSubscription._sendData (dart:async/stream_impl.dart:331)
#9      _BufferingStreamSubscription._add (dart:async/stream_impl.dart:258)
#10     _StreamController&&_SyncStreamControllerDispatch._sendData (dart:async/stream_controller.dart:768)
#11     _StreamController._add (dart:async/stream_controller.dart:635)
#12     _StreamController.add (dart:async/stream_controller.dart:581)
#13     _StreamSinkWrapper.add (dart:async/stream_controller.dart:868)
#14     createTarGz.<anonymous closure>.<<anonymous closure>_async_body> (package:pub/src/io.dart:1042)
#15     _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:27)
#16     _rootRunUnary (dart:async/zone.dart:1158)
#17     _CustomZone.runUnary (dart:async/zone.dart:1037)
#18     _FutureListener.handleValue (dart:async/future_impl.dart:131)
#19     _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:637)
#20     _Future._propagateToListeners (dart:async/future_impl.dart:667)
#21     _Future._complete (dart:async/future_impl.dart:467)
#22     _SyncCompleter.complete (dart:async/future_impl.dart:52)
#23     startProcess.<anonymous closure>.<<anonymous closure>_async_body> (package:pub/src/io.dart:717)
#24     _asyncThenWrapperHelper.<anonymous closure> (dart:async-patch/async_patch.dart:27)
#25     _rootRunUnary (dart:async/zone.dart:1158)
#26     _CustomZone.runUnary (dart:async/zone.dart:1037)
#27     _FutureListener.handleValue (dart:async/future_impl.dart:131)
#28     _Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:637)
#29     _Future._propagateToListeners (dart:async/future_impl.dart:667)
#30     _Future._completeWithValue (dart:async/future_impl.dart:477)
#31     _Future._asyncComplete.<anonymous closure> (dart:async/future_impl.dart:528)
#32     _rootRun (dart:async/zone.dart:1150)
#33     _CustomZone.run (dart:async/zone.dart:1026)
#34     _CustomZone.runGuarded (dart:async/zone.dart:924)
#35     _CustomZone.bindCallback.<anonymous closure> (dart:async/zone.dart:951)
#36     _microtaskLoop (dart:async/schedule_microtask.dart:41)
#37     _startMicrotaskLoop (dart:async/schedule_microtask.dart:50)
#38     _Timer._runTimers (dart:isolate-patch/timer_impl.dart:394)
#39     _Timer._handleMessage (dart:isolate-patch/timer_impl.dart:414)
#40     _RawReceivePortImpl._handleMessage (dart:isolate-patch/isolate_patch.dart:148)

I'll keep looking, but maybe someone can update with some information about what's going on at this point in the program.

This appears to be running some sort of tar command. When I copy it and run it on a command line, I get:
zra-macbookpro2:quiver-dart zra$ tar --format=ustar --create --gzip --directory /Users/zra/dart/test_package/quiver-dart/. --files-from /dev/stdin --uname=pub --gname=pub
tar: Option --uname=pub is not supported
Usage:
  List:    tar -tf <archive-filename>
  Extract: tar -xf <archive-filename>
  Create:  tar -cf <archive-filename> [filenames...]
  Help:    tar --help

This looks like it could be a bug in the way that pub is calling tar.

@zanderso What version of tar are you using?
In general, my understanding is that we shouldn't get sink errors unless our code writes to the sink after closing it. If the remote endpoint closes the sink, it should silently ignore writes. So if this is happening because the sink is closed due to a flag it doesn't understand, dart:io is still handling it incorrectly.

zra-macbookpro2:quiver-dart zra$ tar --version
bsdtar 2.8.3 - libarchive 2.8.3

I'll take a look, thanks for the pointer!

According to the BSD tar man page, it's had a --uname parameter since at least 2009. Maybe Mac OS has a really outdated version or something though?

@nex3 looks like this bug has been hijacked for a number of other issues, can we track the 'better error reporting' on this bug and move the API issue of not reporting an error when writes are done after a sink is closed to https://github.com/dart-lang/sdk/issues/25348

@munificent has the 'potential tar issue' been moved to another new issue? Can we close this, it was opened for the 'Unfriendly error' problem which has been fixed by @zanderso

No, I didn't bother filing a separate bug for the tar issue. If the unfriendly error message is fixed, we can probably close this.

\o/


Azure Static Website : Build and Deploy (step 6) is using the wrong Ruby version

This issue is in regards to deploying a Jekyll site to Azure storage:
https://learn.microsoft.com/en-us/azure/static-web-apps/publish-jekyll
I have followed these instructions.  I have set my Ruby version to 3.1, which is shown in step 4, Setup Ruby, but in step 6, Build and Deploy, it fails because it is running Ruby 2.7.7.  I don't understand why it is running 2.7.7 in the GitHub Actions, using the provided Azure Static Website yaml file.  I've provided the output of the step 4 and step 6 GitHub Actions run, the Azure static web pages yaml file, my GemLock file and the default ruby version file.  Any advice would be greatly appreciated.

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

ID: d1532547-d8ef-bdea-4164-4f617a249eb5
Version Independent ID: f8a21eb1-662f-13f3-dd9d-9ed2962e740d
Content: Deploy a Jekyll site to Azure Static Web Apps
Content Source: articles/static-web-apps/publish-jekyll.md
Service: static-web-apps
GitHub Login: @craigshoemaker
Microsoft Alias: cshoe

@Tom-H2oThermo
Thanks for your feedback! We will investigate and update as appropriate.

I got it working.  I had been trying to convert an existing repository.  Instead I followed the instructions exactly as shown on the Learn Microsoft site and the site was created.  Then I added my Markdown files from my previous GitHub Pages site to it and it completed.  The formatting isn't correct yet, I just need to figure that piece out.  So I'm closing this as completed.

Glad to know that it's working. Thanks for the follow-up and sharing the solution that worked for you.


Deprecate mapper methods

I meant to include this in the mapper refactor PR but never pushed it. Not urgent, can follow other things.

@amywieliczka @barbarahui This is a fairly trivial change to properly identify deprecated methods. It makes the output a little noisier, which will force us to address it when we get to mappers that need to be changed.


DownloadDirectory may not work on custom systems due to internal FileListing

FTP OS: Embedded
FTP Server: Custom
Computer OS: Windows
FluentFTP Version: 35.0.5
DownloadDirectory is internally performing a this.GetListing(remoteFolder, FtpListOption.Size | FtpListOption.Recursive) so using specific parameters that may not work as expected on all system.
Example: FtpListOption.NoPath may be needed in order to work.
This should be probably part of the FtpServerBase class.
Please note that the enum provides some behavioral flags (Recursive) while others are more archictural (NoPath, ForceList) and the BaseServer class should fill the latter kind
Regards
A

Good idea, any suggestions how to implement this? A new property/method in FtpServerBase?

Hi,
yes I would probably adda new method with a signature like the following
FtpListOption DecorateFileListOptions(FtpListOption options)
I can do the pull request if you want
Cheers
A

@Adhara3  please don't need to ask my permission to make pull requests, its hard to check so many active tickets. If you have any suggestion, please just file a PR and we can take it forward. I accept most PRs straightaway unless they cause a major conflict.

@Adhara3  please don't need to ask my permission to make pull requests, its hard to check so many active tickets. If you have any suggestion, please just file a PR and we can take it forward. I accept most PRs straightaway unless they cause a major conflict.


Memory leak in indexing job

Releasing the COL 23.1 failed, and investigation found a memory leak on the indexing stage.
Adjusting from -Xmx 32G to -Xmx 31G allowed the job to run (reduced the memory addressing length) but the memory graph shows as (see 08:40 to 09:20):

Note we're right at the limit of 31G so in a precarious state.
While this proceeds for now it needs to be addressed. I suggest we copy the DB and app and run the step with a profiler attached.

I haven't got to the bottom of this, but suspect this line in this commit may have something to do with it - or something in this commit anyway.
Memory grows with this Hashmap cache as you would anticipate (note we're close to blowing memory though) but for some reason, it is not freed. The objects in this cache are themselves embedded in objects that extend MyBatis stuff and are handed over to the worker pool. I don't know MyBatis internals but perhaps something relating to them holding an internal reference (?) to a JDBC connection pool causes them to be overlooked for GC.
The version running was deployed on the 25th and I notice this whole area has subsequently changed on master to use MapDB anyway.

I have captured a memory snapshot following an ITIS indexing run. I haven't had time to analyze it yet:

Recording here so it's not lost - the commits above were deployed Tuesday afternoon:

I indexed 3 medium sized datasets up to 150k names and finally ITIS while profiling the app.
Memory was constantly low, so the fix did work:

But it seems there is another issue maybe with syncs that leads to the memory increase seen before?


default NameMapper

I believe its better to define the default NameMapper as:
sqlstruct.NameMapper = func (a string) string { return a }
since in most condition, users just want to use the value they defined in the "sql" tag. Not lower them as it is now...

Maybe, but I'm not going to change it now.


to_netcdf() doesn't work with multiprocessing scheduler

If I create a chunked lazily-computed array, writing it to disk with to_netcdf() computes and writes it with the threading and distributed schedulers, but not with the multiprocessing scheduler. The only reference I've found when searching for the exception message comes from this StackOverflow question.
MCVE Code Sample
import dask
import numpy as np
import xarray as xr

if __name__ == "__main__":
    # Simple worker function.
    def inner(ds):
        if sum(ds.dims.values()) == 0:
            return ds
        return ds**2

    # Some random data to work with.
    ds = xr.Dataset(
            {"test": (("a", "b"), np.random.uniform(size=(1000, 1000)))},
            {"a": np.arange(1000), "b": np.arange(1000)}
    )

    # Chunk it and apply the worker to each chunk.
    ds_chunked = ds.chunk({"a": 100, "b": 200})
    ds_squared = ds_chunked.map_blocks(inner)

    # Thread pool scheduler can compute while writing.
    dask.config.set(scheduler="threads")
    print("Writing thread pool test to disk.")
    ds_squared.to_netcdf("test-threads.nc")

    # Local cluster with distributed works too.
    c = dask.distributed.Client()
    dask.config.set(scheduler=c)
    print("Writing local cluster test to disk.")
    ds_squared.to_netcdf("test-localcluster.nc")

    # Process pool scheduler can compute.
    dask.config.set(scheduler="processes")
    print("Computing with process pool scheduler.")
    ds_squared.compute()

    # But it cannot compute while writing.
    print("Trying to write process pool test to disk.")
    ds_squared.to_netcdf("test-process.nc")

Expected Output
Complete netCDF files should be created from all three schedulers.
Problem Description
The thread pool and distributed local cluster schedulers result in a complete output. The process pool scheduler fails when trying to write (note that test-process.nc is created with the header and coordinate information, but no actual data is written). The traceback is:
Traceback (most recent call last):
  File "bug.py", line 54, in <module>
    ds_squared.to_netcdf("test-process.nc")
  File "/usr/lib/python3.8/site-packages/xarray/core/dataset.py", line 1535, in to_netcdf
    return to_netcdf(
  File "/usr/lib/python3.8/site-packages/xarray/backends/api.py", line 1097, in to_netcdf
    writes = writer.sync(compute=compute)
  File "/usr/lib/python3.8/site-packages/xarray/backends/common.py", line 198, in sync
    delayed_store = da.store(
  File "/usr/lib/python3.8/site-packages/dask/array/core.py", line 923, in store
    result.compute(**kwargs)
  File "/usr/lib/python3.8/site-packages/dask/base.py", line 165, in compute
    (result,) = compute(self, traverse=False, **kwargs)
  File "/usr/lib/python3.8/site-packages/dask/base.py", line 436, in compute
    results = schedule(dsk, keys, **kwargs)
  File "/usr/lib/python3.8/site-packages/dask/multiprocessing.py", line 212, in get
    result = get_async(
  File "/usr/lib/python3.8/site-packages/dask/local.py", line 494, in get_async
    fire_task()
  File "/usr/lib/python3.8/site-packages/dask/local.py", line 460, in fire_task
    dumps((dsk[key], data)),
  File "/usr/lib/python3.8/site-packages/cloudpickle/cloudpickle_fast.py", line 62, in dumps
    cp.dump(obj)
  File "/usr/lib/python3.8/site-packages/cloudpickle/cloudpickle_fast.py", line 538, in dump
    return Pickler.dump(self, obj)
  File "/usr/lib/python3.8/multiprocessing/synchronize.py", line 101, in __getstate__
    context.assert_spawning(self)
  File "/usr/lib/python3.8/multiprocessing/context.py", line 363, in assert_spawning
    raise err
RuntimeError: Lock objects should only be shared between processes through inheritance

With a bit of editing of the system multiprocessing module I was able to determine that the lock being reported by this exception was the first lock created. I then added a breakpoint to the Lock constructor to get a traceback of what was creating it:

File
Line
Function

core/dataset.py
1535
Dataset.to_netcdf

backends/api.py
1071
to_netcdf

backends/netCDF4_.py
350
open

backends/locks.py
114
get_write_lock

backends/locks.py
39
_get_multiprocessing_lock

This last function creates the offending multiprocessing.Lock() object. Note that there are six Locks constructed and so its possible that the later-created ones would also cause an issue.
The h5netcdf backend has the same problem with Lock. However the SciPy backend gives a NotImplementedError for this:
ds_squared.to_netcdf("test-process.nc", engine="scipy")

Traceback (most recent call last):
  File "bug.py", line 54, in <module>
    ds_squared.to_netcdf("test-process.nc", engine="scipy")
  File "/usr/lib/python3.8/site-packages/xarray/core/dataset.py", line 1535, in to_netcdf
    return to_netcdf(
  File "/usr/lib/python3.8/site-packages/xarray/backends/api.py", line 1056, in to_netcdf
    raise NotImplementedError(
NotImplementedError: Writing netCDF files with the scipy backend is not currently supported with dask's multiprocessing scheduler

I'm not sure how simple it would be to get this working with the multiprocessing scheduler, or how vital it is given that the distributed scheduler works. If nothing else, it would be good to get the same NotImplementedError as with the SciPy backend.
Output of xr.show_versions()

commit: None
python: 3.8.1 (default, Jan 22 2020, 06:38:00)
[GCC 9.2.0]
python-bits: 64
OS: Linux
OS-release: 5.5.4-arch1-1
machine: x86_64
processor:
byteorder: little
LC_ALL: None
LANG: en_NZ.UTF-8
LOCALE: en_NZ.UTF-8
libhdf5: 1.10.5
libnetcdf: 4.7.3
xarray: 0.15.0
pandas: 1.0.1
numpy: 1.18.1
scipy: 1.4.1
netCDF4: 1.5.3
pydap: None
h5netcdf: 0.7.4
h5py: 2.10.0
Nio: None
zarr: None
cftime: 1.1.0
nc_time_axis: None
PseudoNetCDF: None
rasterio: None
cfgrib: None
iris: None
bottleneck: None
dask: 2.10.1
distributed: 2.10.0
matplotlib: 3.1.3
cartopy: 0.17.0
seaborn: None
numbagg: None
setuptools: 45.2.0
pip: 19.3
conda: None
pytest: 5.3.5
IPython: 7.12.0
sphinx: 2.4.2

I believe I ran into exactly the same problem when combining dask-chunked DataSets with Python's native multiprocessing package. I get no error message, and the headers of the files are created, but then the script hangs indefinitely.
MCVE Code Sample
import xarray as xr
from multiprocessing import Pool
import os

if (False):
    """
    Load data without using dask
    """
    ds = xr.open_dataset("http://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/ncep.reanalysis/surface/air.sig995.1960.nc")
else:
    """
    Load data using dask
    """
    ds = xr.open_dataset("http://www.esrl.noaa.gov/psd/thredds/dodsC/Datasets/ncep.reanalysis/surface/air.sig995.1960.nc", chunks={})

print(ds.nbytes / 1e6, 'MB')

print('chunks', ds.air.chunks) # chunks is empty without dask

outdir = '/glade/scratch/lvank' # change this to some temporary directory on your system

def do_work(n):
    print(n)
    ds.to_netcdf(os.path.join(outdir, f'{n}.nc'))

tasks = range(10)

with Pool(processes=2) as pool:
    pool.map(do_work, tasks)

print('done')

Expected Output
The NetCDF copies in outdir named 0.nc to 9.nc should be created for both cases (with and without Dask).
Problem Description
In the case with Dask, when the if-statement evaluates to False, the files are not created and the program hangs.
 OP's seems like it's actually in to_netcdf(), but I think yours (ours) is in Dask's lazy loading and therefore unrelated.
In short, ds will have some Dask arrays whose contents don't actually get loaded until you call to_netcdf(). By default, Dask loads in parallel, and the default Dask parallel scheduler chokes when you do your own parallelism on top. In my case, I was able to get around it by doing
ds.load(scheduler='sync')

at some point. If it's outside do_work(), I think you can skip the scheduler='sync' part, but inside do_work(), it's required. This bypasses the parallelism in Dask, which is probably what you want if you're doing your own parallelism.

I'm currently studying this problem in depth and I noticed that while the threaded scheduler uses a lock that is defined in function of the file name (as the key):
https://github.com/keewis/xarray/blob/8d23032ecf20545cd320cfb552d8febef73cd69c/xarray/backends/locks.py#L24-L32
the process-based scheduler throws away the key:
https://github.com/keewis/xarray/blob/8d23032ecf20545cd320cfb552d8febef73cd69c/xarray/backends/locks.py#L35-L39
I'm not sure yet what are the consequences and logical interpretation of that, but I would like to reraise @bcbnz's question above: should this scenario simply raise a NotImplemented error because it cannot be supported?


OpenSSL(1.1.1g) is getting crashed on MAC

Issue in OpenSSL version : 1.1.1g
We are getting crash(segmentation fault) in OpenSSL in method openssl_strerror_r  when we received Unknown error (error code 107) on MAC while it is working fine with Linux .
In our application, we have upgraded the OpenSSL version from 1.1.1b to 1.1.1g and after that whenever we initialized curl (CURL_GLOBAL_INIT) then it gets crashed  in OpenSSL function openssl_strerror_r while OpenSSL version 1.1.1b is working fine because in OpenSSL version 1.1.1b you have used strerror function instead of strerror_r  call in openssl_strerror_r method.
Flags that we used to compile OpenSSL in MAC is given below.
./configure darwin64-x86_64-cc no-shared no-asm no-capieng no-threads no-rc4 -D_GNU_SOURCE (For 64bit)
Note* : Crash is observed in both the architecture(x86 & x64)
Given below is the code section where crash is observed.
221 int openssl_strerror_r(int errnum, char *buf, size_t buflen)
222 {
223 #if defined(_MSC_VER) && _MSC_VER>=1400
224     return !strerror_s(buf, buflen, errnum);
225 #elif defined(_GNU_SOURCE)
226     char *err;
227
228     /*
229      * GNU strerror_r may not actually set buf.
230      * It can return a pointer to some (immutable) static string in which case
231      * buf is left unused.
232      */
233     err = strerror_r(errnum, buf, buflen);
234     if (err == NULL || buflen == 0)
235         return 0;
236     /*
237      * If err is statically allocated, err != buf and we need to copy the data.
238      * If err points somewhere inside buf, OPENSSL_strlcpy can handle this,
239      * since src and dest are not annotated with __restrict and the function
240      * reads src byte for byte and writes to dest.
241      * If err == buf we do not have to copy anything.
242      */
243     if (err != buf)
244         OPENSSL_strlcpy(buf, err, buflen);
245     return 1;
246 #elif (defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 200112L) || \
247       (defined(_XOPEN_SOURCE) && _XOPEN_SOURCE >= 600)
248     /*
249      * We can use "real" strerror_r. The OpenSSL version differs in that it
250      * gives 1 on success and 0 on failure for consistency with other OpenSSL
251      * functions. Real strerror_r does it the other way around
252      */
253     return !strerror_r(errnum, buf, buflen);
254 #else
255     char *err;
256
257     /* Fall back to non-thread safe strerror()...its all we can do */
258     if (buflen < 2)
259         return 0;
260     err = strerror(errnum);
261     /* Can this ever happen? */
262     if (err == NULL)
263         return 0;
264     OPENSSL_strlcpy(buf, err, buflen);
265     return 1;
266 #endif
267 }

when we get unknown error :107 at line 233 , in that case strerror_r returned some trash value which causes the crash while copying NULL value in some buffer at line 244.

As you can see that variable buf contain invalid value.

Looks like the strerror_r implementation differs between Linux and Mac. Here is the documentation for the Linux version:
https://linux.die.net/man/3/strerror_r
Note that if _GNU_SOURCE is defined then you get a GNU specific implementation, while if it is not you get the "XSI compliant" version. The Mac documentation on the other hand looks like this:
https://developer.apple.com/library/archive/documentation/System/Conceptual/ManPages_iPhoneOS/man3/strerror_r.3.html
This just seems to describe the XSI compliant version, and does not have the "GNU" variant.
The detection for this in openssl_strerror_r, just checks to see if _GNU_SOURCE is defined and, if it is, uses the GNU variant. You have explicitly defined _GNU_SOURCE in your configure line and so openssl_strerror_r is fooled into expecting a GNU specific strerror_r implementation. Unfortunately on MAC the GNU variant doesn't exist and hence we see the crash.
So, the next question is, why do you need to define _GNU_SOURCE on your configure line? Does the crash go away if your drop it?

Hi @mattcaswell ,
After excluding flag _GNU_SOURCE, everything is running fine on MAC.
We had included the _GNU_SOURCE as we want to configure the OpenSSL with same flags in different platforms.

Thanks. In that case it seems to me that this is not a bug in OpenSSL, but a problem in your command line flags. Closing this.


⚠ Turnos 24x7 has degraded performance

In 712d309, Turnos 24x7 (https://reservas-dev.alternativasinteligentes.com/) experienced degraded performance:

HTTP code: 200
Response time: 976 ms

Resolved: Turnos 24x7 performance has improved in 197102f.


Editor issues

If you press 'help', then inadvertantly press 'help' again to exit, the editor inserts a "[32~" into the text
If you try and ctrl-r(un) a basic program without saving it, the interpreter fails and an error message (-21?) appears on the screen briefly, then you are returned to the editor and your file is lost.
The line counter on the bottom right status line reads 0 / 1 upon execution of a new/blank file.  During editing, there is sometimes some slack in whether the status line accurately depicts the total number of lines in the file.  As a user, I expect that it will always be the # of lines that exist (that I can move a cursor to), even if the last line is blank and I am merely 'there' because there was a newline on the prior line.  As soon as I enter the first character, the # of lines changes to be 1/1.  If I press enter, it changes to 2/2 which is expected but if I press down cursor, the cursor moves to the 3rd line and the display indicates 3/2.
The basic interpreter still get stuck in an endless loop when diamond.bas is executed.

The is an enhancement request:
Would like a way to delete or insert whole lines when pressing some combination of keys.  vi allowed for 'dd' or a number followed by a command such as 'dd'.  Considering the shift to more user friendly keys, a straightfwd ctrl-d and ctrl-i might suffice through some people might say that control d pushes a process into the background and ctrl-i is ansi standard for a bel : )
It would be useful if one could list a directory in order to see what files exist or to load a file, assuming there was a way to open edit to a blank or new file.  Ideally the default behavior should open up edit with an 'untitled' filename.
It would also be useful if there was a key to insert characters at the current position.

Hello Michael,
Thanks for reporting the cursor issues, and the losing unsaved files when running interpreter. I will add a dirty file check and prompt before running the BASIC.
I will be adding Ctrl-X,Ctrl-C, and Crtl-V in a future release, it is in my TODO.md file. If no text is marked, Ctrl-X will cut the current line.


Error message: try to leave application in progress

Stale issue - Was completed with recently in https://github.com/coforma/swift-tech-challenge/pull/170


Update nf-processthreadsapi-getthreaddescription.md

I added the following in the remarks: GetThreadDescription() is only available on Windows Server 2016, 1607 via run time dynamic linking from kernelbase.dll

@fran-ki : Thanks for your contribution! The author(s) have been notified to review your proposed change.

@Karl-Bridge-Microsoft : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


runtime: Fix sig block deletion race

When two threads commit to calling the the same wrapper and
one thread deletes the sig block from the sig_wrappers hash
before the other one does the look up, sorbet-runtiem raises.
Fix this issue by using the already-captured sig block in the
wrapper. This breaks the dependency on the hash lookup and
avoids the race.
Fixes #1386
Motivation
This is making CI flaky for us.
Test plan
See included automated tests.

hm, I think while this PR gets rid of the error, there is double wrapping happening when there was an exception happening before. I would say it's an improvement but it's not perfect...

The only thing important to the fix was blk = sig_block if !blk but I complicated it with a sanity test. I've removed all but the essentials.

It's now clear to me that any caller that do not pass sig_block suffers from same race this PR addresses for the plain case. So override / abstract validation, T::Utils.register_forwarder, T::Utils.run_all_sig_blocks all use maybe_run_sig_block_for_key which doesn't pass a sig_block which suffers from this race.
Kind of a systemic problem, but one step at a time, I guess...


"customizable" zen mode and / or levels of / flavors of zen mode?

First I want to say that this is a very low priority thing, and rather just a bit of brainstorming at this stage I guess :) .
I really love the Zen mode and I use it most of the time. However, there is a bit of information I miss in Zen mode, for example, overview of tabs. So I would like to have my "own" Zen mode configuration, with many hidden things, but still tab information present.
Do you think there would be possibility to either customize Zen mode, or, even better, to define an arbitrary number of "Zen modes" each with its own configuration of what is visible / hidden? Like Zen mode 1, 2, ..., that would be user defined?

We have a couple of zen-mode configuration options at the moment:

"editor.zenMode.hideTabs" - whether window-tab bars should be hidden in zen mode
"editor.zenMode.singleFile" - whether to default to zen mode when opening a single file

Some additional configuration we should:

Whether or not status bar is visible in zen mode
Whether or not the activity bar / sidebar is visible in zen mode

Would these settings cover your use case @jerabaul29 ? Or are there additional pieces you'd like to customize in zen mode?

I think so, that would be great :) .
Where is all of this documented? :)

Hey @jerabaul29 , you can find the settings documented on this page :)
https://onivim.github.io/docs/configuration/settings


Download phantomJS during build on github action

Build fails when running tests because phantomJS is not available.
Initial failures and current passing build can be seen in my Actions dashboard.

Can one of the admins verify this patch?


remove FFI and old note encryption

Codecov Report

Merging #27 (473b2a7) into main (1485e91) will increase coverage by 3.75%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##             main      #27      +/-   ##
==========================================
+ Coverage   40.49%   44.24%   +3.75%
==========================================
  Files          27       17      -10
  Lines        2519     1998     -521
==========================================
- Hits         1020      884     -136
+ Misses       1499     1114     -385

Impacted Files
Coverage Δ

masp_primitives/src/redjubjub.rs
59.82% <0.00%> (-0.90%)
:arrow_down:

masp_primitives/src/asset_type.rs
100.00% <0.00%> (ø)

masp_proofs/src/sapling/verifier.rs

masp_proofs/src/sapling/mod.rs

masp_proofs/src/sapling/prover.rs

masp_primitives/src/zip32.rs
76.52% <0.00%> (+0.71%)
:arrow_up:

masp_primitives/src/sapling.rs
45.45% <0.00%> (+3.78%)
:arrow_up:

masp_primitives/src/primitives.rs
76.92% <0.00%> (+8.03%)
:arrow_up:

Continue to review full report at Codecov.

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


Fix #2957: make software.amazon.awssdk:s3 optional in POM

see #2957
@MikielAgutu

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

Thanks for the PR, however we have implemented this ourselves


Settings menu

Settings menu added. Still to do:

Menu 'Back' button
Refactor the Interface and Menu Controller modules
Decide what to do with the dictionary edits -- should we remove the words from the Scores table


Remove isValidContract check for localhost chain on contract page

Problem solved
Short description of the bug fixed or feature added

PR-Codex overview
This PR modifies the layout.tsx file to enhance the contract validation logic by including a check for the localhost chain ID before verifying if a contract is deployed. This helps prevent unnecessary contract checks for local development environments.
Detailed summary

Added an import for localhost from thirdweb/chains.
Wrapped the contract existence check in a condition to only execute if the contract.chain.id is not localhost.id.
Maintained the existing logic for handling invalid contracts and the notFound function.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

#5180  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @MananTank and the rest of your teammates on  Graphite


fix: npm warnings

 ✔
npm WARN deprecated<EMAIL_ADDRESS>This is a stub types definition. react-select provides its own type definitions, so you do not need this installed.
npm WARN deprecated<EMAIL_ADDRESS>This is a stub types definition. js-base64 provides its own type definitions, so you do not need this installed.
npm WARN deprecated<EMAIL_ADDRESS>This is a stub types definition for eventemitter2 (https://github.com/asyncly/EventEmitter2). eventemitter2 provides its own type definitions, so you don't need @types/eventemitter2 installed!
npm WARN deprecated<EMAIL_ADDRESS>This is a stub types definition. classnames provides its own type definitions, so you do not need this installed.
npm WARN deprecated<EMAIL_ADDRESS>Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility
npm WARN deprecated<EMAIL_ADDRESS>This package is broken and no longer maintained. 'mkdirp' itself supports promises now, please switch to that.
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported
npm WARN deprecated<EMAIL_ADDRESS>The querystring API is considered Legacy. new code should use the URLSearchParams API instead.
npm WARN deprecated<EMAIL_ADDRESS>This module has been superseded by the multiformats module
npm WARN deprecated<EMAIL_ADDRESS>Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>This module has been superseded by the multiformats module
npm WARN deprecated<EMAIL_ADDRESS>This module has been superseded by the multiformats module
npm WARN deprecated<EMAIL_ADDRESS>This module has been superseded by the multiformats module
npm WARN deprecated<EMAIL_ADDRESS>Package renamed to @metamask/providers
npm WARN deprecated<EMAIL_ADDRESS>This project has moved to @types/webextension-polyfill
npm WARN deprecated<EMAIL_ADDRESS>This project has moved to @types/webextension-polyfill
npm WARN deprecated<EMAIL_ADDRESS>This project has moved to @types/webextension-polyfill
npm WARN deprecated<EMAIL_ADDRESS>This project has moved to @types/webextension-polyfill
npm WARN deprecated<EMAIL_ADDRESS>This module has been superseded by the multiformats module

Done!


Update documentation to clarify --watch behavior.

Summary
In a recent project, I was totally stumped about how to get jest --watch working. The first run was fine, but it wouldn't re-run automatically in response to test file changes. (I verified that git could see the changes fine, and there were no visible errors). After two days of debugging/searching, I discovered that the reason: due to this line, the watcher will always ignore files and folders starting with a dot (.). (The project I inherited for some reason had all the tests in a folder called .tests).
As far as I can tell this isn't documented anywhere on the internet, and I though it would be a nice thing to do to put something out there to clarify and save other people the headache.
The contributing guide says that "significant changes to the documentation or website" should be documented in CHANGLOG.md, but I wouldn't call this 'significant' (although I'm happy to add an entry if anyone disagrees).
Test plan
This just adds a sentence to the documentation, and I didn't think testing was necessary beyond spell checking and making sure it looked good in my markdown editor.

I've updated the PR in response to the feedback (i.e. also changed the versioned docs and tweaking the message text). Let me know if I can do anything else on my end.

@astegmaier sorry, this got away from me over the holidays 😬 Landed in f47ade4ed


True MC times

The true MC time when photons are converted into photoelectrons cannot be read with ctapipe. At the moment, they can only be accessed via pyeventio. It would be nice to be able to extract that information directly with ctapipe to have direct and clear information of the true and reconstructed parameters.

Hi,
This seems to be the same issue as: https://github.com/cta-observatory/ctapipe/issues/1682
I will close this issue as a duplicate (sorry I didn't check before when answering your email) and will provide more details there.


Add support for IPv6 in WAMR

For now this implementation only covers posix platforms, as defined in MVP #1336

LGTM

LGTM


prepare GA for azure-core-management

Version 1.0.0

@JimSuplizio  Thanks for the notification. Sure, I will run the script again without --skip-readme.

sdk/core/azure-core-management/README.md updated.


Extend the component annotation api to allow icons in segment control

[ ] extend the api to allow icon props in the segment (radio) control (instead of labels)
[ ] use the specified icon in the inspector

https://github.com/concrete-utopia/utopia/pull/5801 extends the component API