System.Data.Entity.Database.SqlQuery was really useful. Why is it not available in .NET Core?

Dear all,
For .NET Core development and performance is quite important that we can run SQL Native queries and fill ViewModels directly.
We have created a lot of helpers in .NET Framework using that like this:
public IHttpActionResult FindPaged(MyViewModel dto)
{
    if (dto.sort == null) dto.sort = "NAME";
    if (dto.dir == null) dto.dir = "ASC";

    using (MyContext myContext = new MyContext())
    {
        StringBuilder sqlQuery = new StringBuilder();
        List<DbParameter> parameters = new List<DbParameter>();
        sqlQuery.Append("SELECT");
        sqlQuery.Append("    ID,");
        sqlQuery.Append("    NAME,");
        sqlQuery.Append("    CAPACITY,");
        sqlQuery.Append("    VERSION");
        sqlQuery.Append(" FROM MY_TABLE WHERE DISABLED = 0");
        if (!string.IsNullOrEmpty(dto.name))
        {
            parameters.Add(new OracleParameter("NAME", dto.name));
            sqlQuery.Append(" AND NAME LIKE '%' || #NAME || '%'");
        }
        if (dto.capacity != null)
        {
            parameters.Add(new OracleParameter("CAPACITY", dto.capacity));
            sqlQuery.Append(" AND CAPACITY >= #CAPACITY");
        }

        return Ok(myContext.Database.SqlQueryPage<MyViewModel>(sqlQuery.ToString(), dto, parameters).QueryPage());
    }
}

In that example, SqlQueryPage uses SqlQuery internally... I can run any query with any parameters and use any ViewModels matching.
Technical details:

EF Core version: 2.1.1
Database Provider: Microsoft.EntityFrameworkCore.SqlServer or Oracle in the next future.
Operating system: Windows 10 Pro
IDE: Visual Studio 2017 Enterprise 15.7.5

Best regards,
Jener Garcia Menezes
System Architect at PROSEGUR S/A

@jenergm, i suppose it’s just simple sample because i do not see any benefits of dynamic sql building versus linq queries. EF will create parameters and SQL without any problem.
public IHttpActionResult FindPaged(MyViewModel dto)
{
    using (MyContext myContext = new MyContext())
    {

        var query = myContext.MyTable.AsNoTracking().Where(t => !t.Disabled);
        if (!string.IsNullOrEmpty(dto.name))
             query = query.Where(t => t.Name.Contains(dto.Name));
        if (dto.capacity != null)
             query = query.Where(t => t.Capacity > dto.Capacity);
        if (dto.dir == null)
             query = query.OrderBy(t => t.Name);
        else
             query = query.OrderByDescending(t => t.Name);

        query = query.Skip(pageNumber * pagesSize).Take(pageSize);

        var result = query.Select(t => new MyViewModel
             {
                    Id = t.Id,
                    Name = t.Name,
                    Capacity = t.Capacity,
                    Version = t.Version
              });

        return Ok(result.ToList());
    }
}

And if you need some dynamic querying like ordering by different columns - there is DynamicLinq.

Hi Svyatoslav Danyliv,
Thanks for answer and participate!
I have this option in my solution too. It was a simple example, sorry to didn't put a complex that we have. I simplificated that to become understandable. But you should know that some advanced queries are impossible to do with dynamic expressions and is so hard to DBAs creating indexes to that...
Most complex systems here use direct SQL Queries and we would like continuing using that.
Thanks in advance!

@jenergm, you have several options before EF support this again.

Use Dapper
MyContext.Database.GetDbConnection().Query...
And if you want to continue with linq, try our linq2db integration which developed for complex linq queries. It will be easy for guys who know SQL very well.

I understood... but we really would like something in EntityFrameworkCore as there is in EntityFramework of .NET Framework.

@jenergm Is there some reason that FromSql with QueryTypes doesn't work for you?

@jenergm Not having to define query types in the model is tracked by #10753

Hi Arthur,
Thanks for answer me!
I wish it can be possible in a next future version.
Cheers,

any news?

You can use this: https://github.com/aspnet/EntityFrameworkCore/issues/1862#issuecomment-451671168


Remove replication table on upgrade

As a follow up to #3080 , need to add an upgrade step that removes the replication table from ZooKeeper, HDFS, and the metadata table, and removes any metadata from the metadata table pertaining to the replication feature.

It may be useful to complete #3098 before completing this, in order to make it easier to add new upgrade code.

Would this be more appropriate as a manual - post install step? I think using the shell to drop the table would perform most, if not all of the clean-up.  This would put the responsibility that it was "safe" to remove any active replication information on the administrators.
If someone was using replication - they would need to ensure that the replication queue was fully drained before performing the upgrade.  We could abort the upgrade if we can determine that a) replication is active and b) data remains that has not been replicated - this would be similar to they way that we refuse to upgrade if any FATE transactions exist because we do not handle FATE conversions.

Would this be more appropriate as a manual - post install step?

@EdColeman Short answer: No.
Users wouldn't be able to delete the replication table, because they can't delete stuff in the builtin accumulo namespace. Unless we bake in special exceptions for replication, which contrasts with the goal of removing it. Trying to relocate the table to user space is one option, but it is fraught with issues, starting with potential name collisions, the fact that the table ID doesn't match the same base-36 number format as other user tables, and also that you don't know which configuration that might be set on the built-in namespace that needs to be copied over to the new table or namespace on relocation.
But also, the information in this table is very heavily contextualized to the current state of Accumulo and its write ahead logs and garbage collection, which have already been stripped of any relevant code that would be affected by this metadata. So any information in this table isn't going to be up-to-date with the state of Accumulo's WALs anyway... not to mention that there's little to no documentation about the structure of this table that an administrator could use to make sense of its contents.

If someone was using replication - they would need to ensure that the replication queue was fully drained before performing the upgrade. We could abort the upgrade if we can determine that a) replication is active and b) data remains that has not been replicated - this would be similar to they way that we refuse to upgrade if any FATE transactions exist because we do not handle FATE conversions.

It would be enough to just check that the replication table is marked offline in ZK before proceeding. If it's marked as online in ZK, then we could abort. I don't think it's worth doing anything beyond that to investigate the state of replication during the upgrade process.

This may need to be done first - or other provision need to be made.  I was testing an incremental update where I removed the ZooKeeper property conversions. I started a 2.1 instance, created and populated a test table and on 3.0 (modified) restart, the following is occurring in the tserver.
2022-12-01T16:00:21,353 [scan.LookupTask] WARN : exception while doing multi-scan
java.lang.RuntimeException: java.lang.ClassNotFoundException: org.apache.accumulo.server.replication.StatusCombiner

full trace
java.lang.RuntimeException: java.lang.ClassNotFoundException: org.apache.accumulo.server.replication.StatusCombiner
        at org.apache.accumulo.core.iteratorsImpl.IteratorConfigUtil.loadIterators(IteratorConfigUtil.java:231) ~[accumulo-core-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.apache.accumulo.tserver.tablet.ScanDataSource.createIterator(ScanDataSource.java:229) ~[accumulo-tserver-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.apache.accumulo.tserver.tablet.ScanDataSource.iterator(ScanDataSource.java:120) ~[accumulo-tserver-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.apache.accumulo.core.iteratorsImpl.system.SourceSwitchingIterator.seek(SourceSwitchingIterator.java:231) ~[accumulo-core-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.apache.accumulo.tserver.tablet.TabletBase.lookup(TabletBase.java:358) ~[accumulo-tserver-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.apache.accumulo.tserver.tablet.TabletBase.lookup(TabletBase.java:208) ~[accumulo-tserver-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.apache.accumulo.tserver.scan.LookupTask.run(LookupTask.java:129) ~[accumulo-tserver-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.apache.accumulo.tserver.session.ScanSession$ScanMeasurer.run(ScanSession.java:62) ~[accumulo-tserver-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.apache.accumulo.core.trace.TraceWrappedRunnable.run(TraceWrappedRunnable.java:52) ~[accumulo-core-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[?:?]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[?:?]
        at org.apache.accumulo.core.trace.TraceWrappedRunnable.run(TraceWrappedRunnable.java:52) ~[accumulo-core-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:834) ~[?:?]
Caused by: java.lang.ClassNotFoundException: org.apache.accumulo.server.replication.StatusCombiner
        at java.net.URLClassLoader.findClass(URLClassLoader.java:471) ~[?:?]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:588) ~[?:?]
        at org.apache.accumulo.start.classloader.AccumuloClassLoader$1.loadClass(AccumuloClassLoader.java:217) ~[accumulo-start-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[?:?]
        at org.apache.accumulo.core.classloader.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:85) ~[accumulo-core-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.apache.accumulo.core.iteratorsImpl.IteratorConfigUtil.loadClass(IteratorConfigUtil.java:240) ~[accumulo-core-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        at org.apache.accumulo.core.iteratorsImpl.IteratorConfigUtil.loadIterators(IteratorConfigUtil.java:215) ~[accumulo-core-3.0.0-SNAPSHOT.jar:3.0.0-SNAPSHOT]
        ... 12 more

That's the path I am now heading.  For reference, these are the iterator set for replication in 2.1 (with replication off, never activated.
uno ashell -e 'config -np -t accumulo.metadata' | grep repli
default    | table.file.replication ........................ | 0
table      | table.iterator.majc.replcombiner .............. | 9,org.apache.accumulo.server.replication.StatusCombiner
table      | table.iterator.minc.replcombiner .............. | 9,org.apache.accumulo.server.replication.StatusCombiner
table      | table.iterator.scan.replcombiner .............. | 9,org.apache.accumulo.server.replication.StatusCombiner
default    | table.replication ............................. | false

Closed with #3137


Pagination

Hey,
Any thoughts on how to implement a custom page/limit filter? Near as I can tell this itsn't handled in a normal query which gets built, but are additional operators find().limit().offset()

Yes, this is something I have thought of but I have not concluded on what the best API interface should look like. Any suggestions?

Commonly this is done via a ?limit&page. On a side note it's actually not super efficient to use skip because this is done on a cursor so the data is first fetched in it's entirety and then paged. Mongo suggests using ranged queries using either a date field or _id (which is sorted). So you would then ask for the next 10 pages starting form date/id X.
Personally I think this can all get a little messy. Perhaps a better approach would be to consider doing all of this via the aggregation pipeline. The benefit of this is that your query object is an array of aggregation queries so you can build this up with the middleware and pass a single query object to mongo (for instance how would you easily handle count, skip, limit or any other cursor operation?).

I'd love to see something like this as well. Thanks for a great project!


Feature: Set weight on RPC methods

This commit makes weight on rpc method configurable through command line
argument -m/--method.
Default weights remain the same.
Example: ethspam -m eth_blockNumber:1 -m eth_call:99 is going to send
1% of eth_blockNumber query and 99% of eth_call.

Another excellent addition, thank you! :) Fixes #2


Adding support for IIS profiling events in KUDU's process explorer

This code will create a checkbox called "Collect IIS events" next to the START PROFILING button in process explorer in KUDU and this will allow to collect IIS ETW events, along with thread time events for Perfview and they will help in troubleshooting slow performance issues in Azure App Service

@puneet-gupta,
Thanks for your contribution.
To ensure that the project team has proper rights to use your work, please complete the Contribution License Agreement at https://cla2.dotnetfoundation.org.
It will cover your contributions to all Microsoft-managed open source projects.
Thanks,
.NET Foundation Pull Request Bot

@puneet-gupta, thanks for signing the contribution license agreement. We will now validate the agreement and then the pull request.
Thanks, .NET Foundation Pull Request Bot

Please combine all the commits into a single commit for the PRs.

@safihamid having multiple commits should not affect your ability to review, since it shows you the overall change to comment on. Only when it comes time to merge it in do we need to worry about squashing.

Addressed following changes in latest commit

Changed contant names to pascal naming convention
Fixed space before iistracing for the comment 'nit: space after comma'
Removed monitor switch from profiler
Removed all unwanted logic for retry etc. which I had put earlier for the monitor switch which wasnt necessary.
Put back the line in processexplorer.js which got removed accidently

What would be the negatives of always including the IIS providers in the profile?

@ahmelsayed IIS profiles use /threadTime which log all context switches, block times, ... creating such profiles are very CPU intensive and generate large files. we definitely don;' want to enable them when running CPU profiling which just gets a CPU call stack every millisecond and can be opened in VS for further processing. IIS profiles are for deeper investigations and can be opened in perfView.

Can you deploy a standard asp.net site or web api, on a small dedicated worker, enable IIS profiling and load test it with WCAT or some other http stress testing tool for 3 minutes and share the file? Also plz log the timestamp, I want to see how big the file would be and how the VM behaved during that time.
If the file size is too big that even PerfView has problem opening it or if the VM is having Disk Space issues on D drive or the site's temp folder then we must lower the timeout value

Working on the stress test and repro part....should have it ready in a day or two

@safihamid - Instead of hardcoding the _profileIisTimeout to 3 minutes (or 1 minute if we end up finalizing it), are we ok to expose an APP_SETTING something like IIS_PROFILING_TIMEOUT_KUDU which an end customer can site and that can override the default timeout ???
In some situations, I am thinking that there may be a valid need to increase this timeout and we should have some option for the customer.
We can always have the MAX to be 15 minutes so that if a customer chooses a higher value than this, it doesn't get honored.

@puneet-gupta  That's actually a good idea. we can have the default and then have an option to override if really needed. Also I don't remember if I have ever tested it but what happens to the UI if profiling is started and then they forget to stop it and it times out?

@safihamid "Also I don't remember if I have ever tested it but what happens to the UI if profiling is started and then they forget to stop it and it times out?"
I tested this and found that the UI doesn't auto-update itself. However if someone clicks REFRESH or Refreshes the browser after the timeout then the button status is correctly set to Start Profiling
Shall I also implement the logic for IIS_PROFILING_TIMEOUT_KUDU  and does this name look OK?

@puneet-gupta how about  IIS_PROFILING_TIMEOUT_OVERRIDE_IN_SECONDS?

seems to long, how about IIS_PROFILING_TIMEOUT_IN_SECONDS

good! :-)

cool , will update this tomorrow

@safihamid also shared a sample ETW trace with you over email to have a quick review

@safihamid  Regarding the specifying height and width, I do see hard-coded height and width at some places in code. If I am leaving this to AUTO then the dialog is looking a bit ugly as there is quite some information displayed in the message box.
It seems I have addressed the issues but please let me know if I missed something (It seems some comments are missing for some reason but I remember them reading here)

I merged the change. Thanks @puneet-gupta for your contrib!

Thank you Hamid , Paul and David for letting me contribute to this project !!!! It was a great experience for me and I am sure it will help support and customers tremendously....
Do we know when this available to all in Kudu ?

Hopefully we'll deployit next week.


Path planning and obstacle avoidance?

Great work, powerful tool,  thanks for making it open source. Could you please outline how could this used for path planning and obstacle avoidance?
According to my modest knowledge voxblox uses ESDF  which are a voxel grid where every point contains its Euclidean distance to the nearest obstacle. In voxblox, authors create ESDF from TSDF to be used for local and global path planning.
BEST REGARDS
thanks again

Kimera-Semantics still builds a TSDF implicitly, so it would be possible to generate an ESDF as well, unfortunately, that is still not fully implemented (although it should be easy!).


[Theme Switching] - Avatar placeholder remains in dark mode when app is in light mode

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Version Number: v1.4.13-4
Reproducible in staging?: y
Reproducible in production?: n
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: Applause - Internal team
Slack conversation:
Action Performed:
Precondition: App is in light mode.

Launch New Expensify app.
Go offline.
Tap Search.
Look for user with placeholder avatar.

Expected Result:
The avatar placeholder will be displayed in light mode.
Actual Result:
The avatar placeholder remains in dark mode.
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

Screenshots/Videos
Add any screenshot/video evidence

https://github.com/Expensify/App/assets/93399543/06a07529-e630-452e-b530-aec5c6be75aa
View all open jobs on GitHub

This isn't worth blocking the deploy, so I removed the label.

This is just the image we use for the fallback avatar, so it's not technically a bug. @dubielzyk-expensify do you think we should use a theme-specific image here?

Sure can. Do you have a link to the original so I can check the export settings?

Think I found this here and it seems to use outdated colors as well, so uploading both new dark and light version of our fallback avatar:
svgs.zip

cc @Expensify/design

Nice! What color are you using for the fallback avatar BG color? We might want to use something like the icon color as the BG here so that we never have any worry about the icon getting lost in the LHN depending on active or hover states. Actually that being said, I think our border color (same BG as buttons) would be a good BG color as it won't collide with rowHover or the active/press state?

It's currently the background is using borders and the icon uses icon color:

Lovely! Let's do it then!

:chef-kiss:

On it!

Some of these are definitely unused

I think we can delete all the room avatars. But we do need the workspace version @dubielzyk-expensify

Ask and you shall receive. Workspace default avatar for both light and dark mode:
avatar-workspace.zip
Let me know if others are needed.

@dubielzyk-expensify could I get the original fallback avatar ones with the same bounding box as those two as well? They look different on preview

could I get the original fallback avatar ones with the same bounding box as those two as well?

Here ya go.
avatar-fallback.zip

Let me know if there's anything else needed from my side

Not overdue Melvz

Any updates here?

@grgia is weekly still the right prioritization for this one, or should I bump to monthly?

Gonna bump this one to monthly. There's a WIP PR, but no recent progress. @grgia LMK if we plan to prioritize this one sooner than that and happy to adjust it

Any updates on this one?

I think the next step is to continue with the draft PR.

Yeah going to get this one updated this week as it relates to another bug

Found a much easier way to do this, going to create a new PR

PR out on staging

PR is on prod. Payment due on 2024-04-17

@s77rt do you think a regression test would be helpful here?

It's unlikely that this bug would resurface again. Let's not add a specific test case here. The generic one should be enough https://expensify.testrail.io/index.php?/cases/view/2990277

Sounds good. TY!

All set to issue payment here. Only payment is $250 to @s77rt via upwork for C+ review. (Would've normally been $500 based on when the issue was created, but this one had a regression).

OG upwork job is closed, so I opened a new one.

@s77rt offer sent for $250!

@joekaufmanexpensify Accepted! Thanks!

@s77rt $250 sent and contract ended!

Upwork job closed.

All set. Thanks everyone!


Page outdated as CU13 is current release of SQL Server 2017

The page states that CU12 is the most recent CU for SQL Server 2017 but this is outdated as CU13 was released last month on 18th December: https://sqlserverupdates.com/sql-server-2017-updates/

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

ID: 2144de3e-5a91-5525-91f1-3d8a93aba54e
Version Independent ID: 31e3fd7c-2d04-e976-8295-4edce2d1a093
Content: Release notes for SQL Server 2017 on Linux - SQL Server
Content Source: docs/linux/sql-server-linux-release-notes.md
Product: sql
GitHub Login: @rothja
Microsoft Alias: jroth

@rothja Hi Jason,  Can you please process this Issue 1495, about CU13.  Thanks.
cc: @MikeRayMSFT  , @robinwilson16


Unable to post episode to anchorfm: TimeoutError: Waiting for selector button[data-testid="auth-accept"]

Hello, i dont have idea how to resolve this problem. I transfer my account to Spotify podcast, create email and password secret. BUT! I got this error message Unable to post episode to anchorfm: TimeoutError: Waiting for selector button[data-testid="auth-accept"]
And this screenshot

I must enter code from email, but it's not possible. Any ideas?

Try uploading one podcast manually and maybe it will unlock future podcasts. This helped me to get rid of Captcha

It's already a running project, but I've tried uploading the episode manually instead of using a script like I have been. But nothing. It keeps popping up, I think it requires authentication to an IP address, connection or something. Maybe the two-phase authentication could be turned off, but I haven't found where at all, the spotify documentation links me to places that don't exist.

Try uploading one podcast manually and maybe it will unlock future podcasts. This helped me to get rid of Captcha

Encountering the same issue. Did you ever find a solution?

Encountering the same issue.

@matevskial @abe-101 Hi guys, do you have any clues on how to solve it?

I plan on tackling this.

We added a new account to the podcast and tried this again. The error stays the same, but the view is like this:
Image
So this time it actually seems to log in, but the error is the same:
1|main  | Error: Unable to post episode to anchorfm: TimeoutError: Waiting for selector `button[data-testid="auth-accept"]` failed: Waiting failed: 30000ms exceeded
1|main  |     at postEpisode (/opt/nodeapps/main/node_modules/youtube-to-anchorfm/src/anchorfm-pupeteer/index.js:93:11)

Maybe that's some additional helpful information.

Tried this again, and I get the same error, but this time it seems to actually pass the login:
Imgur

Upon further investigation, this seems to be an issue with Spotify itself. Since they changed the login  to spotify, they included a couple of restrictions:

Spotify is strict about logging in too often, so sometimes spotify might ask to enter some code
Spotify is strict about regional login: now github actions that use youtube-to-anchorfm usually run on US servers, and if a user happens to be not from the US, then Spotify does things like disablign your account, or maybe asking to enter some code. Effectively, Spotify battles VPN users.

We cannot do anything to solve those issues, but we can offer alternative ways of  using this script:

Set up this repo for development locally and run it like that, check this https://github.com/Schroedinger-Hat/youtube-to-anchorfm/?tab=readme-ov-file#how-can-i-setup-for-development-and-use-the-script-locally

Built a docker image of youtube-to-anchorfm locally and run a container.

This is might be a time to introduce some guides of using youtube-to-anchorfm as standalone docker image whose containers can be run in any environment.

Going to close this as the Docker image is currently published / WIP to the next release


m-apiserver should facilitate integration testing

References:

https://github.com/containous/traefik/tree/master/integration
https://github.com/containous/traefik/tree/master/examples
https://github.com/apprenda/kismatic/tree/master/integration

This can be a separate repo etc.

Dockerizing m-apiserver is part of the overall faciliation
https://github.com/openebs/mayaserver/issues/44

Currently curl is being used to test in the integration setup.
Use a tool/language to test the HTTP Verbs & compliance with REST standards.
Make it automated.

Approach 1

Write simple main.go program that has the logic to test a integration use case
Package the main.go into a dockerfile & create a docker image of it

This docker image should execute the main program upon launch

Write K8s specs e.g. maya-api-server-init-test.yaml that does below:

sets appropriate security / rbac settings required to run in a K8s environment
launches K8s Jobs of above images

Write K8s specs e.g. maya-api-server-stop-test.yaml that does below:

removes the security settings that init-test created
remove the K8s Jobs that init-test created

Inference is done via various K8s deployments that deal with below:

success, warn, error log tracking
etc


fix(security): Security upgrade miniflare from 2.5.0 to 2.5.1

This PR was automatically created by Snyk using the credentials of a real user.Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

Changes included in this PR

Changes to the following files to upgrade the vulnerable dependencies to a fixed version:

package.json
package-lock.json

Vulnerabilities that will be fixed
With an upgrade:

Severity
Priority Score (*)
Issue
Breaking Change
Exploit Maturity

663/1000  Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 5.4
Improper Certificate Validation SNYK-JS-UNDICI-2928996
No
Proof of Concept

(*) Note that the real score may have changed since the PR was raised.

Commit messages

Package name: miniflare
    The new version differs by 7 commits.

1c6f6ff Bump versions to `2.5.1`
881ef0c Bump to<EMAIL_ADDRESS>and<EMAIL_ADDRESS>to fix audit warnings
428fd61 Upgrade undici to 5.5.1 (#286)
75abe07 Fix linting/type checking job
825054d Update actions workflow to Node 18 and add linting/type checking job
3eba8f2 Add missing `.` to `CHANGELOG.md`
f36b49b Gate Durable Object `list()` `startAfter` `splice()`

See the full diff

Check the changes in this PR to ensure they won't cause issues with your project.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
🛠 Adjust project settings
📚 Read more about Snyk's upgrade and patch logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Learn about vulnerability in an interactive lesson of Snyk Learn.

closing this, it's included in #38


Bug free

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version:
OS Version:

Steps to Reproduce:

good things


optional independent execution of request and response middleware

This PR is one way falcon might introduce the option to execute request and response middleware independently.
The current behavior of process_response middleware is request-specific and dependent on whether or not any process_request middleware raises an exception. In cases where request middleware does raise, e.g. an HTTPError, still-desired response middleware may not be reachable because not yet added to the request-specific response middleware stack. Sometimes this issue can be resolved by re-ordering the middleware stack, but the order of middleware may be dominated by other concerns.
The solution proposed here preserves current behavior, enabling new behavior with a flag. New behavior is: all request middleware executed in order (as now), all resource middleware executed in order if no request middleware raised and request is successfully routed (as now), all response middleware is executed in reverse order.

Current coverage is 99.59% (diff: 75.00%)

Merging #926 into master will decrease coverage by 0.40%

@@           master       #926   diff @@
========================================
  Files          31         31
  Lines        1975       1986    +11
  Methods         0          0
  Messages        0          0
  Branches      325        331     +6
========================================
+ Hits         1975       1978     +3
- Misses          0          6     +6
- Partials        0          2     +2

Powered by Codecov. Last update addf11a...9a800f8

rebased on 1.1.0


Auto-login should be student user, not admin

Should be easy to automate in Ansible configuration playbook.

Look in the file: /etc/lightdm/lightdm.conf
Find the line: autologin-user=admin
Change it to: autologin-user=student

Closed in https://github.com/DavesCodeMusings/school-coding-lab/commit/e82d4fb4244fccdaf5b467194f889334a6f04dab


Add matrix-Z and connective like to gaussian input

idk

@Mateus-RB we already added zmatrix to gaussian input as wee see in #69. We have only to add the connective.


Can't reconnect to my OpenShift cluster

Describe the bug
I use Lens on an OpenShift cluster. When I disconnect/reconnect from the cluster using the command line, Lens is no more able to connect to the cluster
Expected behavior
I should be able to connect to my cluster each time with Lens
Environment (please complete the following information):

Lens Version: 3.0.1
OS: Windows 10
Installation method (e.g. snap or AppImage in Linux): Using Lens-Setup.exe

Logs:
When you run the application executable from command line you will see some logging output. Please paste them here:
 ←[32minfo←[39m: Checking for update
←[32minfo←[39m: Update for version 3.0.1 is not available (latest version: 3.0.1, downgrade is disallowed).
←[32minfo←[39m: initializing server for <IP_ADDRESS>:49152 on port 49153
←[31merror←[39m: Failed to connect to cluster adeo-spc-turbine-qa/manawa-euw3-gcp1-adeo-cloud:443/20008203: {"name":"StatusCodeError","statusCode":401,"message":"401 - {\"kind\":\"Status\",\"apiVersion\":\"v1\",\"metadata\":{},\"status\":\"Failure\",\"message\":\"Unauthorized\",\"reason\":\"Unauthorized\",\"code\":401}","error":{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Unauthorized","reason":"Unauthorized","code":401},"options":{"json":true,"timeout":10000,"headers":{"host":"35d4d4ff-0f66-4a4d-a831-1ce61c5ef34b.localhost:49152"},"uri":"http://<IP_ADDRESS>:49152/api-kube/version","simple":true,"resolveWithFullResponse":false,"transform2xxOnly":false},"response":{"statusCode":401,"body":{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"Unauthorized","reason":"Unauthorized","code":401},"headers":{"audit-id":"ebe0900d-eb02-4cd7-a69f-36e0cd1b7b3c","cache-control":"no-store","content-length":"129","content-type":"application/json","date":"Thu, 19 Mar 2020 09:25:36 GMT","connection":"close"},"request":{"uri":{"protocol":"http:","slashes":true,"auth":null,"host":"<IP_ADDRESS>:49152","port":"49152","hostname":"<IP_ADDRESS>","hash":null,"search":null,"query":null,"pathname":"/api-kube/version","path":"/api-kube/version","href":"http://<IP_ADDRESS>:49152/api-kube/version"},"method":"GET","headers":{"host":"35d4d4ff-0f66-4a4d-a831-1ce61c5ef34b.localhost:49152","accept":"application/json"}}}}

Kubeconfig:
Quite often the problems are caused by malformed kubeconfig which the application tries to load. Please share your kubeconfig, remember to remove any secret and sensitive information.
apiVersion: v1
clusters:
- cluster:
    server: https://MY_COMPANY_CLUSTER:443
  name: MY_COMPANY_CLUSTER:443
contexts:
- context:
    cluster: MY_COMPANY_CLUSTER:443
    namespace: MY_NAMESPACE
    user: MY_LOGIN/MY_COMPANY_CLUSTER:443
  name: MY_NAMESPACE/MY_COMPANY_CLUSTER:443/MY_LOGIN
current-context: MY_NAMESPACE/MY_COMPANY_CLUSTER:443/MY_LOGIN
kind: Config
preferences: {}
users:
- name: MY_LOGIN/MY_COMPANY_CLUSTER:443
  user:
    token: a token which changes everytime I reissue a oc login command

Additional context
This is an enterprise OpenShift cluster, which uses authenticated access (in other words, to connect to that cluster, I ahve to run oc login first). Maybe it's due to the lack of OpenShift support in Lens (which I understand).

Ran into same issue . When connecting to Openshift .

Is it possible to use the exec: command: structure within kubeconfig to run oc login for you?

Might be related to #200, I assume this is still a problem with 4.1.4?


chore: typesafe mocks

adds the expecter option to mockery. this allows you to use EXPECT() on mocks so you can call the method directly, instead of having to hardcode the method name. edited one test with an example.

LGTM - just conflicts after we removed modules.
Can we make a task to move tests to use the typesafe versions?

opened https://linear.app/skip/issue/CON-1718/update-mock-calls-to-use-expectmethodname-instead-of-onmethodname


[SPARK-29942][ML] Impl Complement Naive Bayes Classifier

What changes were proposed in this pull request?
Impl Complement Naive Bayes Classifier as a modelType option in NaiveBayes
Why are the changes needed?
1, it is a better choice for text classification: it is said in scikit-learn that 'CNB regularly outperforms MNB (often by a considerable margin) on text classification tasks.'
2, CNB is highly similar to existing MNB, only a small part of existing MNB need to be changed, so it is a easy win to support CNB.
Does this PR introduce any user-facing change?
yes, a new modelType is supported
How was this patch tested?
added testsuites

Test build #114011 has started for PR 26575 at commit 132e2a7.

Merged build finished. Test PASSed.

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

Test build #114011 has finished for PR 26575 at commit 132e2a7.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

retest this please

Test build #114019 has started for PR 26575 at commit 132e2a7.

Merged build finished. Test PASSed.

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

Test build #114019 has finished for PR 26575 at commit 132e2a7.

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

Merged build finished. Test PASSed.

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

friendly ping @srowen

Test build #114053 has started for PR 26575 at commit b5267e8.

Merged build finished. Test PASSed.

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

Test build #114053 has finished for PR 26575 at commit b5267e8.

This patch fails PySpark unit tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test FAILed.

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

Merged build finished. Test PASSed.

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

Test build #114059 has started for PR 26575 at commit da7f3ff.

Test build #114059 has finished for PR 26575 at commit da7f3ff.

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

Merged build finished. Test PASSed.

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

Test build #114069 has started for PR 26575 at commit ad36b5b.

Merged build finished. Test PASSed.

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

Test build #114069 has finished for PR 26575 at commit ad36b5b.

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

Merged build finished. Test PASSed.

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

Merged to master, thanks @srowen for reviewing!


finding breakpoint

Hello,
thank you for your nice tool. I am using the function LinearTreeRegressor to draw a continuous piecewise linear. It works well, I am wondering, is it possible to show the location (the coordinates) of the breakpoints?
thank you

Hi, thanks for your feedback
What do you mean by "location/coordinates"? Could u please provide a dummy example?
If u support the project, don't forget to leave a star ;-)

@cerlymarco ciao Marco, il tuo progetto  is really spot on. Linear trees and derivations of such approach deserve more investigation for their clear potential ... kudos to you.
I ll'try to fork and contribute more on this soon
Daniele
ergonomica

Hi @DanieleBaranzini,
This would be a great pleasure!

@ZhengLiu1119, given this data:
np.random.seed(9999)
x = np.random.normal(0, 1, 10000) * 10
y = np.where(x < -15, -2 * x +3, np.where(x <10, x + 48, -4 * x + 98)) + np.random.normal(0, 8, 10000)

y = y/(80/0.35)+0.04
x = x/(60/0.08)+0.945
pos = np.where(x<0.98)
y = y[pos]
x = x[pos]

plt.scatter(x, y, s = 5, color = u'b', marker = '.', label = 'scatter plt')
plt.grid()

on which we build our LinearTree (with depth=3)
model = LinearTreeRegressor(base_estimator=LinearRegression(), max_depth=2)
model.fit(x.reshape(-1,1), y.reshape(-1,1))

in my opinion, you can easily use the apply function to map each element to each predicted leaves (this is the same function of DecisionTree from sklearn) and use the leaves numbers to hack the changepoints:
xd = np.linspace(0.9, 0.98, 1000)
yd = model.predict(xd.reshape(-1, 1))

leaves_mapping = model.apply(xd.reshape(-1, 1))
change_points = np.where(np.diff(leaves_mapping, prepend=leaves_mapping[0]) != 0)[0]

The final plot results in:
plt.scatter(x, y, s = 0.4, color = u'b', marker = '.', label = 'scatter plt')
plt.plot(xd, yd, "r", label = 'decision tree', linewidth=4)

for cp in change_points:
  plt.axvline(xd[cp], c='green', linewidth=2, linestyle='--')

plt.grid()

HERE is the running notebook.
All the best


Project upgrade path

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/687
Originally created by @mbergeron on 2019-06-06 14:26:04

Problem to solve
(Summarize the problem we are trying to solve in the form of we need to do [A], so that [B] can [C])
As users will start to create Meltano projects, we need to make sure we are not breaking them whenever we want to improve the product.
For instance, if we need to change the format of the meltano.yml file, most project would then fail to parse the new format and thus crash/undefined behavior.
Target audience
(For whom are we doing this? Include a persona)
All users of Meltano.
Further details
(Include use cases, benefits, and/or goals)
This is a technical necessity, because breaking changes will happen and we should not prevent ourselves from improving the product in fear of breaking something.
Proposal
(How are we going to solve the problem? Try to include the user journey)
I propose we add a killswitch in Meltano to look at the current project version. If the version is not compatible, we ought to provide a migration path, either automated or documented.
Regression test
(Ensure the feature doesn't cause any regressions)

[ ] Write adequate test cases and submit test results
[ ] Test results should be reviewed by a person from the team

Links / references
Please note that this was taken from GitLab, to be changed accordingly
Related to #232

View 4 previous comments from the original issue on GitLab


Add Sitemap information from plugins

Is there any way for a plugin add their own content to the RSS feed?

Would also need plugins to be able to add sitemap information.

I think we should get rid of dynamic sitemaps. It's really weird and unnecessary to regenerate the sitemap at certain time intervals.

the rss feed customizarion is easy:
create your templates html.erb with rss.builder and create your content.
Sample index.html.erb (default)
xml.instruct! :xml, :version => "1.0"
xml.rss :version => "2.0" do
  xml.channel do
    xml.title current_site.the_title
    xml.description current_site.the_excerpt
    xml.link current_site.the_url

    for post in current_site.the_contents.paginate(:page => params[:page], :per_page => current_site.front_per_page).decorate
      xml.item do
        xml.title post.the_title
        xml.description post.the_excerpt
        xml.pubDate post.the_created_at
        xml.upDate post.the_updated_at
        xml.link post.the_url
        xml.guid post.the_id
        xml.thumb post.the_thumb_url
      end
    end
  end
end

About sitemaps, when they should generated?
I was using "dynamic_sitemaps" gem to generate every day and ping to google and yahoo with the changes.

Also, there is a hook "sitemap" to add custom sitemaps

I want a way to add content to the sitemap that comes out of the CMS without having to repeat all of the code that handles the CMS content.

For search engines, they can just be generated whenever the route /sitemap.xml is requested. Typically, generating sitemaps is fast.

Is there a place for users to view the sitemap? I don't think modern sites do this anymore but it used to be common in older content management systems, such as, PHP Nuke, joomla, etc.

I will remove the cronjob for sitemaps and move all to render inline.
For now, you can see like this url:
http://camaleon.tuzitio.com/sitemap

So plugins actually don't need to add information to the rss feed. It appears that RSS only contains things that are changed frequently.
In the case of a CMS, posts and categories change. We just need rss to render the appropriate xml and put category tags within each post item.

Is the sitemap generated from the navigation menus?

@owen2345 Is the sitemap generated from the navigation menus?

no, it takes all group of contents, categories and post's.

What about pages and post types?

you can customize your sitemap template with hook "on_render_sitemap".
Arguments: {layout: (params[:format] == "html" ? (self.send :_layout) : false), render: "sitemap"}
def my_on_render_sitemap(args)
 args[:render] = "path_to_my_template"
end

Doesn't that completely overwrite the sitemap though?

I would want to append to the urlset of the existing xml generated by default

mmm for that would be to add a hook in the template, what do you think?

Yeah, that's the only way to accomplish it that I can think of

sample:
Ready: you need to use this hook "on_render_sitemap", where this receives: {layout, render, custom = (String), format =(String) html | xml}
def my_on_render_sitemap(args)
if args[:format] != "html"
  args[:custom] << "
    xml.url do
        xml.loc 'http://myhost.com'
        xml.lastmod '2015-09-19 03:06:44'
        xml.changefreq 'monthly'
        xml.priority '0.5'
   end"
end

@owen2345 That's pretty hacky putting Ruby into a string and then calling instance_eval on it.
I think it would be better to return a datastructure (a Hash in this case) and have the renderer (view) handle the formatting whether it's html or xml. This would also eliminate the need for the if.

I am agree with you Chris.
I changed in to Hash and you should add a Hash like this (in your hook):
args[:custom][:my_url] = {
url: "my url",
title: "the title",
lastmod: "date",
changefreq: "monthly",
priority: "0.2"
}

Also check new params to filter objects #157

@owen2345  Sweet! :+1:
N.B. priority in sitemaps is optional and defaults to 0.5.


Correct Lock Timeout behavior

On lock timeout no error is sent; you can't TRY/CATCH or examine @@error.  The proc just returns -1 and you must check the return code.

@davidbaxterbrowne : Thanks for your contribution! The author, @stevestein, has been notified to review your proposed change.

Here's a quick repro.  Run this from multiple sessions and you'll see the second timeout without an error
begin transaction
declare @rc int
exec @rc = sp_getapplock 'only_one','exclusive','transaction',0
select @rc

--rollback transaction

#sign-off

@MikeRayMSFT: I'm sorry - only the author of this article, @stevestein, can sign off on your changes. But we do have an exception process - if you are on the Microsoft content or product team for this product area, you can ask the PR review team to review and merge it by sending mail to the techdocprs alias.


datalog: serial mirroring new line doesn't have a return carriage

During the MicroPython implementation @dpgeorge noticed that the serial mirroring only does a \n instead of \r\n.
@finneyj Should we update this in CODAL?

Hi @microbit-carlos
My, this is an age old fight to have. :)
I personally have no strong feelings either way. Happy to emit CRLF if there's a consensus, but would be good to get some input from the MakeCode team here too, as they're close to a release...
@abchatra @jwunderl - Any thoughts here?

@jwunderl what does serial.writeLine emit?

we default to \r\n https://github.com/microsoft/pxt-microbit/blob/master/libs/core/serial.ts#L35

Thanks @jwunderl  @abchatra.
So it sounds like changing the serial mirroring to \r\n wouldn't keep you guys awake at night?

Sounds fine to me~

Fixed in https://github.com/lancaster-university/codal-microbit-v2/commit/2f2cbfa4fb6b0f1d46b3849362e78ad366e18c40
I've left the data logged to FLASH unchanged though - that is still terminated with '\n' only, as introducing '\r\n' in there would reduce the amount of usable storage for kids an teachers quite noticeably if you think about it. A single column log recording a typical three digit number would see a 20% reduction in available storage. which doesn't seem like a good tradeoff since the JS on the webpage parses it out anyway...


enhance iree-benchmark-module to provide required input sizes

Request description
MLIR files are sometimes generated based on user input (image size,  base model channels etc) and we may not have access to the source MLIR files (since they are in the order of gigabytes). Have a way to benchmark the vmfb in such a way the required shapes are provided.
In the real world we can evaluate and benchmark a end user system without asking for an MLIR dump but just running iree-benchmark-module
What component(s) does this issue relate to?
Runtime
Additional context
No response

Also capturing @benvanik response from Discord https://discord.com/channels/689900678990135345/689900680009482386/1084708941046480966
should never have to guess - the inputs are what you told them to be :)
if you want to automate things like that it's best to do it from the frontends - once we get down into the compiler there's a lot of stuff that gets hard to infer once we've lost the original information (and things like dynamic shapes will never work)
could have a pass like we do for the executable benchmarks that takes the frontend info and generates the shims but it'll always be untrustworthy
good for debugging, but I'd not run any benchmarks with it
(one example of frontend automation would be a function shim that dumps the inputs to a single .npy file you then pass in with --input=file.npy)

So maybe we squirrel away the input.npz in way and have a wrapper script around iree-benchmark-module to unzip the npz and pass them as inputs

This isn't something we can support as it has too many cases that make it invalid for generalized benchmarking (no stateful models/training, no dynamic shapes, any input modeling a gather/lookup will be wrong/crash/have completely incorrect performance characteristics, etc). It could be a useful debugging feature in some cases but is not worth the complexity given how much configurability we already have. I don't trust benchmarks using this approach and don't really want to route people down this path - especially as we want to focus on dynamically shaped models.
All is not lost, though. Stepping back: someone had to have the source files at some point in order to be able to build the binary files and you don't need the full source file in order to get the information to do what you're asking. Once someone has the source file they can run an iree-opt pass with elide-attrs set small to produce just the MLIR ops in mhlo/tosa/etc - which is then useful for performance analysis/triage/etc as well as having most of what you need. That could be a script that packaged things up and built a benchmark archive. Or you use iree-compile --compile-to=input (or some other phase) with elide-attrs set as that could be done via the API if using that for compilation. A useful pass could be one that just dumps the interface of the module (delete all private symbols and leave the public functions, remove the bodies, etc - effectively like generating a .h) and that could be used to slice out privileged stuff. Once you have that IR you can do whatever you want - like a pass that wraps functions with default inputs (like our existing executable benchmark stuff does) - or some python stuff to go walk the public functions and dump out a flagfile you can use to benchmark it. What you can hope to do with this stuff is limited, though, as you're only seeing half of the execution: the thing on the receiving end of of a call. This won't support stateful/training models and won't support dynamic shapes. If you're going to be passing in all zeros it can also skew performance depending on what the model is doing as for example every thread reading from location 0,0,0 it got from a gather vs over the entire 200MB range can have massive differences.
The solution that does support those things is going to the source of the call: save the inputs off when you have them in python/whatever other frontend. I'm not sure benchmarking things you can't run is a good idea, so then there's almost always going to be something that runs things you can shim into. If you produce a npy file with multiple arrays then you can pass that in with a single --input=file.npy and it'll have all the inputs. That isn't great if the inputs are very large but you could just as easily print out a flagfile with the input shapes to simulate splats. A flagfile is just one flag per line that you'd reference with --flagfile=flags.txt, and you could have something like:
--input=4xf32
--input=8xf32
etc

Walking over the args to an invocation function and dumping that to stdout or something in python should be pretty easy if you've already got code to run the model. The benefit here is that if there are dynamic shapes you'll have captured a representative example - if you were just looking at what the compiler gets you'd never be able to know what that input was expected to be. You could also print out many calls and then run your benchmarks over all of them to see what different sizes do. Going further you can print out a trace yaml file for iree-benchmark-trace which supports stateful models/training but it's the same concept: python layer dumps out a text file and runtime tool takes that text file in.
Just saw your comment: that's a zip/tar file and a shell script/command line/python script :) If you just want unzip + call iree-benchmark-module --module=foo --input=bar (or --flagfile=bar) then it's simpler to do that. That's also better than doing it at once as unless you only plan on running the benchmark one time you've now done the expensive thing (unarchiving) once for as many runs as you need.
There's lots of solutions in this space - you could dump flagfiles from iree-compile, for example - but that inherits a lot of the issues with the compile-time approach. Things get complex fast and I'm not sure it's better to tightly couple this stuff than it is to just use the normal tools and tailor it to your situation. It could be useful to others working with similar types of models and similar restrictions and if they understood the caveats then it could be under scripts/ (like compile-benchmark-package.py/run-benchmark-package.py or something). iree-benchmark-module/iree-benchmark-trace (which is even more configurable) and npy/flagfiles/etc should be what's needed to build such workflows, but if there's python shims/examples/etc those would be useful to have. Would be nice to have one-liners/mixins for "monkey patch tf session run to dump all the input shapes to a file" - that's the most interesting bit and everything after that is mostly the same (pass in inputs/flags/etc).
TLDR if you're automating this you're going to have some script running iree-benchmark-module and it can run 1 other command first if you want to archive things. If you're running things by hand then flagfiles/npy files should be sufficient (you're passing --device= and --module=, so one extra --flagfile=/--input= is fine). You can dump command lines, flagfiles, etc from your frontend.

@powderluv Do you want to leave this open?


Square chunks of MPM points can disappear seemingly randomly

Square chunks of MPM points can disappear seemingly randomly.
I'm not completely sure how to reproduce this bug, since it is seemingly random.

after playing via mouse with 2 circles, a chunk of their points just randomly disappeared while they were in collision.

properties of disappeared points


Parse OpenGraph data from links in Featured Talks

move the URL field to the top in the featured talks page
when the user enters the URL, fetch the page and parse the OpenGraph data
use the OpenGraph data to autofill the remaining fields where possible

I'll pick this one up first

Hey @sashimii how is it going with this one?

Haven't been able to get back at it. I was given a couple tech assessments by a few startups so I've been trying to finish those. Really sorry!!


Support react-scripts@4

Fixes #23

Support react-scripts@4 + tests
Bump semver minor and patch deps
gitignore and ignore in Jest .history/, which is used by "local-history" extensions in editors and IDEs

@jedmao Can we release this please?


⚠ Bofrost.de has degraded performance

In 652b76d, Bofrost.de (https://www.bofrost.de) experienced degraded performance:

HTTP code: 200
Response time: 1409 ms

Resolved: Bofrost.de performance has improved in 2f8d34b.


Breakdowns not seeming to work correctly

I am trying to request a breakdown of a dimension by itemId, but it still seems to be just giving the total as if there were no breakdown.  I'm actually looping through a bunch of itemIds to get lots of breakdowns by different items and no matter which itemId I specify, it gives the same data list.  I will share a copy of the request json, a copy of one of the response jsons, and a screenshot of the UI showing the total without the breakdown.
Request Json:
 {   "rsid": "bizjournalsglobal",   "globalFilters": [     {       "type": "dateRange",       "dateRange": "2022-10-30T00:00:00.000/2022-10-31T00:00:00.000"     }   ],   "metricContainer": {     "metrics": [       {         "columnId": "0",         "id": "metrics/pageviews",         "filters": [           "0"         ]       },       {         "columnId": "1",         "id": "metrics/visits",         "filters": [           "0"         ]       },       {         "columnId": "2",         "id": "metrics/visitors",         "filters": [           "0"         ]       }     ],     "metricFilters": [       {         "id": "0",         "type": "dateRange",         "dateRange": "2022-10-30T00:00:00.000/2022-10-31T00:00:00.000"       },       {         "id": "1",         "type": "breakdown",         "dimension": "server",         "itemId": "9796960"       }     ]   },   "dimension": "variables/firsttouchchannel",   "settings": {     "dimensionSort": "asc",     "limit": 50000   } }
Response Json:
{   "totalPages": 1,   "firstPage": true,   "lastPage": true,   "numberOfElements": 14,   "number": 0,   "totalElements": 14,   "columns": {     "dimension": {       "id": "variables/firsttouchchannel",       "type": "string"     },     "columnIds": [       "0",       "1",       "2"     ]   },   "rows": [     {       "itemId": "1",       "value": "Paid Search",       "data": [         1813,         358,         312       ]     },     {       "itemId": "2",       "value": "Natural Search",       "data": [         168594,         96293,         91725       ]     },     {       "itemId": "3",       "value": "Direct",       "data": [         64002,         31996,         27222       ]     },     {       "itemId": "4",       "value": "Session Refresh",       "data": [         10326,         4726,         4188       ]     },     {       "itemId": "6",       "value": "Referring Domains",       "data": [         15173,         8640,         8358       ]     },     {       "itemId": "7",       "value": "Editorial Email",       "data": [         48942,         28343,         25146       ]     },     {       "itemId": "8",       "value": "Marketing House Ad",       "data": [         33,         31,         30       ]     },     {       "itemId": "9",       "value": "Other Campaigns",       "data": [         2094,         1290,         1159       ]     },     {       "itemId": "10",       "value": "Marketing Email",       "data": [         363,         126,         110       ]     },     {       "itemId": "11",       "value": "Paid Social Media",       "data": [         5681,         3389,         3319       ]     },     {       "itemId": "13",       "value": "Syndication Partners",       "data": [         18495,         10971,         10619       ]     },     {       "itemId": "14",       "value": "RSS",       "data": [         1237,         726,         676       ]     },     {       "itemId": "16",       "value": "Google AMP",       "data": [         16613,         15193,         14891       ]     },     {       "itemId": "18",       "value": "Social Media",       "data": [         133814,         80195,         77496       ]     }   ],   "summaryData": {     "filteredTotals": [       487180,       282277,       265251     ],     "totals": [       487180,       282277,       265251     ]   } }
And here you can see the same number circled here, and in the response json after "Natural Search".
Still fairly convinced this is my own fault, but I haven't been able to find my error, so maybe you guys can.  Thanks in advance.  Sorry if trivial.

And like I said, no matter which ItemId I put in there, I get that same total.  My guess is that when a particular error in the request body is sent, the api disregards the breakdown, and just sends the totals for that dimension.  But like I said, I haven't been able to figure out just what the error could be.  I've used other calls to get the itemIds so I know they are legit and I even changed them first into integers, and then back into strings, to get rid of the floaty ".0" at the end.  It also ran previous with the floaty bit, so I think I've made sure I've exhausted data type errors.  Well let me know if you guys figure anything out and thanks in advance... again. lol.

A couple of things here.  I think for a breakdown, you'll want to put it in the global filters.  Also the dimension you're using is "server", but I think the value would at least need to be prepended by "variables/" to work.  Give that a try as well and see if it helps.


Bump to most recent ruby/jruby; drop ruby no longer supported

a little housekeeping in an effort to get the ball rolling again.

Thanks for the PR! We tend to take a very conservative approach to dropping support for older versions of ruby, since older versions of ruby tend to be used fairly widely for long after the official EOL dates.
We test on OS X because Apple monkey patches OpenSSL to have different behavior than on other platforms, and rest-client prints some different warnings as a result.
The Travis tests should be working again thanks to #716.


Upgrade cssparser to 0.33

Fixes #31
Most of the changes was related to cssparser::Color which has it's own crate after 0.33.
Another change is the required implementation of the new RuleBodyItemParser on PropertyParser to also implement QualifiedRuleParser.
In general, it's very painful to upgrade cssparser due to its lack of migration guide or even a decent changelog between versions. We should consider switching to https://github.com/parcel-bundler/lightningcss which not only uses cssparser but also selector (we implement our own selector logic, which isn't optimal).

I've also did a minor version bump, since even tho the cssparser was a big change, there shouldn't be any change on bevy_ecss API to end user.

It looks great!


[Minor] Add dependency to Measurement Plug-In Client

[x] This contribution adheres to CONTRIBUTING.md.

What does this Pull Request accomplish?

Add "black" to dependency in Measurement Plug-In Client.

Why should this Pull Request be merged?

Added missing dependency.

What testing has been done?

Existing automation tests passed.

Added missing dependency.

Please update the description explaining why black is required as a dependency.

I don't know why this is needed. We already have 'black' in the poetry.lock. Do you need a specific version for some reason?
https://github.com/ni/measurement-plugin-python/blob/5974af6c97d207c7c2e738890fad074a4d2831e2/packages/generator/poetry.lock#L4

Added missing dependency.

Please update the description explaining why black is required as a dependency.

I don't know why this is needed. We already have 'black' in the poetry.lock. Do you need a specific version for some reason?
https://github.com/ni/measurement-plugin-python/blob/5974af6c97d207c7c2e738890fad074a4d2831e2/packages/generator/poetry.lock#L4

WIthout adding the black to the

Added missing dependency.

Please update the description explaining why black is required as a dependency.

I don't know why this is needed. We already have 'black' in the poetry.lock. Do you need a specific version for some reason?
https://github.com/ni/measurement-plugin-python/blob/5974af6c97d207c7c2e738890fad074a4d2831e2/packages/generator/poetry.lock#L4

Without adding the "black" in [tool.poetry.dependencies], fresh machine testing throws error with black package is missing error. So, adding "black".

Added missing dependency.

Please update the description explaining why black is required as a dependency.

I don't know why this is needed. We already have 'black' in the poetry.lock. Do you need a specific version for some reason?
https://github.com/ni/measurement-plugin-python/blob/5974af6c97d207c7c2e738890fad074a4d2831e2/packages/generator/poetry.lock#L4

Added missing dependency.

Please update the description explaining why black is required as a dependency.

I don't know why this is needed. We already have 'black' in the poetry.lock. Do you need a specific version for some reason?
https://github.com/ni/measurement-plugin-python/blob/5974af6c97d207c7c2e738890fad074a4d2831e2/packages/generator/poetry.lock#L4

Without adding the "black" in [tool.poetry.dependencies], fresh machine testing throws error with black package is missing. So, adding "black" in dependencies to fix this.

Currently, black is in dev dependency, but we are using black in the Measurement Plug-In Client generator for formatting the generated code, which requires black to be added in package dependency. So, I have updated the pyproject.toml with black.


AMP mode connection for android devices

I'm finding that I can't get the Spark app to detect the Ignitron in AMP mode. The emulated device is visible in the android bluetooth settings but the app quickly fails when searching. I've tested it on a Samsung Galaxy S20+, an S8, and a Lenovo tablet, all with the same result. I believe it was mainly tested on iOS. Has anyone verified functionality in Android?

I am getting this over and over in serial monitor. @ServError I also see the emulated Ignitron device in my Android Bluetooth setting but the Spark app does no see it.

@ServError have you tried turning me n Debug mode in Common.h? Then you should be able to see more logs during connection.
@Celticpure can you put your backtrace information into the ESP Exception Decoder to see why it is crashing? Btw: your issue is not related to AMP mode. Please open a separate issue, otherwise it will be difficult to track each issue.

@Celticpure can you put your backtrace information into the ESP Exception Decoder to see why it is crashing? Btw: your issue is not related to AMP mode. Please open a separate issue, otherwise it will be difficult to track each issue.

Noted, if its not related to AMP mode then what is it related to? Just trying to move this along. There appears to be quite a few issues overall with this code that is supposed to work of the bat with ESP32.
Anyway I have SparkBox that works very reliably.

@ServError have you tried turning me n Debug mode in Common.h? Then you should be able to see more logs during connection.

I haven't yet. I will collect logs and do troubleshooting fairly soon. Since I used an uncommon ESP32 board that holds an 18650 battery and has a micro USB pointed to the side, I needed to desolder the usb port to make things fit and haven't yet attached a harness in its place. In the meantime I use an external serial to USB but it's a bit of a pain to hook up.

Die to a missing device I have not tested AMP mode with an Android device.
There might be a possibility that Android devices don't connect via Bluetooth LE. I will look into it and see if anything can be done.

Below is the serial logging on an AMP mode boot. Not seeing any additional messages for attempted connections from the Spark app.
``
ets Jun  8 2016 00:22:57
rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
configsip: 0, SPIWP:0xee
clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
mode:DIO, clock div:1
load:0x3fff0018,len:4
load:0x3fff001c,len:1044
load:0x40078000,len:10124
load:0x40080400,len:5856
entry 0x400806a8
Initializing
Initial button setup
Operation mode: 2
======= Entering AMP mode =======
Trying to read file list
Starting NimBLE Server
Advertising Started
JSON:
{"PresetNumber": 127, "UUID":"C6CC85D6-A6F5-4302-AFF6-0060D996A3B1",
"Name":"Sweet Child Of Mine" , "Version":"0.7", "Description":"Slash", "Icon":"icon.png", "BPM": 180.0000,
"Pedals": [
{ "Name":"bias.noisegate",  "IsOn": true,   "Parameters":[0.3083,0.4663] },
{ "Name":"LA2AComp",  "IsOn": false,  "Parameters":[0.0000,0.7126,0.7248] },
{ "Name":"DistortionTS9",   "IsOn": true,   "Parameters":[0.4053,0.3247,0.4773] },
{ "Name":"OverDrivenJM45",  "IsOn": true,   "Parameters":[0.7321,0.8549,0.6433,0.3079,0.8200] },
{ "Name":"Tremolo",   "IsOn": false,  "Parameters":[0.4541,0.6999,0.5962] },
{ "Name":"DelayMono",   "IsOn": true,   "Parameters":[0.2645,0.2742,0.2940,0.6000,0.0000] },
{ "Name":"bias.reverb",   "IsOn": true,   "Parameters":[0.2857,0.4084,0.2895,0.3883,0.5821,0.6500,0.2000] } ],
"Filler":"48"
}
0.31
JSON:
{"PresetNumber": 127, "UUID":"C6CC85D6-A6F5-4302-AFF6-0060D996A3B1",
"Name":"Sweet Child Of Mine" , "Version":"0.7", "Description":"Slash", "Icon":"icon.png", "BPM": 180.0000,
"Pedals": [
{ "Name":"bias.noisegate",  "IsOn": true,   "Parameters":[0.3083,0.4663] },
{ "Name":"LA2AComp",  "IsOn": false,  "Parameters":[0.0000,0.7126,0.7248] },
{ "Name":"DistortionTS9",   "IsOn": true,   "Parameters":[0.4053,0.3247,0.4773] },
{ "Name":"OverDrivenJM45",  "IsOn": true,   "Parameters":[0.7321,0.8549,0.6433,0.3079,0.8200] },
{ "Name":"Tremolo",   "IsOn": false,  "Parameters":[0.4541,0.6999,0.5962] },
{ "Name":"DelayMono",   "IsOn": true,   "Parameters":[0.2645,0.2742,0.2940,0.6000,0.0000] },
{ "Name":"bias.reverb",   "IsOn": true,   "Parameters":[0.2857,0.4084,0.2895,0.3883,0.5821,0.6500,0.2000] } ],
"Filler":"48"
}
0.31
Starting WiFI
.......
Connected to __________
IP address: __________
mDNS responder started
Initialization done.
``
I'm also attaching a wireshark trace of the bluetooth activity, wherein I first try to connect to the Ignitron twice unsuccessfully, wait a short while, then try to connect to the real amp.
btsnoop_hci.log

My assumption is that Android devices don't connect via BLE, but via BT classic. I have at some point refactored the code so that it used BLE. This was required as I wanted to be able to connect my mobile via BT audio to the Amp while using my pedal, which is only possible via BLE (in APP mode).
So I guess to enable the AMP mode for Android devices, BT classic mode needs to be implemented as well.
As I don't have much time at the moment, I don't know yet when I will be able to look into this. I also don't have a clear idea on how to make this work at all yet.

My assumption is that Android devices don't connect via BLE, but via BT classic. I have at some point refactored the code so that it used BLE. This was required as I wanted to be able to connect my mobile via BT audio to the Amp while using my pedal, which is only possible via BLE (in APP mode).
So I guess to enable the AMP mode for Android devices, BT classic mode needs to be implemented as well.
As I don't have much time at the moment, I don't know yet when I will be able to look into this. I also don't have a clear idea on how to make this work at all yet.

Yes, from my testing this is in fact the case. Rather than query the Android device to see if it supports BLE (which at this point most modern ones do), they seem to have just stuck entirely with working in BT classic.
As far as the audio + pedal setup, I don't think it's a big issue. As long as I power up the amp and connect the pedal first, I can still connect on Android for audio. If we only use BT classic in AMP mode for present configuration, then the behavior should mirror iOS pretty closely. I'm not sure if we can simulcast both classic and  BLE for this, or if it makes more sense to have two sub-modes for AMP mode to decide the connection type.
I can take a stab at it if you'd like.

I was also thinking if it is possible or useful to have both types running at the same type. As BT classic is only required for AMP mode which is chosen during startup, it should be quite straight forward to setup the right one during initialization.
Sure, you can have a go. In the best case it is mostly in the init and the other functions can largely be reused.
Let me know if you have questions on certain functions or the call flows.

Hello,
Any progress on this topic? I've seen you have a branch bt-classic. I've did a quick test but i wasn't unable to get it working.  (or i can't understand how to get it to connect to my android phone)

Yes, I had created the branch to test something with the classic BT setup. When I did this, I still had the logic of fixed messages sent for initialization which was not very robust. On the main branch I have recently changed this to be more dynamic (For iOS), so I might pick this up at a later point again. There is also a memory challenge with this as it is getting quite full.

Update: The code in the branch 20220817_btclassic_2 does work with Android devices in AMP mode, and ONLY with Android. I will at a later point check for a solution to run both BT BLE and BT Classic in parallel (if possible). If anyone has an idea how to run both stacks in parallel, please let me know.
@dpeddi @ServError @Celticpure

According to following sites it should be possible.
https://github.com/espressif/arduino-esp32/issues/1150

As an general update:
I have tried getting to work to be able to switch between BLE (iOS) and BT Serial (Android).
I got only so far that when initializing with BT Serial, I can connect. Then I can switch to BLE and the connection with iOS is working. However, when switching back to BT Serial, it crashes with what I think is memory corruption.
I could not find a way to fix this, maybe something is wrong with the libraries used.
What I also tested in my code is to not actually switch, but to switch off and on BT Serial, which worked well. Switching BLE of and on worked as well. Only switching from BLE to Serial leads to the crash.
If someone wants to have a look at the code, it is in the branch 20220822_bt_cleanup
I am about to give up.

I don't know how I missed the ping in August, but I just noticed it and loaded your branch, and it works wonderfully! Thanks so much for taking the time for it.
I'm sorry that the combined build hasn't worked out. If I get a chance, I'll take a look at the cleanup branch if I get a chance (not that things panned out so well last time I said that). Thanks again @stangreg!


Openbox resolution is too low

What is wrong
Either the GUI is too big for the screen or the screen is too small for the GUI. Martin says that max resolution for the touchscreen he has is 1024x600.
How do you know it is wrong

FYI @a-vinod, as it may require adding a task to the ansible playbook if we find the resolution is too low.

This may only affect VNC users like myself.

Canceling this issue, as this was a VNC specific problem.


Fix typo (cluser -> cluster)

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


Show Service events when LoadBalancer cannot be ensured

How to categorize this PR?

/area ops-productivity
/kind enhancement
/priority normal
Which issue(s) this PR fixes:
Fixes #2943
Release note:

When a Shoot load balancer (vpn-shoot or addons-nginx-ingress-controller) cannot be ensured, gardenlet now fetches the involved object events (with type Warning) and adds them to the error message which is shown in the Shoot status. In this way users and operators will be able to identify better issues in which load balancer cannot be ensured because of invalid cloud provider credentials or another cloud provider issue.

/assign


Crash using Nimble 5.0.0 & OCMock 3.3.1

I'm seeing a crash when running tests using the Swift 3 version of Quick / Nimble that I was not seeing on the Swift 2.3 version.
The test code causing the error:
expect(testManager.delegate).to(equal(managerDelegateMock)); // TODO: Broken on OCMock 3.3.1 & Swift 3 Quick / Nimble

The location it's breaking
// Stringers.swift
public func stringify<T>(_ value: T?) -> String {
    if let unboxed = value {
        return stringify(unboxed)
    }
    return "nil"
}

with this error:
Could not cast value of type 'OCProtocolMockObject' (0x11db0e518) to 'Swift.CustomDebugStringConvertible' (0x11d9ab0e8).

Also seeing this error elsewhere:
Could not cast value of type 'OCClassMockObject' (0x111f31518) to 'Swift.CustomDebugStringConvertible' (0x111e590e8).

for this code:
__block id fileManagerMock = OCMClassMock([SDLFileManager class]);
// ...
expect(testManager.fileManager).toNot(beNil());

It feels like there are a lot of moving parts and I'm not sure I fully understand yet what you're doing.
It's clear that you are using the Nimble framework. From looking at its page on Github it looks like it's written in Swift but can be used from Objective-C, right? Based on the code snippet in your second comment I assume your tests are written in Objective-C, right?
Now, it sounds like you've updated the version of Nimble and kept the same version of OCMock. After the update of Nimble, some of your tests are breaking with this error you mention. If I understand you correctly the error occurs in the function you included in the issue. Where exactly? What are the arguments?
Could you provide a small self-contained tests that always fails?

@joeljfischer I think this error should be fixed within Nimble itself. Could you close this issue and create one on the Nimble repository instead?
As the error message indicates, OCClassMockObject cannot be converted to Swift's CustomDebugStringConvertible protocol -- meaning, as far as I can tell, it doesn't implement -debugDescription. Nimble's stringify function attempts to handle cases in which the subject of an expectation doesn't conform to CustomDebugStringConvertible, so I'm not sure why it's failing here. But I think we can fix the problem in Nimble, rather than forcing OCMock code to change.

Closing due to inactivity. Hopefully this has been fixed by the Nimble team. @modocache?

Thanks, @erikdoe, I created an issue on the Nimble repository to track this.


Remove underscores in adf name

Fixes #48

/test

/destroy-env

/test

/test

can't try a deploy here as the PR bot is using the workflow on main so:

Deploy on my fork is ok: https://github.com/t-young31/FlowEHR/actions/runs/4055612259

/test-force-approve

/test-force-approve


Segmentation fault during collection cleanup on possibly corrupted dbm data

Describe the bug
Apache segfaults during processing of requests when the persistent collection is being processed to remove stale records.
Logs and dumps
Note: IP addresses have been obfuscated
(gdb) bt full
#0  0x00007236e618c456 in ?? () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1  0x00007236e65bb2f8 in memcpy (__len=4294967295, __src=0x7236bc01deae, __dest=<optimized out>)
    at /usr/include/x86_64-linux-gnu/bits/string_fortified.h:34
No locals.
#2  apr_pstrmemdup (a=<optimized out>, s=s@entry=0x7236bc01deae "\017\061\070\<IP_ADDRESS>",
    n=4294967295) at strings/apr_strings.c:107
        res = <optimized out>
#3  0x00007236e5fb4664 in collection_unpack (msr=msr@entry=0x7236bc020eb0, blob=0x7236bc01de76 "7",
    blob_size=228, log_vars=log_vars@entry=0) at persist_dbm.c:71
        var = 0x7236bc0b2e60
        col = 0x7236bc0b2a38
        blob_offset = 56
#4  0x00007236e5fb5c96 in collections_remove_stale (msr=msr@entry=0x7236bc020eb0,
    col_name=0x7236bc009020 "ip") at persist_dbm.c:781
        col = 0x0
        var = 0x0
        dbm_filename = 0x7236bc02d578 "/var/cache/httpd/www-ip"
        key = {dptr = 0x7236bc030ea0 "<IP_ADDRESS>", dsize = 14}
        value = {dptr = 0x7236bc01de76 "7", dsize = 228}
        dbm = <optimized out>
        rc = <optimized out>
        keys_arr = 0x7236bc02d700
        keys = 0x7236bc031ae8
        now = <optimized out>
        i = 314
        userinfo = 0x7236bc02d570 "www"
[snip]

To Reproduce
Not sure, I guess: have corrupt persistent collection data files (I made backups, if you're interested) and perform some specific requests to trigger a segfault (don't known exactly when it triggers).
Expected behavior
Webserver doesn't crash
Server (please complete the following information):

ModSecurity version: 2.9.7
WebServer: Apache 2.4.57
OS (and distro): Debian bullseye/bookworm

Additional context
https://github.com/owasp-modsecurity/ModSecurity/blob/705002be2ba23b01bd9c895a8d01ebd9fd141ceb/apache2/persist_dbm.c#L71
collection_unpack() checks if blob_offset + var->value_len expands beyond blob_size, but then runs apr_pstrmemdup() with a size of var->value_len - 1. If var->value_len = 0 the size value will wrap around to<PHONE_NUMBER>.
The following patch might help:
--- a/apache2/persist_dbm.c
+++ b/apache2/persist_dbm.c
@@ -67,7 +67,7 @@
         var->value_len = (blob[blob_offset] << 8) + blob[blob_offset + 1];
         blob_offset += 2;

-        if (blob_offset + var->value_len > blob_size) return NULL;
+        if (blob_offset + (var->value_len - 1) > blob_size) return NULL;
         var->value = apr_pstrmemdup(msr->mp, (const char *)blob + blob_offset, var->value_len - 1);
         blob_offset += var->value_len;
         var->value_len--;

Hi @twouters,
thanks for reporting this issue.
I don't remember now, but may be @marcstern already sent a fix against this bug, but there was a strange issue so we had to revert many PR's (see #3074). Now we are working on the CI workflow for mod_security2 too (v3 already has it), then we can start to re-send the PR's.
I will let you know here if the CI will done - after that if you think you can send a PR to fix this issue.
Thanks again.

To be fair: my proposed patch only prevents a crash when this situation is triggered, it doesn't prevent the cause. Nor did I take the time to figure out why value_len became 0, so it's more of a quick-fix.
We use a cronjob to clean up the persistent collections with sdbm-util because parsing the collection tends to become too slow when the files become too big. This happens while apache is running, which might be the cause of the corruption, or it's just because persistent collections aren't entirely thread-safe. Hard to tell.
Maybe I should modify the patch to produce an error log when it happens, so we can keep track and figure out (on the long run) if it still happens if we stop apache before cleaning up the collections. I'm running thousands of servers and only a handful of servers run into this issue after a span of several months, so it'll take time to get to the bottom of this unless someone with knowledge of the sdbm data structure (or handling of the data) can help with reproducing the bug.
Of you're OK with accepting my proposed patch (by the time we know it's not already fixed by Marc), I'll be happy to push a PR for it. Just know that I won't be able to produce a proper test case at this time because I don't know how to reliably trigger the proper conditions.

@marcstern could you take a look at this issue?

Hi @twouters,
I never encountered this, so I didn't fix this.
I think your patch is incorrect. Example:

blob ranges from 0 to 4
blob_size = 5
blob_offset = 2
var->value_len = 4

With your patch, it won't return and we'll copy memory up to offset 5.
On top of that, you rely on var->value_len - 1 being huge if var->value_len == 0, which should probably be always the case, but we're not supposed to do it that way (let's imagine it becomes a signed int one day).
What about a more explicit check:
if (var->value_len < 1 || blob_offset + var->value_len > blob_size) return NULL;
And the same check for var->name_len I imagine (anything could be corrupted).
I would merge such a fix.

we were already running with a modified patch, but checking for < 1 seems more appropriate indeed:
diff --git a/apache2/persist_dbm.c b/apache2/persist_dbm.c
index e4f8036f..a7f1af3b 100644
--- a/apache2/persist_dbm.c
+++ b/apache2/persist_dbm.c
@@ -67,6 +67,12 @@ static apr_table_t *collection_unpack(modsec_rec *msr, const unsigned char *blob
         var->value_len = (blob[blob_offset] << 8) + blob[blob_offset + 1];
         blob_offset += 2;

+        if (var->value_len == 0) {
+            msr_log(msr, 4, "collection_unpack: Unable to unpack \"%s\", value len 0.",
+                    log_escape_ex(msr->mp, var->name, var->name_len));
+            return NULL;
+        }
+
         if (blob_offset + var->value_len > blob_size) return NULL;
         var->value = apr_pstrmemdup(msr->mp, (const char *)blob + blob_offset, var->value_len - 1);
         blob_offset += var->value_len;

I'll push a PR


refresh div?

Hey (me again...),
is it possible to refresh the content? like every x secondes?
I tried to refresh the div with jquery but it multiplies the tags and the photos (3 times the same content) and it gets crazy after 10 refresh.
this is the code I used:
var auto_refresh = setInterval(
function ()
{
$('#instafeed').load('#instafeed');
}, 10000);
feed.run();
do you have any idea of how I should do?
Thanks!

Closing as stale - remaining issue is for the slider implementation anyway.


BUG: julia lectures fail with latest sphinxcontrib-jupyter=0.4.1

The julia lectures are failing on sphinxcontrib-jupyter=0.4.1
~/repos-collab/lecture-source-jl $ jupinx -ws
Running: make website
Running Sphinx v1.8.5
making output directory...
building [mo]: targets for 0 po files that are out of date
building [jupyter]: targets for 77 source files that are out of date
updating environment: 77 added, 0 changed, 0 removed
checking for /home/mmcky/repos-collab/lecture-source-jl/source/rst/_static/quant-econ.bib in bibtex cache... not found
parsing bibtex file /home/mmcky/repos-collab/lecture-source-jl/source/rst/_static/quant-econ.bib... parsed 150 entries

/lecture-source-jl/source/rst/more_julia/version_control.rst:7: WARNING: Duplicate explicit target name: "github desktop".
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [ 79%] time_series_models/classical_filtering
Exception occurred:
  File "/home/mmcky/repos-collab/sphinxcontrib-jupyter/sphinxcontrib/jupyter/writers/translate_all.py", line 828, in add_extension_to_inline_link
    if uri[0] == "#":
IndexError: string index out of range
The full traceback has been saved in /tmp/sphinx-err-5467uif_.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
Makefile:54: recipe for target 'website' failed
make: *** [website] Error 2
ERROR: Results directory: ./_build/website/jupyter_html/ does not exist.
 Please run jupinx -w to build website

https://github.com/QuantEcon/sphinxcontrib-jupyter/blob/3140b681ce95609bd3d752ebec28dc7f0eb39576/sphinxcontrib/jupyter/writers/translate_all.py#L828

@sglyon what is the purpose of this intercept to return uri?
We should check if uri exists before accessing the first element.

@mmcky without that line I kept getting links like .../pandas/groupby/.#exercise-0 when trying to link from exercise list back to the location in the file.
When I added the line the errant . was removed so now the link is (properly) .../pandas/groupby#exercise-0

I see - thanks @sglyon.

[ ] I will also double check internal links on the lecture site (with latest version) just to make sure the are still in tact and check the test cases.

I will leave this open until I do this.


How to read and convert the image to match the one on database to mark the attendance

Now I have this specific error at which the image from the cam can’t be converted to gray image so it brings this error
File "AMS_Run.py", line 347, in Fillattendances
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.2.0) C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error: (-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
Please help

It's not getting frame, that's the error.
On Mon, Jun 8, 2020 at 10:11 PM Hojeah2663<EMAIL_ADDRESS>wrote:

Now I have this specific error at which the image from the cam can’t be
converted to gray image so it brings this error
File "AMS_Run.py", line 347, in Fillattendances
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.2.0)
C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error:
(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
Please help
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Spidy20/Attendace_management_system/issues/4, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AKA3TJDPMPQSQ64KP4LAFGLRVUIEJANCNFSM4NYSQGTQ
.

Yes so how do we fix it ? Because the camera is open and the video is captured
On Tuesday, June 9, 2020, 02:36:55 PM GMT+8, Kushal Bhavsar<EMAIL_ADDRESS>wrote:

It's not getting frame, that's the error.
On Mon, Jun 8, 2020 at 10:11 PM Hojeah2663<EMAIL_ADDRESS>wrote:

Now I have this specific error at which the image from the cam can’t be
converted to gray image so it brings this error
File "AMS_Run.py", line 347, in Fillattendances
gray = cv2.cvtColor(im, cv2.COLOR_BGR2GRAY)
cv2.error: OpenCV(4.2.0)
C:\projects\opencv-python\opencv\modules\imgproc\src\color.cpp:182: error:
(-215:Assertion failed) !_src.empty() in function 'cv::cvtColor'
Please help
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Spidy20/Attendace_management_system/issues/4, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AKA3TJDPMPQSQ64KP4LAFGLRVUIEJANCNFSM4NYSQGTQ
.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

How do we fix it?

I can't say about it, because i haven't seen your code and error. Send me
some SC.
On Tue, Jun 9, 2020 at 12:27 PM Hojeah2663<EMAIL_ADDRESS>wrote:

How do we fix it?
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Spidy20/Attendace_management_system/issues/4#issuecomment-641074116,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKA3TJADHTXJ773NVABMLUTRVXMMPANCNFSM4NYSQGTQ
.


Credentials provision and usage in Toaster

[x] WebUI with form with generation for credentials

[ ] Credentials full read/write and read only
[x] Should show only once

[ ] Store credentials in ToasterDB with local Redis!

[x] Auth in Toaster should be with local Redis and ToasterDB if not found in redis

For now implemented only create one user with full access
Please go to https://toaster.altuhov.su/ , fill form with Account Name, Email and press Create User
You will receive a message with generated credentials and ready-to-use export command like
Please execute in shell to set toasterurl:
export<EMAIL_ADDRESS>


[Embed] Add youtube video supprt

https://www.macquarie.com.au/help/personal/home-loans/manage-repayments-and-interest-rate/your-home-loan-interest.html

@rhudea , let's finalise on how the authoring would look like for you.. and I can include the same in importing the rest of the pages as is. Please have a look and let me know.

@asthabh23 For authoring, I'm proposing:

requires

thumbnail
url
title in bold
player button label
video duration

Fixed via #84


Rspec not bundling assets w/ setup from docs

Hi there, loving this project BTW. I'm integrating with an existing app, and (mostly) everything is working as expected, but I'm having trouble precompiling in test.
My config/react_on_rails.rb file came from the scaffold, along with the test helper in spec/spec_helper.rb. However, running rspec now fails to generate the webpack bundle, and everything flops.
#<Sprockets::FileNotFound: couldn't find file 'webpack-bundle' with type 'application/javascript'

I managed to solve this by explicitly bundling before running tests:
rm -rf app/assets/webpack
cd client && npm run build:test
cd .. && rspec

But I guess I'm just a little confused as I thought this was the default behavior? What else might prevent the test helper from precompiling?

@djfdev Please see rspec configuration. Does that answer your questions?

Hi @justin808 thanks, I have seen that documentation, but I'm still not getting built assets in test even with the test helper:
Rspec.configure do |config|
  ReactOnRails::TestHelper.configure_rspec_to_compile_assets
  ...

I imagine there is another issue with my config that might be causing this to fail. Regardless, am I missing out on something by using my above method to explicitly bundle assets before running my test command (i.e. without the test helper)?

I'm running into the same issue. Ran the generator with the default config, app works in dev mode with foreman, but running tests with RSpec ends up with this:
     Failure/Error: //= require webpack-bundle

     ActionView::Template::Error:
       couldn't find file 'webpack-bundle' with type 'application/javascript'

I can see that while the test is running, there is no generated asset in app/assets/webpack.
I am having the same issue on CI, when I push my branch.

I'm also running into this problem.  Any updates?

Okay, I figured it out for my scenario.  My application.scss file had the following two lines:
@import "vendor-bundle";
@import "app-bundle";

However, I was not actually generating a vendor-bundle.scss file with webpack, just an app-bundle.scss file.  I removed the first line above, and that fixed it.


Incorporate all the comonents in a SPA

Description
Create a Single Page Application using React. This will be the foundation and structure for the following tasks:

#52
#53
#54
#55
#56

Tasks

Create a single branch for all frontend team members to work on
Clean up existing folder/file system
Implement a clean component folder system for new files
Edit index.js and index.html to fit project standards
Coordinate with the fronted team about Issue/PR planning
Oversee communication between components

Acceptance Criteria

[ ] Folder structure is organized
[ ] FIle naming conventions are uniform
[ ] All single components have access to styling and other components

Time Estimate

1-3 hours

Use the following wireframes from the other cohort: https://github.com/North-Seattle-College/ad440-winter2022-tuesday-repo/blob/development/frontend/documentation/CloudWireframes.pptx?raw=true

Time Spent

Date
Activity
Time Spent

02/03/22
Created team feature branch. Set up folder structure. Went over Issue/PR planning
1.5 hours


Add default version to NewEnvClient

Matches behaviour of CLI, and will stop apps breaking if they're running off engine-api master, but not docker/docker master.
See also #255.

LGTM

Updated the default version to 1.23, because I guess that's the current stable version. :)

LGTM 😇


Modify simulation files for OpenFoam

Hello, how can I modify files run.sh and openfoam_run , which preparing for OpenFoam simulation?

I'm guessing that you are talking about that file?

Yes, that's it, thanks!
And one more question.
I changed comands in @cumulus.taskflow.task for openfoam_run, for example,  just i had added a line for creating a .txt file.
But after starting a simulation, I expected to see:
chmod +x $PWD/run.sh
touch test.txt
xhost +local:of_v1612_plus
docker start of_v1612_plus
docker exec -t of_v1612_plus $PWD/run.sh $PWD

but i had seen output of openfoam_run:
chmod +x $PWD/run.sh
xhost +local:of_v1612_plus
docker start of_v1612_plus
docker exec -t of_v1612_plus $PWD/run.sh $PWD

I don't know, the commands for the file openfoam_run are in another place or I did't build the server correctly?

I'm guessing the issue might be in the build process especially since we are missing documentation and it is not as trivial as we hope it to be. (But we are working on improving it. ;-)
Can you provide some background on what you do build/deploy your code base?

I build hpccloud with modified files  for running OpenFoam simulations on university computing cluster.

Are you using the docker infrastructure? Or do you build and deploy each piece yourself?

I am using docker infrastructure from a rep hpccloud-services.
I changed lines: /docker/girder/Dockerfile and /docker/girder/Dockerfile
Changes from https://github.com/Kitware/HPCCloud.git to https://github.com/dealenx/HPCCloud.git

Did you clear your docker cache when you rebuilt the images? @patrickoleary should know better.

I did run command sudo docker-compose build --no-cache and i had watching for logs, i had seen that cloning comes from https://github.com/dealenx/HPCCloud.git , but after the openfoam simulation output of openfoam_run was not changed.
I did build yesterday, but I need to double-check today, there is a possibility that I can make a mistake when i using docker-compose.

I learned more about Docker, i compiled and restarted using command:
docker-compose up -d --build girder


Set lexical parent

Codecov Report

Merging #50 into master will increase coverage by 0.11%.
The diff coverage is 94.74%.

@@            Coverage Diff             @@
##           master      #50      +/-   ##
==========================================
+ Coverage   96.03%   96.14%   +0.11%
==========================================
  Files         148      149       +1
  Lines       10037    10482     +445
  Branches      765      776      +11
==========================================
+ Hits         9639    10078     +439
- Misses        381      385       +4
- Partials       17       19       +2


"Buy a BitLox" card

Similar to the Amazon and Glidera cards, should be on the home screen extolling the virtues of buying a BitLox.

Moved to https://github.com/BitLox/copay/issues/4


support for read only

support for read only.
Relation issue
https://github.com/swaggo/swag/issues/524

Codecov Report

Merging #529 into master will increase coverage by 0.11%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master    #529      +/-   ##
=========================================
+ Coverage   86.78%   86.9%   +0.11%
=========================================
  Files           7       7
  Lines        1536    1550      +14
=========================================
+ Hits         1333    1347      +14
  Misses        119     119
  Partials       84      84

Impacted Files
Coverage Δ

parser.go
82.38% <100%> (+0.28%)
: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 b09d3f5...9d65fe2. Read the comment docs.

Thanks for your contribution.