fix: show deactivated label only on the general tab

This fixes #384 by displaying the Deactivated badge only in the general tab, not in Schedule and Absences tabs.

@jdambron thank you for the patch.
Though lets bend it little bit to so we show the deactivated label on all tabs: as in this PR: #387.

@vpp no worries. I think I didn't understand your expected outcome with this bug. Thank you for the patch 👍


p4est bindings generated with Clang.jl

This is the Trixi.jl counterpart of https://github.com/trixi-framework/P4est.jl/pull/49 to find out what we need to do there to support everything we use in Trixi.jl.
TODO

[x] breaking release because of different example calling stuff

NEWS.md
Trixi.jl v0.5

[x] switch to naming pattern p4est_obj = unsafe_load(p4est)
[x] 2D serial
[x] 3D serial
[x] 2D parallel
[x] 3D parallel
[x] compare to status quo in terms of

runtime performance
latency (time to first simulation)
This PR seems to be fine, see https://github.com/trixi-framework/Trixi.jl/pull/1184#issuecomment-1354608683

[x] ~decide whether to create helper functions in P4est.jl for patterns used often in Trixi.jl~
Moved to https://github.com/trixi-framework/P4est.jl/issues/54
[x] every comment # TODO: Clang
[x] Wait for new release of P4est.jl
[x] Merge this PR
[ ] Check setup on an HPC cluster

Right now on this branch with https://github.com/trixi-framework/P4est.jl/pull/49/commits/db12e75e8832c10e2297e1c4bf605236e15c33e9 in https://github.com/trixi-framework/P4est.jl/pull/49, I get locally:
julia> include("test/test_p4est_2d.jl")
[...]
[ Info: Testset elixir_mhd_rotor.jl finished in 23.541468214000002 seconds.
Test Summary: | Pass  Total
P4estMesh2D   |  182    182

Right now on this branch with trixi-framework/P4est.jl@db12e75 in trixi-framework/P4est.jl#49, I get locally:

Great news!

Based on
julia> using SnoopCompileCore

julia> invalidations = @snoopr begin
           using Trixi
           trixi_include(default_example())
       end

julia> length(uinvalidated(invalidations))

julia> trees = invalidation_trees(invalidations);

julia> trees[end-1] # Something from CBinding.jl with ≈ 1000 invalidations

this should hopefully help to reduce latency.

With the current version f3b7d19 and main at https://github.com/trixi-framework/Trixi.jl/commit/c8f4cd07d0349d8b40891386e4286165371d226d, I get the following timings (in seconds) locally using Julia v1.8.3.
Serial
julia --project=. -e '@time @eval(using OrdinaryDiffEq);
  @time @eval(using Trixi);
  @time @eval trixi_include(joinpath(examples_dir(), "p4est_3d_dgsem", "elixir_euler_sedov.jl"),
                            tspan = (0.0, 1.0));
  @time @eval solve(ode, CarpenterKennedy2N54(williamson_condition=false),
                    dt=1.0, save_everystep=false, callback=callbacks);
  summary_callback()'

main
this PR
difference

using OrdinaryDiffEq
ca. 7
ca. 7

using Trixi
ca. 17
ca. 16
ca. -1

trixi_include(...)
ca. 63
ca. 60
ca. -3

solve(...)
ca. 2
ca. 2

Time for rhs!
ca. 1.5
ca. 1.5

Parallel
mpirun -np 2 julia --project=. -e '@time @eval(using OrdinaryDiffEq);
  @time @eval(using Trixi);
  @time @eval trixi_include(joinpath(examples_dir(), "p4est_3d_dgsem", "elixir_euler_sedov.jl"),
                            tspan = (0.0, 1.0));
  @time @eval solve(ode, CarpenterKennedy2N54(williamson_condition=false),
                    dt=1.0, save_everystep=false, callback=callbacks);
  summary_callback()'

main
this PR
difference

using OrdinaryDiffEq
ca. 7.3
ca. 7.3

using Trixi
ca. 17.5
ca. 16.5
ca. -1

trixi_include(...)
ca. 70.5
ca. 67
ca. -3.5

solve(...)
ca. 1
ca. 1

Time for rhs!
ca. 0.78
ca. 0.78

I will wait for CI to run and trigger the rest later. Thanks for your reviews, @sloede!

Check setup on an HPC cluster

Once merged, could you maybe create an issue and assign it to @JoshuaLampert, @lchristm and @sloede ? Maybe Joshua can check this on Roci, Lars and I will check it on Hawk and JURECA.

Sounds good, I will do that. Could you please give @JoshuaLampert access to Roci?

The last point in the TODO list can also be checked now after closing #1308.

Thanks! And done ✅


4.x版本如何上层封装组件？

[ ] I have searched the issues of this repository and believe that this is not a duplicate.

What problem does this feature solve?
f2 版本 4.0.48
What problem does this feature solve?
背景上层封装使用，可抽离公共。比如tooltip，封装使用。类似如下
What does the proposed API look like?
const MyTooltip = (props) =>{
return <Tooltip {...props}/>
}

https://f2.antv.antgroup.com/tutorial/advanced/custom-view
可以参考这个，注意 4.x 要把 style 换成 attrs


Investigate flow of files from previously-source-built packages to determine if/how files leak

Possibly related to <RestoreFallbackFolders>$(PackagesDir)</RestoreFallbackFolders> in core-setup
We should probably be poisoning previously-source-built files now that actual prebuilts are gone

Duplicate of #1454


Error in authenticate()

Hello, @nlsdfnbch
I'm currently working on dev branch, and found out authenticate() is not working properly.
The error I got is:
wss.authenticate()

File "/home/ubuntu/btfxwss/btfxwss/client.py", line 16, in wrapped
return func(self, *args, **kwargs)
File "/home/ubuntu/btfxwss/btfxwss/client.py", line 488, in authenticate
self.conn.send(key=self.key, secret=self.secret, auth=True)
File "/home/ubuntu/btfxwss/btfxwss/connection.py", line 273, in send
self.socket.send(payload)
File "/usr/local/lib/python3.5/dist-packages/websocket/_app.py", line 118, in send
if not self.sock or self.sock.send(data, opcode) == 0:
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 234, in send
return self.send_frame(frame)
File "/usr/local/lib/python3.5/dist-packages/websocket/_core.py", line 253, in send_frame
data = frame.format()
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 233, in format
return frame_header + self._get_masked(mask_key)
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 236, in _get_masked
s = ABNF.mask(mask_key, self.data)
File "/usr/local/lib/python3.5/dist-packages/websocket/_abnf.py", line 262, in mask
_d = array.array("B", data)
TypeError: an integer is required (got type str)
After debugging, I found that in connection.py:265, the payload must be jsonified.
payload = json.dumps({'event': 'auth', 'apiKey': key, 'authSig': auth_sig,
'authPayload': auth_string, 'authNonce': nonce})
What do you think about this?

I think you're right! fixed!
Thanks for reporting this!


Support for Interface and Union type

Is it plan to have a direct support of these? Otherwise, documentation about how to handle these scenarios with Prisma.

Hi @tristancaron! Thanks for raising this issue. I wish I had a straight answer for you, but I don't.
Interfaces should be fairly straightforward to support, since they don't need any database backing. This has come up before, but we haven't prioritized it yet.
Unions are very much on our mind. Unions are tricky. Prisma differs from GraphQL in that it's operating at a lower-level. We're talking directly with the database, so we're thinking about ways of introducing these concepts that are backed by the database whenever possible.
Concretely, we're looking into Table Inheritance to support Unions.
Do you have a specific use case in mind? Any code or examples would help us to get this right.

Sure, happy to help.
Here the structure for GraphQL
interface Network {
    id: String
    isChecked: Boolean
    isOsStoreLive: boolean
    hasSDK: boolean
    hasAnalyticsAccess: boolean
}

type Campaign {
    network: Network
}

type FbNetwork implements Network {
    id: String
    isChecked: Boolean
    isOsStoreLive: Boolean
    hasSDK: Boolean
    hasAnalyticsAccess: Boolean
    adAccountStatus: AdAccountsStatus
    isLive: Boolean
    hasPrivacyPolicyUrl: Boolean
    hasContactEmail: Boolean
    hasIconUrl: Boolean
    hasIosBundleId: Boolean
}

type IrsNetwork implements Network {
    id: String
    isChecked: Boolean
    isOsStoreLive: Boolean
    hasSDK: Boolean
    hasAnalyticsAccess: Boolean
    accessKey: String
}

input CampaignCreate {
    networkId: String
}

My current solution is to have 2 tables. One for each kind of network.
The schema is the fellowing
model Campaign {
    fbNetwork Network?
    irsNetwork Network?
}

model FbNetwork {
    id String @id @default(uuid())
    isChecked Boolean
    isOsStoreLive Boolean
    hasSDK Boolean
    hasAnalyticsAccess Boolean
    adAccountStatus AdAccountsStatus
    isLive Boolean
    hasPrivacyPolicyUrl Boolean
    hasContactEmail Boolean
    hasIconUrl Boolean
    hasIosBundleId Boolean
}

model IrsNetwork {
    id String @id @default(uuid())
    isChecked Boolean
    isOsStoreLive Boolean
    hasSDK Boolean
    hasAnalyticsAccess Boolean
    accessKey String
}

And when a client ask for a result I have a resolver doing this
network(source, args, context, info) {
    if (source.fbNetwork != null) return source.fbNetwork
    if (source.irsNetwork != null) return source.irsNetwork
    return null
},
__resolveType(source, context, info) {
    if (source.fbNetwork != null) return 'FbNetwork'
    if (source.irsNetwork != null) return 'IrsNetwork'
    return null
}

Are there any updates on this?

Not yet! We'll probably tackle this sometime in the next month or two.

Thanks! Is there any way we can contribute?

Note: Split up into two issues.

@matthewmueller Is there any possibility to prioritize this? It seems like any non-trivial data model needs those types and 135 thumbs-up on the original Prisma 1 issue are quite indicative.

I really think this should be a high priority especially with Prisma's focus on GraphQL.

@matthewmueller you mentioned to go with Table Inheritance, would there be an option to switch on a per-relation basis which Table Inheritance model specifically to go with or you are looking to default to one?

Hi @tristancaron! Thanks for raising this issue.
Interfaces should be fairly straightforward to support, since they don't need any database backing. This has come up before, but we haven't prioritized it yet.
Unions are very much on our mind. Unions are tricky. Prisma differs from GraphQL in that it's operating at a lower-level. We're talking directly with the database, so we're thinking about ways of introducing these concepts that are backed by the database whenever possible. Concretely, we're looking into Table Inheritance to support Unions.
Do you have a specific use case in mind? Any code or examples would help us to get this right.

As you are asking for specific use cases, I would like to present my own, featuring a heterogeneous collection:
model QuizItem {
  id   String       @id @default(cuid())
  quiz Quiz         @relation(onDelete: CASCADE)
  type QuizItemType
  stem String

  t_MultipleOptions MultipleOptionsQuizItemParams?
  t_Numeric         NumericQuizItemParams?
}

enum QuizItemType {
  MULTIPLE_OPTIONS
  NUMERIC
}

model MultipleOptionsQuizItemParams {
  id                   String   @id @default(cuid())
  quizItem             QuizItem @relation(references: id, onDelete: CASCADE)
  options              Option[]
  constraints_minCount Int?     @default(1)
  constraints_maxCount Int?     @default(1)
}

model Option {
  id         String   @id @default(cuid())
  quizItem   QuizItem @relation(onDelete: CASCADE)
  text       String
  isSolution Boolean  @default(false)
}

model NumericQuizItemParams {
  id                   String   @id @default(cuid())
  quizItem             QuizItem @relation(references: id, onDelete: CASCADE)
  solution             Float?
  precision            Float?   @default(0)
  stepSize             Float?   @default(1)
  constraints_minValue Float?
  constraints_maxValue Float?
}

MultipleOptionsQuizItemParams and NumericQuizItemParams would be subclasses of QuizItem in an object-oriented environment. The following model would serve as a container for QuizItem models, e.g. the aforementioned specializations:
model Quiz {
  id                 String     @id @default(cuid())
  author             User       @relation(onDelete: CASCADE)
  createdAt          DateTime   @default(now())
  updatedAt          DateTime   @updatedAt
  isPrivate          Boolean    @default(false)
  title              String
  timeLimitInMinutes Int?
  items              QuizItem[]
}

Internal Note: We think about this as table inheritance.

This is also an important things for me.
Please find my temporary solution:
Schema: model ClientData { // normaly need to be interface   id String @default(cuid()) @id } model IndividualData { // normaly implemented from ClientData interface   id           String  @default(cuid()) @id   name         String?   zip          String?   city         String?   street       String? } model CompanyData { // normaly implemented from ClientData interface   id           String  @default(cuid()) @id   company         String?   tax          String?   regNo         String? } model Client {   id        String     @default(cuid()) @id   dataId    String?  //normaly need to be ClientData interface (now is store the id from CompanyData and IndividualData) }
Type of client: `
const { objectType, interfaceType, stringArg } = require('nexus')
const { allModel } = require('../utils/allPhoton.js')
const { resolveInterfaceById } = require('../utils/resolveInterface.js')
const Client = objectType({
name: 'Client',
definition(t) {
allModel(t)
t.field('data', {
type: ClientData,
resolve: ({ dataId }, args, ctx, info) =>
resolveInterfaceById(dataId, ctx, info),
})
t.field('result', {
type: ClientResult,
args: { type: stringArg() },
resolve: ({ resultId }, args, ctx, info) =>
resolveInterfaceById(resultId, ctx, info),
})
},
})
const ClientData = interfaceType({
name: 'ClientData',
definition(t) {
t.resolveType(item => item.__typename)
t.model.id()
},
})
const ClientData1000 = objectType({
name: 'ClientData1000',
definition(t) {
t.implements(ClientData)
allModel(t)
},
})
const ClientResult = interfaceType({
name: 'ClientResult',
definition(t) {
t.resolveType(item => item.__typename)
t.model.id()
},
})
const ClientResult1000 = objectType({
name: 'ClientResult1000',
definition(t) {
t.implements(ClientResult)
allModel(t)
},
})
module.exports = {
Client,
ClientData,
ClientData1000,
ClientResult,
ClientResult1000,
}`
Utils for resolve Interface type from GraphQL query witzh regexp:`
function parsePathKeys(path, keys) {
if (path.key !== 0) {
keys.push(path.key)
}
if (path.prev) {
parsePathKeys(path.prev, keys)
}
return keys
}
function parseTypeFromQuery(query, path) {
let regexp = '(?:.{3}\son)[^A-Z](?\w)'
parsePathKeys(path, []).forEach(
key => (regexp = key + '.?{(?:.|\r|\n)?' + regexp),
)
const match = query.match(new RegExp(regexp))
if (!match || !match.groups.type) {
    throw new Error(`Interface type not found`)
}

return match.groups.type

}
function typeToQueryName(type) {
return type.charAt(0).toLowerCase() + type.slice(1) + 's'
}
async function resolveInterfaceById(id, { request, photon }, { path }) {
const type = parseTypeFromQuery(request.body.query, path)
const query = typeToQueryName(type)
const item = await photon[query].findOne({
where: { id },
})
return {
...item,
__typename: type,
}
}
module.exports = {
parsePathKeys,
parseTypeFromQuery,
typeToQueryName,
resolveInterfaceById,
}
 An example gql query:
query {
clients {
data {
... on ClientData1000 {
id
zip
city
name
}
}
}
}`

Another use case for inheritance:
type Person {
  id: ID @unique
  name: String
  createdAt: DateTime
  updatedAt: DateTime
}
type Employee extends Person {
  department: String
  role: String
}
type Customer extends Person {
  type: String
}

For another use-case, a structure we've struggled to find good solutions for is something to represent rich text with custom block elements that go beyond simple HTML/markdown.
Consider the following GraphQL schema:
enum MediaBlockAlignment {
    CENTERED
    LEFT
    RIGHT
}

enum MediaBlockWidth {
    FULL
    HALF
}

type MediaBlock {
    id: ID!
    url: String! # A URL of an image or a video or something
    alignment: MediaBlockAlignment!
    width: MediaBlockWidth!
}

type TextBlock  {
    id: ID!
    text: String # Some kind of structured text, Markdown, HTML, or other structure.
}

union Block = MediaBlock | TextBlock

type BlogPost {
    id: ID!

    headline: String
    abstract: String
    body: [Block!]!

    createdAt: DateTime!
    updatedAt: DateTime!
}

This structure is fairly natural in GraphQL (see above) but its surprisingly hard to find a ORM/Headless CMS that can represent this structure easily. Prisma looked extremely promising until we ran into this issue.

FWIW, this can be implemented at the application level in a resolver, with a custom resolveType. But you loose ability to query the db easily with paging etc on the abstract type.

I have two models in my schema Person and Organization and the issue I came across is that the shareholders field in the Organization model can be both a Person and/or an Organization.
datasource postgresql {
  provider  = "postgresql"
  url       = env("POSTGRESQL_URL")
}

generator client {
  provider = "prisma-client-js"
}

model User {
  id             Int       @id  @default(autoincrement())
  email          String    @unique
  password       String
  firstName      String
  lastName       String
  role           Role      @default(USER)
  person         Person
  createdBy      User
  createdAt      DateTime  @default(now())
  updatedAt      DateTime  @updatedAt
}

enum Role {
  USER
  ADMIN
}

model Person {
  id                    Int              @id  @default(autoincrement())
  firstName             String
  lastName              String
  createdBy             User
  user                  User?             @relation(references: [id])
  foundedOrganizations  Organization[]
  createdAt             DateTime          @default(now())
  updatedAt             DateTime          @updatedAt
  # .. other fields
}

// The shareholders in an Organization can be both an Organization and/or a Person.

model Organization {
  id              Int             @id      @default(autoincrement())
  name            String          @unique
  description     String?
  founders        Person[]
  shareholders    // STUCK HERE!!!
  createdBy       User
  createdAt       DateTime       @default(now())
  updatedAt       DateTime       @updatedAt
  # .. other fields
  @@index ([name])
}

My use case is similar to the interface/union part of datamodel 1.1

Similar use case for Union is EAV model, for example schema:

Thanks for your use cases everyone! I'm splitting up this issue.

We're tracking Interfaces in this issue.
We're tracking Union in this issue.


migrate msdn topics

migrate missed topics with mdoc issues from msdn to docs.
Needs placed in TOC

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

@mairaw Where do you want to put these topics in the toc?

It would be similar to the changes I've done here:
https://github.com/dotnet/docs/pull/15035/files#diff-0a52fb18728469ccaf66774fe38d8f98
They are in alphabetical order: first by namespace, class, then member

There are some empty code snippets, and some metadata that I believe they're not used in the current system.

Yes @Youssef1313, I'll clear those up before merging. Thank you!

@mairaw Can you please review the toc?

Thanks @ryanmajidi. I'll make some changes soon so we can merge this.


Draft: Create sequential Robin Hood hash table

Write and test

[X] Insert
[ ] Search
[ ] Remove

I just realised reinterpret_cast on values is invalid according to the standard. Using it as a bitcast is a GCC extension (?).


Add GM commands to do various useful things

List PCs in adventure (already exists as adventure get -- have it default to the current adventure)
Get a PC in adventure (with details)
Use pc vset, pc vmod, combat vset and combat vmod on any character, ignoring the user check

Done


Fix night mode styling of presence indicators in the "group PMs" area

The bottom things in the "group PMs" are should look the same as the empty circles above them.

@synicalsyntax CCing you as our resident night mode maintainer.

@zulipbot claim


Adding slide with control-nav="thumbnails" attribute on <flex-slider

Example:
Using thumbnail navigation in add-remove-slides.html causes addRandomSlide() to freeze:

I have the same problem.
Has anyone solved this?


CollapsibleMenuView no longer jumps when loading the page

Summary
Fixes: #867  Updated to have visibility: hidden while width calculations are being done.
Additional Details
If you have anything else that you think may be relevant to this issue, list it here. Additional information can help us better understand your changes and speed up the review process.
Please add your name to the CONTRIBUTORS.md file. Adding your name to the CONTRIBUTORS.md file signifies agreement to all rights and reservations provided by the License.
Thanks for contributing to Terra.
@cerner/terra

Thanks for sneaking in those typo fixes! 😄

Functional verification completed. The collapsible menu bar no longer jumps when loading/reloading the page.

+1 from UX


Compatibility with bbin

Please answer the following questions and leave the below in as part of your PR.

[ ] This PR corresponds to an issue with a clear problem statement.
[ ] I have updated the CHANGELOG.md file with a description of the addressed issue.

Overview
We only need this one small change to make neil available via a short bbin command. It seems harmless to add this namespaced key for now even if the data structure is subject to change:
bbin install io.github.babashka/neil

I know we've been using org.babashka/neil up to this point, but I think it's more convenient to use the io.github name for installation since it supports inference of the :git/* coordinates. That said, it's still possible to use the org.babashka lib name using a longer command:
bbin install org.babashka/neil --git/url https://github.com/babashka/neil

Testing
bbin install io.github.babashka/neil \
  --git/url https://github.com/rads/neil \
  --git/sha ad4c47117798ab09c1fc540d4eb4647194bc369c

Changes

Add :bbin/bin key to bb.edn

Without this key, the command bbin install io.github.babashka/neil does not work without an explicit --main-opts override on the user's side
The default :main-opts from bbin would be ["-m" "babashka.neil"], but we need to use the generated script for now to match existing packages and ensure neil --version is still working
If we stop using the generated script for neil and use the main function directly, the :bbin/bin key can be removed

Thanks!


Add support for  "where in" queries

WIP review...

I messed this up - didn't me to include commits from different branches.  Let me try to create a new PR...


Still show last compiled goal-state while Processing file...

When I'm writing a proof, I would love to be able to have a consistent point of reference of existing hypothesis in the scope. Currently on every justification step I have to stop, wait for the file to process, and then in 90% of cases look for a hypothesis that was already available to find its name and exact statement.
It would be so much faster to have an option (or have it be default) of seeing the previously compiled state with a small indicator of Processing file... at the bottom or to the side, which would allow to write proofs without needless interrupts.

I agree 100% with this FWIW, it's been on my docket to do.


Upgrade from 1.18.5 to 1.21.5 in Docker

Description
DSM Synology, Docker. Previous container 1.18.5 switched-off. New container 1.21.5 switch-on, start Migrate(), recreate all my data base, so I can't use 1.18.5 container any more. Look like no errors was in migration process. Trying login in - got back to start page.
Gitea Version
1.21.5
Can you reproduce the bug on the Gitea demo site?
Yes
Log Gist
No response
Screenshots
No response
Git Version
No response
Operating System
No response
How are you running Gitea?
in Docker container in DSM Synology
Database
None

by the way is it doing backup of old data-base somewhere ? is it possible roll back some how? like partly desigion of this problem

The same with 1.21.4
Login and pass is correct - mirror project is logined and fo POST GET correctly according logs.

by the way is it doing backup of old data-base somewhere ?

No auto-backup from Gitea side. If your DSM has some backups, you could try.

Trying login in - got back to start page.

The information is not enough for debugging a problem. Maybe you need to check your logs first. And figure out why "got back to start page": eg: cookie doesn't work? login failed? etc

We close issues that need feedback from the author if there were no new comments for a month. :tea:


[OSB] Remove Challenge mode capes from CL CoX

🚀 Feature Proposal
Because CM Capes aren't available in the bot right now, it makes sense to remove them. Having an impossible to get item on the collection log can be a bit misleading, even if unintentional.

The capes will be obtainable in the next update.


MaxEngine appears to create an input tensor per GPU during inference even when using PP or TP

If I look at MaxEngine.max_concurrent_decodes and init_decode_state(), it appears that an input tensor per GPU is created even if TP or PP is configured. I also see that inference_microbenchmark uses MaxEngine.max_concurrent_decodes as the global batch size.
Is this intended, and does this mean that TP and PP don't work for inference right now?

hi, the sharding is not handled when we declear the tensor. Sharding is handled by using the jax sharding module functions. For the input tensor you refered, the sharding is handled by these lines: https://github.com/AI-Hypercomputer/maxtext/blob/6f36556bf4017c95493d6cc44900793e5d860b54/MaxText/maxengine.py#L544-L558

Thanks - why is global batch size = per_device_batch_size*num_devices when TP is used?

global batch size is always referred as the total batch size across all devices. It is not related to sharding in the config. In maxtext, sharding is handled in the engine and the layer (like attention & mlp) implementation.

I see - so you would need to set a fractional per-device batch size if you want a global batch size that is not a multiple of GPUs


Whatsie started to crash on Fedora 35

Greetings,
Suddenly, Whatsie started to crash everytime I tried to open it. I tried remove and install again through snap, delete ~/snap/whatsie/ directory and use the commands below, but had no sucess
sudo rm /var/cache/fontconfig/*
rm ~/.cache/fontconfig/*
fc-cache -r

The error I get on terminal is:

Warning: Ignoring XDG_SESSION_TYPE=wayland on Gnome. Use QT_QPA_PLATFORM=wayland to run on Wayland anyway.
Gtk-Message: 15:01:20.199: Failed to load module "canberra-gtk-module"
Gtk-Message: 15:01:20.199: Failed to load module "pk-gtk-module"
Gtk-Message: 15:01:20.200: Failed to load module "canberra-gtk-module"
Gtk-Message: 15:01:20.200: Failed to load module "pk-gtk-module"
QApplication: invalid style override passed, ignoring it.
Available styles: Windows, Fusion
Fontconfig warning: FcPattern object weight does not accept value [0 205)
Segmentation fault (core dumped)

I'm using Fedora 35. Anything I can do to get this working again? Thanks.

Hi,
i have exactly the same problem on Fedora 35. This happened after i did a dnf upgrade. On my Notebook, where i did not perform the updated yet whatsie still works.
Interesting thing is, that when i start it as root (with the no-sandbox option) the program is still starting.

Run this to remove the whatsie folder from your home directory
rm -rf ~/snap/whatsie
and try to run whatsie now.
The idea is to let wahtsie desktop-launch script regenreate the new fontconfig data and other stuff. which could be causing the issue.

rm -rf ~/snap/whatsie
and
snap refresh whatsie --stable

Thanks. Its working again.

glad to hear :)


Not working?

I tried to download the miner through this program, nothing happens, everything worked before with the same settings

Is your antivirus removing/blocking it? Does the file get downloaded at all?

But before I loaded the same build, all the same settings, everything worked fine

Is the URL correct? Administrator rights won't stop it from being downloader.

yeah, url correct. The file is on bitbucket. url -

And if you open that URL in an incognito window it instantly downloads the file (you don't have to do anything except maybe select the place you want to save it)?

that was the problem. bitbucket required registration. Thanks for the solution)

which Obfuscator you can advise for unamdownloader?


Feature request: set interval for move / resize

Hello,
I'm making a request for option to set the interval for how fast the window move and resize operations operate. Now moving by holding the buttons down is a bit slow and you can do it faster by pressing the keys repeatedly. It would be in my opinion better if you could do fast moving whit holding buttons down and smaller, slower adjustments by repeatedly pressing the buttons.

Sounds to me like you need one of these two options:

Increase your keyboard repeat rate (see this for how to)
Change Gridy's settings to increase the grid size (right click the tray icon)

Thanks! I had thought the grid size worked by dividing the screen.


Various Pipeline fixes

[ ] Fixes #731
[x] Fixes #732
[x] Fixes #733
[ ] Fixes #734
[x] Fixes #736

Thanks! Looks good so far. One more thing:

[ ] Pipelines user guide updated to reflect these changes.


can not reproduce an example

hi,
i try to reproduce an example in IronPython, however the result is not the same as in original C# examples. Any hints or suggestion?
regards.
import clr
import System
clr.AddReference("GeometRi.dll")
import GeometRi
from GeometRi import *
from System.Math import *

print "Ptolemy's construction of a pentagon"
print "Draw a regular pentagon inside the circle"

O = Point3d(0, 0, 0)
circle = Circle3d(O, 1, Vector3d(0, 0, 1))
C = circle.ParametricForm(0)

l = Line3d(C, O)
CD = l.IntersectionWith(circle)
D = CD.P1

if (D == C):
	D = CD.P2

circle1 = Circle3d(C, CD.Length, circle.Normal)
circle2 = Circle3d(D, CD.Length, circle.Normal)
line = (circle1.IntersectionWith(circle2)).ToLine

AB = line.IntersectionWith(circle)
A = AB.P1
B = AB.P2
M = (O + B) / 2

radius = M.DistanceTo(C);
circle1 = Circle3d(M, radius, circle.Normal);

ON = circle1.IntersectionWith(AB);
N = ON.P1;
if (N == O):
	N = ON.P2

side_len = C.DistanceTo(N)
P1 = C

circle1 = Circle3d(C, side_len, circle.Normal)
tmp_segment = circle1.IntersectionWith(circle)
P2 = tmp_segment.P1
P5 = tmp_segment.P2

circle1 = Circle3d(P2, side_len, circle.Normal)
tmp_segment = circle1.IntersectionWith(circle)
P3 = tmp_segment.P1
if (P3 == P1):
	P3 = tmp_segment.P2

circle1 = Circle3d(P3, side_len, circle.Normal)
tmp_segment = circle1.IntersectionWith(circle)
P4 = tmp_segment.P1
if (P4 == P2):
	P4 = tmp_segment.P2

angle1 = Vector3d(P1, P2).AngleToDeg(Vector3d(P1, P5))
angle2 = Vector3d(P2, P1).AngleToDeg(Vector3d(P2, P3))
angle3 = Vector3d(P3, P2).AngleToDeg(Vector3d(P3, P4))
angle4 = Vector3d(P4, P3).AngleToDeg(Vector3d(P4, P5))
angle5 = Vector3d(P5, P4).AngleToDeg(Vector3d(P5, P1))

tolerance = 1e-8; print tolerance
chk1 = Abs(angle1 - 108.0); print chk1
chk2 = Abs(angle2 - 108.0); print chk2
chk3 = Abs(angle3 - 108.0); print chk3
chk4 = Abs(angle4 - 108.0); print chk4
chk5 = Abs(angle5 - 108.0); print chk5

print "Your construction is correct!"
print P1
print P2
print P3
print P4
print P5

and the result is,
>C:\Program Files\IronPython 2.7\ipyw -u "test41.py"
Ptolemy's construction of a pentagon
Draw a regular pentagon inside the circle
1e-08
18.0
18.0
18.0
63.0
63.0
Your construction is correct!
Point3d -> (         0,          1,          0)

Point3d -> (        -1, -2.2204e-16,          0)

Point3d -> (4.4409e-16,         -1,          0)

Point3d -> (         1, 6.6613e-16,          0)

Point3d -> (         1, -2.2204e-16,          0)

>Exit code: 0

Hi!
It looks like I made error in algorithm. The line
if (N == O):
should be replaced with
if (N==A or N==B):

thanks to clarify, now it's yield exactly the same results.


Comply with MISRA C:2021 Rule 21.13

Comply with MISRA C:2021 Rule 21.13 (Any value passed to a function in <ctype.h> shall be representable as an unsigned char or be the value EOF).
Functions in <ctype.h> have undefined behavior if they are called with
any other value. Callers affected by this change are not prepared to
handle EOF anyway. The addition of these casts avoids the issue
and does not result in any performance penalty.

@Abramo-Bagnara  please address the issues with the commit messages. See our contribution guidelines.

@Abramo-Bagnara please address the issues with the commit messages. See our contribution guidelines.

You are right: sorry. What should we indicate in the initial (subsystem) component? Note that we are working one rule at a time, so that commits are likely to touch multiple subsystems.

You can use coding guidelines:

Thanks. Will submit a new pull request.

Thanks. Will submit a new pull request.

you do not need to submit a new pull request, you can rework this one and fix the commit messages in the same pull request and push the branch again.


Rework of the Metrics API (Missing undecided config value)

As per the discussion on the Discord, I'm writing this down as an issue/feature request.
Per older and newer discussion it was initially agreed upon that Sponge provided an API for plugins to check if they may send metrics. And that they are supposed to ask for consent. The API was added in a very basic sense. The issue being the plugins only knowing if metrics are enabled or not. Meaning that even if an admin purposely disabled them, they would get asked every time, if a plugin ever decided to do that notification.
That's the core issue. Whie discussing it several suggestions came up to streamline the process and provide a nice and consitent UI to the user/admin.
I propose the following:

Let's have the following global stats options:

Undecided (admins get asked to decide) (undecided)
Enabled by default (true or enabled)
Disabled by default (false or disabled)
Please ask individually (ask)

Every individual plugin gets these options:

Undecided. If global is set to enabled or disabled, this defaults to that value. If the global setting is on ask, the admins get individually asked for each plugin checking if it's allowed to send. (undecided)
Enabled  (true or enabled)
Disabled (false or disabled)

This is to allow people to give general consent or dissent, for the ones that really don't want to be bothered by individual prompts and also to give those who want it, full controll out of the box.
This natually needs commands to allow changing all these settings directly, so they can be used in clickable links/texts.
Now this shouldn't be too hard to implement.
In addition I had a few other suggestions to improve usability:

Move all the metrics stuff into it's own config, so it can be easily found. I find that the metrics settings are super hidden inside the global.conf and spent quite a while looking for them. Additionally it would make it easier to migrate any existing settings, since they will definately need to change if they are supposed to be kept, as the old system defaults to false, which would mean that when the new system gets in place, everything is still disabled, which would be a considerable loss for plugin devs.
Actually implement the prompts in Sponge itself. This has quite a few advantages:

You make it a lot easier for plugin and stats devs to work with the restrictions. Like that basically the same stuff doesn't need to be implemented a billion times over
It would make sure the messages and prompts are standardized and consitent. Having every plugin have their own style and timing can get super annoying
If there ever will be a rivaling metrics system to bStats (or some dev makes their own custom) the user doesn't get two messages for the global setting
It might even be possible to prevent plugins executing the commands on behalf of users this way, as it would be all Sponge internal.

Now I would kindly ask that if that's the way it'll be solved, that the message is worded something like
Would you like to allow plugins to collect anonymized metrics? This helps the developers improve their plugins.
Yes - No - Please ask me individually

Essentially asking politely to enable it while pointing out it helps the devs make the plugin better.

Not sure if this is still the case but I noticed Sponge was adding values to the config for every plugin loaded.
We don't need to save undecided for plugins that dont even have metrics.

That's a good point.
And naturally these prompts should only appear when plugins check if they may send metrics and individual prompts only for thos which check for it.
Makes it also easier seeing which plugins do send metrics.

https://github.com/SpongePowered/SpongeAPI/pull/2018

The conditional requests sound good to me, however we should consider the timing when we will send them. If we send them "every time" a plugin checks its permission then we might annoy the admins. If we check it only during the first time no admin might be only at all. Maybe prompting this after joining the server might be an idea. Only if the first request is answered will the next one be shown. How should we handle cases where admins only "activate" their permissions with a special command?

I think the best way to time it would be to check a permission when a player joins and then display the prompts that are there to be shown. One after the other. Ideally changing a plugins setting would send an event the plugin or stats library can listen to.

For what it's worth, this was discussed a while ago and the guidlines we're going to strive for are https://drive.google.com/file/d/16kbuFVtuKasrKLTNb6gIOc-BOEyWBnFa/view (it does say we're striving for API 8, but if it hits 7.2 too, hey, so much the better).
Note that "conditional requests" are actually against the guidelines and should be handled by Sponge instead. It does call into question what the "undefined" state is for, but I'm not particularly against it being there either.

Move all the metrics stuff into it's own config

👍 would love to see a metrics.conf in API 8.

The associated PR was merged, but there seems to be more here than just what that PR proposed. I'm going to slap at 1.14 label on it now though, particularly with that last comment.

metrics.conf was added by https://github.com/SpongePowered/Sponge/commit/ad94e11623b4d9e33769151e58be39c55acf323f


Enable cd for nomad-plugin

I'd like to enabled automated releases for the Nomad plugin.
Following: https://www.jenkins.io/doc/developer/publishing/releasing-cd/
Thanks!

releases are disabled atm so this won't work for a bit:
https://www.jenkins.io/blog/2021/09/04/wiki-attacked/


Memory leak on process exit

Due to the way that we currently exit from a function, there's no way to free up the PML4 entry. That's going to be 4 KiB wasted for every function that can never be reclaimed.
We did have recently add support for wait/waitpid (although wait queue is going to be reworked soon), so perhaps moving the process cleanup to the reaper/parent's responsibility will fix this issue.

There is recently added code dealing with zombies/reaping and all that, I think that is worth taking a look at.


KPH protections do not support ACG (Arbitrary Code Guard)

As brought up in pull request https://github.com/winsiderss/systeminformer/pull/1832 the current protections which manipulate the CFG (Control Flow Guard) bitmask to ensure a valid call target for APC delivery are incompatible when ACG (Arbitrary Code Guard) is enabled. Enabling ACG prevents manipulation of CFG bitmask (unless certain conditions are present). We will need to consider an appropriate solution to work around this limitation with ACG enabled.
At this time, there are other issues with enabling ACG for SI. We do place some detours (hooks) on certain functions - this also conflicts with W^X from ACG and the hooks fail to set. So, ACG isn't a well supported mitigation in SI. But, we should still address the problem in the KPH mitigations. As mentioned in the PR, this prevents the client from connecting to the driver when it should be able to.

The incompatibility is originating from Process->MitigationFlagsValues.DisableDynamicCode && !CurrentThread->DisableDynamicCodeOptOut && CFG_CALL_TARGET_VALID. The "Disable" negating prefix here is unfortunate, but it's "technically" reasonable given the feature is intended for "disabling dynamic code".
Given that we will only really be dealing with exported call targets in for the ApcNoopRoutine we actually don't have to set CFG_CALL_TARGET_VALID as exports will already be CFG valid, but possibly Export Suppressed (ES). We can assume that it's a valid (or valid and suppressed) call target. Ultimately it was errant for me to include CFG_CALL_TARGET_VALID at all.
First, ZwSetInformationVirtualMemory checks Process->MitigationFlagsValues.DisableDynamicCode && !CurrentThread->DisableDynamicCodeOptOut and if so it passes 0x1 to the flags parameter of MiCfgMarkValidEntries. This indicates that the target process has ACG enabled and the current thread is not opting out of ACG. Interestingly, the way this is implemented in Windows, it allows you to manipulate CFG of a remote process if you yourself are ACG and have your thread opted out of ACG (even if the target remote process has ACG with thread opt-out disabled). I was goint to go this route with a fix, however (using available APIs) it requires the current process and thread have CurrentProcess->MitigationFlagsValues.DisableDynamicCodeAllowOptOut and CurrentThread->DisableDynamicCodeOptOut. This isn't realistic in all circumstances. That leaves us with DKOM to temporarily manipulate the EPROCESS and ETHREAD to permit us to do what we want. However, given CFG_CALL_TARGET_VALID is ultimately unnecessary, we don't have to go this route at all.
We should be fine simply removing CFG_CALL_TARGET_VALID. However, there is a drawback (and current bug) for CFG with ES enabled. If the call target is already a granted suppressed call target, the call will fail with STATUS_ACCESS_DENIED. This was already pointed out by @kkent030315 in the PR, although I think their understanding was a bit incomplete. At the end, we both arrived to a similar conclusion.
Here is the reverse engineered code of MiCfgMarkValidEntries, for reference:
NTSTATUS __fastcall MiCfgMarkValidEntries(
        _EPROCESS *Process,
        PVOID VirtualAddress,
        SIZE_T NumberOfBytes,
        PCFG_CALL_TARGET_INFO CfgCallTargetInfo,
        ULONG NumberOfEntries,
        PULONG ReturnLength,
        ULONG Flags,                                                            // bit 1 set when Process->MitigationFlagsValues.DisableDynamicCode && !CurrentThread->DisableDynamicCodeOptOut
        _SECTION *SectionObject,
        ULONGLONG FileOffset,
        BOOLEAN AssumeValidXfgInput)                                            // effectively "IsKernelCaller"
{
//...
            cfgFlags = cfgCallTargetInfo->Flags;
            if ( (cfgFlags & 0xFFFFFFFFFFFFFFE0ui64) != 0 )                     // check for valid flags
            {
                break;
            }
                                                                                // checking for valid CFG...
            if ( (Flags & 1) != 0 && (cfgFlags & 1) != 0 )                      // Process->MitigationFlagsValues.DisableDynamicCode &&
                                                                                // !CurrentThread->DisableDynamicCodeOptOut &&
                                                                                // CFG_CALL_TARGET_VALID
            {
                return STATUS_ACCESS_DENIED;                                    // <<< incompatbility here
            }
                                                                                // checking for valid CFG ES...
            if ( (cfgFlags & 4) != 0 )                                          // CFG_CALL_TARGET_CONVERT_EXPORT_SUPPRESSED_TO_VALID
            {
                if ( !MiIsProcessCfgExportSuppressionEnabled(Process) )         // Process->MitigationFlags2Values.ControlFlowGuardExportSuppressionEnabled
                {
                    return STATUS_ACCESS_DENIED;
                }

                currentProcess = KeGetCurrentThread()->ApcState.Process;
                if ( (CfgAddressToBitState(VirtualAddress + offset, *cfgBitMap) != 2  // is already granted suppressed call
                   || !MiIsProcessCfgExportSuppressionEnabled(currentProcess))        // currentProcess->MitigationFlags2Values.ControlFlowGuardExportSuppressionEnabled
                  && !MiValidateUserCallTarget(
                          VirtualAddress + cfgCallTargetInfo->Offset,
                          cfgBitMap) )
                {
                    return STATUS_ACCESS_DENIED;
                }
            }
                                                                                // checking for valid XFG...
            if ( (cfgFlags & 0x10) != 0                                         // CFG_CALL_TARGET_CONVERT_XFG_TO_CFG
              && (!AssumeValidXfgInput
               && (!*&Process->Vm.Instance.VmWorkingSetList[18].LastAccessClearingRemainder
                || (Process->MitigationFlags2 & 0x4000000) == 0)                // Process->MitigationFlags2Values.AuditXtendedControlFlowGuard
               || !MiIsProcessXfgEnabled(Process)                               // Process->MitigationFlags2Values.XtendedControlFlowGuard
               || !MiValidateXfgUserCallTarget(
                       VirtualAddress + cfgCallTargetInfo->Offset,
                       cfgBitMap)
               && !MiValidateUserCallTarget(
                       VirtualAddress + cfgCallTargetInfo->Offset,
                       cfgBitMap))
              || (cfgFlags & 8) != 0                                            // CFG_CALL_TARGET_VALID_XFG
              && (!AssumeValidXfgInput
               || !MiIsProcessXfgEnabled(Process)                               // Process->MitigationFlags2Values.XtendedControlFlowGuard
               || ((VirtualAddress + LOBYTE(cfgCallTargetInfo->Offset)) & 0xF) != 0
               || ((VirtualAddress + cfgCallTargetInfo->Offset) & 0xFFF) == 0) )
            {
                return STATUS_ACCESS_DENIED;
            }
// ...

The fist step to fix this is obviously not doing CFG_CALL_TARGET_VALID. That avoids the actual case of the incompatibility with ACG. However, we are then faced with the problem that if a suppressed call target is already granted access, we recieve STATUS_ACCESS_DENIED. @kkent030315 spotted this and handled STATUS_ACCESS_DENIED in the original PR, but I'm weary to just handle the STATUS_ACCESS_DENIED - if the return code changes in the future that assumption is likely to be broken. It would have been nice for Microsoft to specify a different error for the case where the suppressed call is already granted... The original PR also kept the CFG_CALL_TARGET_VALID, this would have still case a compatibility issue by not support CFG ES (the kernel would return STATUS_ACCESS_DENIED before granting the suppressed call access) - this would have likely resulted in an invalid call target and fast fail of the process.
As far as I'm aware, there is no a great way to query or identify that a if a call target is already a granted suppressed target. All that tracking is internal to the kernel and ntdll.
I also look at looked at the XFG path (in an effort to support XFG). Interestingly, the XFG path will effectively skip all the validation and trust the kernel caller. It should be possible to "disable XFG" (actually convert it from XFG to CFG - CFG_CALL_TARGET_CONVERT_XFG_TO_CFG) prior to granting the suppressed call target.
There is also an alternative to all this. We could choose a different ntdll routine that is imported by KernelBase. That would help ensure that the call target is valid, but it isn't technically a guarantee.
Given the facilities available to us and trying to remain conservative (not getting into DKOM, etc..). I don't think it's likely for us to get a "guarantee" here. So, I think my fix is going to perform "best effort" when setting the CFG options. And I will likely change the APC target routine to one that is imported by KernelBase. This does impose risk that if this path fails, and the call target ends up invalid, the process is going to fast fail.

I have a correction to make, STATUS_ACCESS_DENIED is actually only returned when the call target is invalid inside the block labeled "checking for valid CFG ES...". Here is the corrected block. I had local var mappings in IDA that were now displaying the pseudo-code code correctly.
                currentProcess = KeGetCurrentThread()->ApcState.Process;
                if ( CfgAddressToBitState(VirtualAddress + offset, *cfgBitMap) == 2    // is already granted suppressed call
                  && MiIsProcessCfgExportSuppressionEnabled(currentProcess) )          // currentProcess->MitigationFlags2Values.ControlFlowGuardExportSuppressionEnabled
                {
                    cfgBitMap_1 = cfgBitMap;
                }
                else
                {
                    cfgBitMap_1 = cfgBitMap;
                    if ( !MiValidateUserCallTarget(
                              VirtualAddress + cfgCallTargetInfo->Offset,
                              cfgBitMap) )
                    {
                        return STATUS_ACCESS_DENIED;
                    }
                }

I verified through testing some code. So, it looks like we can rely on the return of STATUS_ACCESS_DENIED, at least for the case of EFG ES. The path for a kernel caller for XFG seems to still ignore the checks. Regardless, it should be reasonable to respect an errant return status in this path and just remove the CFG_CALL_TARGET_VALID.

Okay, the following commit will resolve the ACG compatibility problem, fix CFG ES support, and implements support for future XFG (not yet fully tested): https://github.com/winsiderss/systeminformer/commit/a3c639140649dec395d150a1bb54205f7bb93970
I discovered that the LDR is actually a bit smarter than I first expected. It didn't really matter if the call target was just "imported" (as I previously stated above). So changing the APC target made no difference in certain cases. My speculation here is that mapping and loading of the DLL is smart enough to understand that, while that export is available and possibly imported by something else, the application won't end up needing it. I reversed a little bit of the handler for invalid call targets and there are parts I haven't yet fully gawked at - but it has some extra magic to only grant where it's necessary. Research for later.
Ultimately the fix was more or less just removing CFG_CALL_TARGET_VALID and only granting suppressed call target (CFG_CALL_TARGET_CONVERT_EXPORT_SUPPRESSED_TO_VALID) where appropriate.
Will be in next driver build, until that time the workaround is to not use ACG if you want the driver functionality👍

@jxy-s Hey, thank you for the heads up on this. I appreciate the fix and the detailed explanation. ❤
Essenaitlly, this issue suddenly comes up to me while I'm toggling on/off bunch of Windows features and took me a hours to debug myself. I've never touched the "Explot Protection" myself but there was a setting for SI. I suspect some Windows system automatically added it (not 100% sure though, I don't have any 3rd-party AVs & WD is permanently removed on my system either).
As you mentioned, easiest solution is to not use ACG for SI.
Anyways, I'll check out next release as possible as it released.

Resolved with latest build (3.0.7407) 👍
If you have theme support enabled you will encounter this error:

This is expected for now as ACG will prevent us from placing hooks into our self (required for some theme support). But by in large the program should function normally with ACG enabled.


Support changing host veth name

Depends on:
https://github.com/containers/common/pull/2245
https://github.com/containers/podman/pull/24535

I don't know why, but I can't get the issue linked properly.

And also this needs tests, please have a look at test/100-bridge-iptables.bats
This should have a test cases where it fails if the veth name exists on the host and one where it works fine and you check the correct interface was created.

    host.create_link(host_veth).map_err(|err| match err {
        NetavarkError::Netlink(ref e) if -e.raw_code() == libc::EEXIST => NetavarkError::wrap(
            format!(
                "create veth pair: interface {} already exists on container namespace",
                data.container_interface_name
            ),
            err,
        ),
        _ => NetavarkError::wrap("create veth pair", err),
    })?;

This will likely return a wrong/misleading error now. Given both interface are created in one call it would be impossible to know which name conflicted. Maybe we can check if veth_name not empty then chnage the message to hint at both possibilities

Does this change cause the integration test failures? because they seem unrelated at first glance.

not ok 108 nftables - check error message from netns thread
# (from function `assert' in file test/helpers.bash, line 348,
#  from function `assert_json' in file test/helpers.bash, line 382,
#  in test file test/250-bridge-nftables.bats, line 359)
#   `assert_json ".error" "create veth pair: interface eth0 already exists on container namespace: Netlink error: File exists (os error 17)" "interface exists on netns"' failed
#  nsenter -n -m -w -t 23168 ip link set lo up
#  nsenter -n -m -w -t 23170 ip link add eth0 type dummy
#  nsenter -n -m -w -t 23168 ./bin/netavark --rootless false --config /tmp/netavark_bats.zFocvy/config --file /var/tmp/netavark/test/testfiles/simplebridge.json setup /proc/23170/ns/net
# {"error":"create veth pair: interface eth0 already exists on container namespace or  exists on host namespace: Netlink error: File exists (os error 17)"}
# [ rc=1 (expected) ]
#  jq -r .error
# create veth pair: interface eth0 already exists on container namespace or  exists on host namespace: Netlink error: File exists (os error 17)
# #/vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
# #|     FAIL: interface exists on netns
# #| expected: 'create veth pair: interface eth0 already exists on container namespace: Netlink error: File exists (os error 17)'
# #|   actual: 'create veth pair: interface eth0 already exists on container namespace or  exists on host namespace: Netlink error: File exists (os error 17)'
# #\^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

Yes it is your new error message, it seems your condition in the code is inverted.

LGTM


JWT Token is not invalidated on logout from browser

Is there an existing issue for this?

[X] I have searched the existing issues

Current behavior
JWT Token is not invalidated on logout from browser
Minimum reproduction code
No response
Steps to reproduce
No response
Expected behavior
I have logout from browser, but still can get data from /me API
oidc-provider version
7.14.3
nest-oidc-provider version
1.1.1
NestJS version
7.6.0
Packages versions

Node.js version
18
In which operating systems have you tested?

[ ] macOS
[X] Windows
[X] Linux

Other
No response

Hello @raksrivastava! The JWT token is stateless and has an expiration date, meaning it remains valid until that date, even after you log out.
BTW, this library serves as an integration between oidc-provider and Nest. If you need further assistance, I recommend visiting the oidc-provider project and perhaps starting a discussion there.


Comonad/Extend implementation

In fantasy land Extend implements Functor, in static land Extend is by itself and Comonad implements both Functor and Extend.
Just would like to figure out who is more right :)

Seems like it changed in Fantasy Land in this commit https://github.com/fantasyland/fantasy-land/commit/11860a59203037b89917e7db7ade37022c2d465c
Not sure yet why, but I'll probably update it here to align with Fantasy Land.
In general Fantasy Land is the primary source of truth.

Fixed by #43


Memory leak with stream pipe

Hello,
first of all thanks for the great script - it makes getting data from kinesis via node.js so much easier as the aws sdk does. I am using a very basic script for testing without doing anything with the received records right now:
var kinesis 	= require('kinesis'),
Transform 	= require('stream').Transform,
accessKey	= "xxx",
secretKey	= "xxx";
require('https').globalAgent.maxSockets = Infinity;
var bufferify = new Transform({objectMode: true})
bufferify._transform = function(record, encoding, cb) {
cb();
}
var kinesisStream = kinesis.stream({cacheSize:100, region: 'eu-west-1', credentials: {accessKeyId: accessKey, secretAccessKey: secretKey}, name: 'xxx', oldest: false});
kinesisStream.pipe(bufferify);
After a few hours, the process runs out of memory and the script stucks. I am using an EC2 m3.medium with 3,75 GB Ram. Is there some problem in the concept between node.js streams and kinesis?
Would be really happy, if you could help with this!

Not sure off the top of my head. Which Node.js version?
The Transform stream doesn't actually pass through any data – I'm not sure if that makes a difference or not, but have you tried piping to a stream that actually consumes the data, like stdout, instead?

Actually, it may just be Node.js holding on to the socket listeners (and not garbage collecting them).
What happens if you use something that's not infinite for maxSockets:
require('https').globalAgent.maxSockets = 1024

Have just run this for four hours now on a stream with one shard, Node.js v0.10.36 on Mac OS X and haven't seen the process climb higher than 210MB. The heap size is 26.6MB, largely made up of addListener closures from Node.js' Socket.
If I use 1024 instead of Infinity for maxSockets, there's even less heap used (16.3MB)
So I'm unable to reproduce this unfortunately.

Thanks a lot for your response. I've tried with the 1024 for max https connections - it works much more stable right now.


[threads] Mirrored messages create duplicates in monitor channels

#rdircd.monitor and rdircd.monitor.rdircdtest both log all thread messages twice:
[00:57:37] <+zauberfisch> #rdircdtest.general :: a
[00:57:45] [core] #None :: [=39o5] --- Thread channel created: #general.=39o5.b
[00:57:47] <+zauberfisch> #rdircdtest.general :: =39o5 :: c
[00:57:47] <+zauberfisch> #rdircdtest.general.=39o5.b :: c
[00:57:48] <+zauberfisch> #rdircdtest.general :: =39o5 :: d
[00:57:48] <+zauberfisch> #rdircdtest.general.=39o5.b :: d

might it be worth supressing the mirrored message (so the message in #rdircdtest.general)?
I realize that this might be a dangerous feature, because a bug would mean messages would hidden and such a bug may be hard to detect. So maybe not worth the effort for the low benefit it yields.
Feel free to close this as a wont-fix

Should be fixed in 30b1d36 - thread-msgs-in-parent-chan-monitor = no will block these by default, but can be set to "yes" for Conceptual Purity [insert-irc-swastika-emoji-here] :)


Disable tests with race failure

Fixes #3206

@andraxylia: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
d68c406a8b8a606cc9ffc45fbcf0f946feeaa5d7
link
/test istio-pilot-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

pilot-e2e failures are unrelated, caused by grpc tests #3222

@andraxylia: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
0fb5cce122d82f737b154d856251e21eae67a8a0
link
/test istio-pilot-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@andraxylia: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
0fb5cce122d82f737b154d856251e21eae67a8a0
link
/test istio-pilot-e2e

prow/e2e-smoke.sh
0fb5cce122d82f737b154d856251e21eae67a8a0
link
/test e2e-smoke

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

e2e-smoke failures caused by #3221

/test istio-pilot-e2e

/test e2e-smoke

@andraxylia: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/e2e-smoke.sh
0fb5cce122d82f737b154d856251e21eae67a8a0
link
/test e2e-smoke

prow/istio-pilot-e2e.sh
0fb5cce122d82f737b154d856251e21eae67a8a0
link
/test istio-pilot-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@andraxylia: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
0fb5cce122d82f737b154d856251e21eae67a8a0
link
/test istio-pilot-e2e

prow/e2e-smoke.sh
0fb5cce122d82f737b154d856251e21eae67a8a0
link
/test e2e-smoke

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

done, added issue # and run fmt, please approve so I can get this in.
I see fmt needs to be run on all files, I will submit a PR just with fmt.

/lgtm

@andraxylia: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-pilot-e2e.sh
5e4afdacfd8876f3b3e74e306303a62b37908979
link
/test istio-pilot-e2e

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Alias morph

Issue
To make it an easier transition for players of old MUCK games, the morph should be added as an alias to the profile command.

Resolved in PR #66


Model architecture does not have HWQ size tensors for (a,b) probability

As mentioned in the paper, the loss function uses Z, Z^ which are of shape H*W*Q. However the model architecture computes the (a,b) probability distribution in a tensor of shape H/4 * W/4 * Q. How are we computing Z^ then? Is it not supposed to be predicted by the model and we use it for calculation of the loss?

We are also having problems because of this... If anyone could enlighten us it would be appreciated.


FEATURE: get configuration --name should lookup git tag

Recently we added a new functionality in manta where SAT files could have a git tag value in each CFS configuration layer.
This issues is to request a git tag lookup functionality when running manta get configuration -n <CFS configuration name> command, as a result, manta will lookup the git tag from the CFS configuration layer commit id and show it on screen with the rest of information

fixed in v1.25.0


Dynamic framework target and Carthage support

I saw this was attempted before but broke Cocoapods. To avoid that, I made no changes to the podspecs and they still work as expected.
Readme is updated with Carthage instructions too.

:+1:

Thank you !!!
As you know, it only available on iOS 8 or later.
So, Would you add "#ifdef (iOS8) ... #endif mark" code for iOS4~iOS7 ?

Indeed.
It doesn't need the ifdef. The classic cocoapods target still has a deployment target of iOS 4.3 and still compiles. It's only the dynamic framework targets that has an iOS 8 target.
(p.s. I did just notice however that my deployment target was 8.4 so changed it to 8.0)

Wonderful job!


Fix ScikitlearnRegressor fit method

Signed-off-by: abigailt<EMAIL_ADDRESS>Description
Remove calling of argmax on labels from fit method. Adjust test to use regression dataset (diabetes).
Fixes #1536
Type of change
Please check all relevant options.

[ ] Improvement (non-breaking)
[ X] Bug fix (non-breaking)
[ ] New feature (non-breaking)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Testing
Fixed unit test to use regression dataset.
Test Configuration:

OS: 11.6.2
Python version: 3.8
ART version or commit number
TensorFlow / Keras / PyTorch / MXNet version

Checklist

[ X] My code follows the style guidelines of this project
[ X] I have performed a self-review of my own code
[ ] I have commented my code
[ ] I have made corresponding changes to the documentation
[X ] My changes generate no new warnings
[ X] I have added tests that prove my fix is effective or that my feature works
[X ] New and existing unit tests pass locally with my changes

Codecov Report

Merging #1537 (b668591) into dev_1.10.0 (9546b41) will decrease coverage by 12.40%.
The diff coverage is n/a.

@@               Coverage Diff               @@
##           dev_1.10.0    #1537       +/-   ##
===============================================
- Coverage       89.86%   77.46%   -12.41%
===============================================
  Files             244      244
  Lines           19761    19788       +27
  Branches         3495     3504        +9
===============================================
- Hits            17758    15328     -2430
- Misses           1204     3720     +2516
+ Partials          799      740       -59

Impacted Files
Coverage Δ

art/estimators/regression/scikitlearn.py
74.19% <ø> (-18.36%)
:arrow_down:

art/attacks/evasion/pe_malware_attack.py
14.74% <0.00%> (-84.34%)
:arrow_down:

art/attacks/evasion/wasserstein.py
11.94% <0.00%> (-83.28%)
:arrow_down:

art/attacks/evasion/saliency_map.py
22.89% <0.00%> (-77.11%)
:arrow_down:

art/attacks/evasion/spatial_transformation.py
17.34% <0.00%> (-75.52%)
:arrow_down:

art/attacks/evasion/simba.py
9.86% <0.00%> (-73.55%)
:arrow_down:

art/attacks/evasion/pixel_threshold.py
18.04% <0.00%> (-73.18%)
:arrow_down:

...estimators/speech_recognition/tensorflow_lingvo.py
18.27% <0.00%> (-73.10%)
:arrow_down:

art/attacks/evasion/zoo.py
11.67% <0.00%> (-72.77%)
:arrow_down:

...t/estimators/classification/detector_classifier.py
25.53% <0.00%> (-71.28%)
:arrow_down:

... and 53 more


⚠ ClamAV has degraded performance

In 0e5c180, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 60 ms

Resolved: ClamAV performance has improved in a02b6d8.


Add helsing913's file

The next field helps you provide a description of the changes you made. Feel free to add a description of what you’ve accomplished so far. As a reminder, you have: created a branch, created a file and made a commit, and opened a pull request

get it


(docs) Best Practices Documentation

Hello Bork-sensei!
As a new user, while the docs you have so far are pretty good, something about best practices would be useful

Having another look at doing this now we're close to getting 0.13.x out the door.
What sorts of things would you be looking for in best practices documentation?

Fair 😂 In which case I will punt this issue to 0.14.x for now, and we can see if we have any thoughts...

Having another look at doing this now we're close to getting 0.13.x out the door.
What sorts of things would you be looking for in best practices documentation?

I'm looking to add a custom type (asdf), but not having any success.  Is really as simple as following the docs like it says?

Having another look at doing this now we're close to getting 0.13.x out the door.
What sorts of things would you be looking for in best practices documentation?

Maybe a real example of adding custom types? Would love to get (asdf) working with bork!


[GIE/Compiler] How compiler reacts to Gaia's failure

We have tested that an executor of Gaia/Pegasus can recover itself upon failure via K8s.
But it remains unclear how the compiler reacts to such failure.
It is critical that the compiler:

is aware of the errors of executors,
may reject (instead of continuously submit) the queries from the clients until the executors are all recovered.

We need a test (in ci) to verify the behavior.

Through testing, it has been proven that the compiler can correctly throw Gaia errors to the users, whether they occur before or after the submission of execution. In both cases, the errors can be promptly returned as gRPC errors. Once an error occurs, the Pegasus client can handle the error promptly, throw an exception, and terminate the waiting for other executor channels.
kill one of executors and submit a query:

submit a query and then kill one of executors:

Close by the above comments.


Error Check failed: error == cudaSuccess (35 vs. 0)  CUDA driver version is insufficient for CUDA runtime version

Hi,
I am trying to run the code to test the RCNN classifier on the VGG16 reference model, but I get the error:
F0408 15:16:28.126595 23712 common.cpp:141] Check failed: error == cudaSuccess (35 vs. 0)  CUDA driver version is insufficient for CUDA runtime version
*** Check failure stack trace: ***
Aborted (core dumped)
Could you help me with the issue? Is it a problem with the CUDA version? If so, which version is needed to make the code run?

It definitely seems to be a CUDA version issue. Make sure you follow Caffe's guidelines for installing and use the right drivers. I know it is a painful process, but unfortunately it's necessary.


RDK-30110: Build in release mode without errors

Description
Allow Dobby to build in Release mode without any errors. Set the log levels appropriately.
Note release builds do not include DobbyTool or DobbyBundleGenerator.
Also renames the Xi6 platform to Generic as Dobby Spec support is not required on Xi6 platforms so no extra settings are needed specific to Xi6.
Legacy Components default to OFF
Adds a new CMake option for use by Bitbake to append the SRC_REV to the version number of Dobby for easy checking of build version on the STB
Test Procedure
Build Dobby in release mode both with and without LTO enabled. Should build without errors and no regressions should be visible in Sky and generic RDK builds
Type of Change

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[x] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Other (doesn't fit into the above categories - e.g. documentation updates)

Requires Bitbake Recipe changes?

[ ] The base Bitbake recipe (meta-rdk-ext/recipes-containers/dobby/dobby.bb) must be modified to support the changes in this PR (beyond updating SRC_REV)

Blackduck scan failure details
Summary: 0 violations, 0 files pending approval, 1 file pending identification.

Protex Server Path: /home/blackduck/github/Dobby/61/rdkcentral/Dobby

Commit: a3c53ea11500a55b9e43225f19c132d0ecf8ccd7

Report detail: gist

Blackduck scan failure details
Summary: 0 violations, 0 files pending approval, 1 file pending identification.

Protex Server Path: /home/blackduck/github/Dobby/61/rdkcentral/Dobby

Commit: a3c53ea11500a55b9e43225f19c132d0ecf8ccd7

Report detail: gist

WARNING: A Blackduck scan failure has been waived
A prior failure has been upvoted

Upvote reason: Spurious match (not sure why this retriggered) - now cleared down.

Commit: a3c53ea11500a55b9e43225f19c132d0ecf8ccd7

@Koczek9 - Git commits went weird, but made a small change in e5b71b2 to allow enabling DobbyTool in release builds - please re-review when you get chance.

@Koczek9 - Git commits went weird, but made a small change in e5b71b2 to allow enabling DobbyTool in release builds - please re-review when you get chance.


US 1974660: Previous versions cleanup - part 25

Project to clean up the previous versions for "Driver Reference" articles. Next set of files being moved to wdk-ddi, for kernel technology.

@tedhudek - Please have a look at these and let me know if anything should be changed before we can merge. Thanks!
@lorihollasch  - FYI

Thanks @barrygolden !
Everything reviewed and approved.  #sign-off

Woot!!!
Thanks, Craig!
From: Craig Casey @.>
Sent: Thursday, October 6, 2022 2:22 PM
To: MicrosoftDocs/windows-driver-docs-ddi @.>
Cc: Barry Golden @.>; Mention @.>
Subject: Re: [MicrosoftDocs/windows-driver-docs-ddi] US 1974660: Previous versions cleanup - part 25 (PR #1364)
Thanks @barrygoldenhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fbarrygolden&data=05|01|Barry.Golden%40microsoft.com|00613677da484510398d08daa7e0cdc4|72f988bf86f141af91ab2d7cd011db47|1|0|638006881230810959|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=uaj4u2YrxEu9gpWcYIsjfUFMLRm4girX2eWGO1OGqwU%3D&reserved=0 !
Everything reviewed and approved. #sign-off

Reply to this email directly, view it on GitHubhttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FMicrosoftDocs%2Fwindows-driver-docs-ddi%2Fpull%2F1364%23issuecomment-1270712365&data=05|01|Barry.Golden%40microsoft.com|00613677da484510398d08daa7e0cdc4|72f988bf86f141af91ab2d7cd011db47|1|0|638006881230810959|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=KYg4RyrBueJc9d1zj7UuNpB3Z987e44TkK1CY%2FvATFs%3D&reserved=0, or unsubscribehttps://nam06.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAAJOIVMTZHN4BKB7X3NXDQ3WB47HPANCNFSM6AAAAAAQ6ABTXI&data=05|01|Barry.Golden%40microsoft.com|00613677da484510398d08daa7e0cdc4|72f988bf86f141af91ab2d7cd011db47|1|0|638006881230810959|Unknown|TWFpbGZsb3d8eyJWIjoiMC4wLjAwMDAiLCJQIjoiV2luMzIiLCJBTiI6Ik1haWwiLCJXVCI6Mn0%3D|3000|||&sdata=X6%2B7%2BQwO3pbaJ0TOdCli5YyRI3mu6qNSvEWdpied2Z0%3D&reserved=0.
You are receiving this because you were mentioned.Message ID<EMAIL_ADDRESS>


Add helper and partial for flash messages

Feel free to :shipit: after you address (or at least consider) my comments :-)

Merging! :sheep: :dash:


Error with angular-bootstrap modals

Injecting $uibModal into an angular controller gives the error:
Error: [$injector:unpr] Unknown provider: $animateCssProvider <- $animateCss <- $uibModalStack <- $uibModal
I believe this may be the result of a version conflict as seen here:
https://github.com/angular-ui/bootstrap/issues/5139
I apologize in advance if this is somehow a mistake on my end.

Updating angular to 1.5, as in the pull request linked below, fixes the issue.
Because the version upgrade is imminent, I will close the issue.
https://github.com/meanjs/mean/pull/1207


Performance issues

Reported case of slow loading of play questions.

Which device are you using?

It's odd: I have what I would consider to be our lowest supported device - iPhone 4 running iOS7 - and it all works smooth and quick.
What exactly happens? You swipe left from the play intro screen and ...

Oh I assumed I may have had the oldest phone. Yeah so when the intro screen comes up it takes maybe 20 seconds before I can swipe to advance - and even knowing it takes a long time I am still constantly swiping to see if it is ready yet.

ok I just counted and it is 10 seconds before I can proceed.

If I click the back-arrow and try to proceed again, it takes the same amount of time again though - shouldn't it be immediate once it loads once?

So what is your device and iOS?

8.4.1  - let me try updating now.

Oh - no I'm on iOS7 so that shouldn't be the issue.

OK. So long discussion this could be related to the swipe rather than the loading of the app.

Removing splash screen hopefully solves this issue. Closing.


ModalWrapper component - Console warning when using "handleClose" prop

Detailed description

Describe in detail the issue you're having.
When using the ModalWrapper component with the "handleClose" prop, I get a warning about that prop.

Is this issue related to a specific component?
ModalWrapper

What did you expect to happen? What happened instead? What would you like to see changed?
No warning shown.

What version of the WFP UI (Carbon Design System) are you using?
<EMAIL_ADDRESS>

CodeSandbox
https://codesandbox.io/s/priceless-nova-wiqeof?file=/src/App.js
In order to show the behavior, click on the Tooltip and look at the integrated console.
Note: Modal will be unstyled because CodeSandbox was taking a lot of time trying to include SCSS, so I removed it. Behavior doesn't change whether we include styling or not.

Can confirm issue was fixed in 1.20.11 release. Thanks!


Enable Authereum as provider in W3C

Am getting this error which is preventing me from using Authereum to login:

Blocked by this newer issue atm:
https://github.com/3box/identity-wallet-js/issues/22

Looked further into it, the authereum provider returns your account in a different way (ugh) than other providers from the getAccounts method - fixed this but a second issue where Web3Connect returns 'MetaMask' as the name of the wallet when using 'Authereum' as a provider is messing with our setting of the default wallet.  I created an issue in web3connect and hopefully pedro or someone else can make a quick fix for this.

@oznekenzo have you checked in with @crisgarner on this?

Here's the issue: https://github.com/web3connect/web3connect/issues/98
Pinged cris and pedro for a response


fix forge verify-contract argument parsing

Related: #6453

I dont think the two commands' flags are the same even if they have the same name

So what you purpose for? Considering:
forge verify-contract  --constructor-args a b c

vs:
forge verify-contract --constructor-args a --constructor-args b --constructor-args c

Related previous PR: https://github.com/foundry-rs/foundry/pull/622
Why does the behavior of --constructor-args differ between create and verify-contract when submitting a contract with multiple constructor arguments?

verify-contract accepts the already-encoded arguments in one hex string, while script accepts the human-readable form that you would use anywhere else, so I'd rather change the verify-contract behavior.

verify-contract accepts the already-encoded arguments in one hex string

Is it better to change the argument name to be more explicit? e.g. --encoded-contructor-args

@Leechael changing them would be a breaking change and we'd rather avoid this—but we can add an alias and recommend that instead. wdyt @DaniPopes / @mattsse ?

If we can reach a conclusion, I would like to follow the decision and making that change.

hey @Leechael—added the change I described and changed the PR name—thanks!


Improve pg count automation

We tested with a fully-loaded node and wanted to clear one of the
ceph warnings by making a small improvement to our pg count automation.

hmm why is this failing

The novnc service sometimes shows up as not running in our CI tests. not sure why. But given it got that far, and we don't test the functionality of this, I'm going to merge it.


Fix google auth provider

When token is refreshed with google oauth, it gets only scopes explicitly provided, and backstage silently needs more. Pass no scopes (lacking scopes will get handled by frontend if it happens) and support incremental auth.
This supersedes https://github.com/backstage/backstage/pull/20653
:heavy_check_mark: Checklist

[x] A changeset describing the change and affected packages. (more info)
[ ] Added or updated documentation
[ ] Tests for new functionality and regression tests for bug fixes
[ ] Screenshots attached (for UI changes)
[x] All your commits have a Signed-off-by line in the message. (more info)

Thank you! 👍
Could you elaborate a bit more on the issue? Where do we expect more scopes to be present than the ones we request?

If scope is a new one during refresh, and not returned in the token, this seems to be correctly handled in frontend by session manager and user will need to approve request for more permissions then already provided previously.

And permissions to get user profile are handled correctly, because defaultScopes for google include required scopes.
The scopes are ignored during refresh, and this was my first try to fix this.
On a side note, this kinda makes backend package depends on defaultScopes set in frontend package making it kind of hidden contract between them (backend api depending on frontend package defaultScope to include ability to pull user profile).

I actually think https://github.com/backstage/backstage/pull/20653 is the correct fix here, how come that didn't work out?
This one also works, but tests in Microsoft authorisation made me scratch my head a little, and I figured that more targeted fix (affecting just google) might be best course of action.

Regarding moving default scopes to the backend I've wanted to make that refactor for quite a while, would be happy if you wanted to have a look at that instead 😁

Happy to do so, but I won't be able to get it quickly done.
While digging around auth modules it's implemented in quite unusual way, compared to all the tutorials and articles I have found around passport. Most of them do not interact directly with strategies. And then types provide much needed help.
What do you think about merging either of proposed PRs (I would need some help with tests in https://github.com/backstage/backstage/pull/20653 and I could try to tackle improving typing and moving defaultScopes in future?


conf-files generates a conffiles file with a trailing empty line

First reported here: https://github.com/vectordotdev/vector/issues/18439 . Apparently the extra newline causes issues with Uyuni/SUSE Manager.
To make sure it wasn't something we are doing, I reproduced the behavior with a stand-alone project:

cargo init
Edited Cargo.toml to include:

[package]
name = "example"
version = "0.1.0"
edition = "2021"
authors = ["Jesse Szwedko"]

[package.metadata.deb]
name = "example"
conf-files = ["/usr/local/Cargo.toml"]
assets = [
  ["Cargo.toml", "/usr/local/Cargo.toml", "644"]
]

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]

Ran cargo-deb
cd target/debian
ar x example_0.1.0_amd64.deb
tar xvf control.tar.xz
cat conffiles gives

/usr/local/Cargo.toml

Let me know if you need any more details! Thanks for this project! We rely on it heavily to build Vector Debian packages.

Thanks @kornelski !


Ability to require specified CSV columns

It would be nice to be able to validate that all expected columns are present in the CSV.
ignorePropertyNotFound fulfills my desire to allow the CSV to contain additional unspecified columns. However, there is no MapperBuilderErrorHandler method called if a defined column is actually missing from the CSV.
I've tried adding all required headers using CsvMapperFactory.addKeys.

keys are there for join, the mapper does not require anything to be present at the minute.
it should be might be possible to had a flag on the property to say it's mandatory and fail to build the mapper if that the case. that would look like that.
but the problem is that column name don't have to match exactly the prop name
anyway i'll looked into it.
prob something like
CsvMapperFactory.newInstance().addColumnProperty("foo", MandatoryProperty.INSTANCE);

Thanks for your reply. It's worth noting that I have solved this by adding @NotNull annotations to each of my fields, then running Hibernate Validator.


[BUG] [kyuubi-flink-sql-engine] FlinkSQL returns duplicate results when executing query statement

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Search before asking

[X] I have searched in the issues and found no similar issues.

Describe the bug
The runQueryOperation method repeats the snapshotResult every 50ms and adds it to the rows. At this point, the Query will not have to return the result until the accumulation of rows rows over kyuubi.session.engine.flink.max.rows set value or FlinkSQL end.
It is not reasonable to add snapshotResult repeatedly to rows in runQueryOperation. Should the result be returned directly after snapshotResult is fetched?
These are the two changes I suggested. Are they appropriate?

When snapshotResult gets the result, jumps out of the loop.

if (rows.size != 0) {
    loop = false
}

Loop sets the maximum timeout to avoid being unable to exit the loop if the result is null.

Environment

Flink 1.14.0
Kyuubi 1.7.0-SNAPSHOT(Compile from master)

Reference UT
  test("data is repeatedly added to the resultSet") {
    withSessionConf()(Map(ENGINE_FLINK_MAX_ROWS.key -> "20"))(Map.empty) {
      withJdbcStatement() { statement =>
        statement.execute(
          """
            |create table tbl_src (
            |           a bigint
            |           ) with (
            |           'connector' = 'datagen',
            |          'rows-per-second'='1',
            |          'fields.a.kind'='sequence',
            |          'fields.a.start'='1',
            |          'fields.a.end'='5'
            |          )
            |""".stripMargin)
        val resultSet = statement.executeQuery(s"select a from tbl_src")
        var rows = List[Long]()
        while (resultSet.next()) {
          rows :+= resultSet.getLong("a")
        }
        // rows size more than the input data
        assert(rows.size <= 5)
      }
    }
  }

Affects Version(s)
master
Kyuubi Server Log Output
No response
Kyuubi Engine Log Output
No response
Kyuubi Server Configurations
kyuubi.engine.type FLINK_SQL

Kyuubi Engine Configurations
No response
Additional context
Test Case
Case1
kyuubi-defaults.conf uses the default configuration and generates an unbound source through datagen. At this point, Kyuubi does not have a result output for a long time, and the FlinkSQL job does not finish.
 At this point, duplicate results are returned after the FlinkSQL job status isFINISHED.
 At this point, 100 duplicate results will be returned and the FlinkSQL job state will be 'CANCELED'.

[ ] Yes. I would be willing to submit a PR with guidance from the Kyuubi community to fix.
[ ] No. I cannot submit a PR at this time.

cc @link3280 @deadwind4 @SteNicholas

@bobo495 Thanks for reporting the problem. I agree that the current implementation of the result retrieval of the Flink engine is improbable. The final solution would refactor it to return results in a streaming manner, which is mentioned before but the related work doesn't start yet.
WRT you suggestions

When snapshotResult gets the result, jumps out of the loop.

I think the current behavior is expected. snapshotResult returns paged returns, and we fetch them page by page.

Loop sets the maximum timeout to avoid being unable to exit the loop if the result is null.

It's a viable approach in addition to max result rows for now.

cc @bowenliang123

Loop sets the maximum timeout to avoid being unable to exit the loop if the result is null.
It's a viable approach in addition to max result rows as for now.

@bobo495 @link3280 I also agree with adding query timeout to prevent stream jobs running forever when the max result rows cannot be met or never will be.
And I will submit the corresponding PR as soon as possible.

Query timeout is one of the possible paths. And also using max loop tries is worth considering. With limited messages in an unbound upstream source (like Kafka), the plain query timeout will force end-user to wait for enough time cost. And max loop retries may help to reduce the waiting time in this case.

@yuruguo Thanks a lot for your help! In another way, we could turn to the incremental fetching approach, which solves the problem once for all. I've started some related work and could get this done in the next release.

For the stream job,i personally think flink sql engine is unfriendly.I got the same query for datagen query in kyuubi, the query only 20 result expected, but return 4K+ result.
By the way, when I submit stream job by insert operation, the beeline client(use jdbc is the same) will block,I think is not good for the sql gateway.

@weaksloth Thanks for your feedback. I agree Flink engine is not production ready yet and we have a plan to improve this situation (see https://github.com/apache/kyuubi/issues/2100). If things go well, we would get many issues fixed in the next release.

By the way, when I submit stream job by insert operation, the beeline client(use jdbc is the same) will block,I think is not good for the sql gateway.

Did you set execution.attached to true in your flink conf?

Thank you!  I'm looking forward the next release
I have tried to set execution.attached: true in my flink-conf.yaml, the beeline client still blocked.
my env info:
kyuubi: 1.6.1
flink: 1.15.3

@link3280 Thank you!  I'm looking forward the next release.
I have tried to set execution.attached: true in my flink-conf.yaml, the beeline client still blocked.
my env info:
kyuubi: 1.6.1
flink: 1.15.3

@weaksloth you're right. I've confirmed that the connection would be blocked by Flink insert operations. The problem lies in https://issues.apache.org/jira/browse/FLINK-24461, which refactors the fetching of Flink table results and breaks the rule that the insert results would return immediately.
Kyuubi 1.6.x and above would be affected. I would create an issue to track this.

@weaksloth you're right. I've confirmed that the connection would be blocked by Flink insert operations. The problem lies in https://issues.apache.org/jira/browse/FLINK-24461, which refactors the fetching of Flink table results and breaks the rule that the insert results would return immediately.
Kyuubi 1.6.x and above would be affected. I created an issue to track this #4446.
Thank you, I've got it. I will also pay attention to this issue😀

I think the flink engine completely uses the asynchronous mode, and it is wrong for the insert statement to return the jobid. In the offline scenario, it is still hoped that the block will end. I think it is possible to set both asynchronous and synchronous modes.

I think the flink engine completely uses the asynchronous mode, and it is wrong for the insert statement to return the jobid. In the offline scenario, it is still hoped that the block will end. I think it is possible to set both asynchronous and synchronous modes.

@waywtdcc Thanks for your input. Do you think insert statements should always return the number of affected rows? By default, Flink returns -1 as the number of affected rows for inserts, is that what you expected?

I think it is possible to set both asynchronous and synchronous modes.

Agreed. Flink supports both modes natively, we could make use of that if necessary. WDYT? @pan3793

Hello,How is this PR going?

Hello, does the flink sql engine data duplication problem still exist?


[fix][website]fix: assets path

Documentation
Check the box below or label this PR directly.
Need to update docs?

[ ] doc-required
(Your PR needs to update docs and you will update later)

[x] no-need-doc
(Please explain why)

[ ] doc
(Your PR contains doc changes)

[ ] doc-added
(Docs have been already added)

@asafm Please note that assets are preceded by a slash /


🐛 Bug Report: Auth backend has dependencies to modules

📜 Description
Auth backend has dependencies to a lot of auth modules. These probably should not be here but instead only the modules needed should be added by the app.
👍 Expected behavior
No extra dependencies in the auth module
👎 Actual Behavior with Screenshots
https://github.com/backstage/backstage/blob/master/plugins/auth-backend/package.json#L46C1-L56C73
👟 Reproduction steps
See: https://github.com/backstage/backstage/blob/master/plugins/auth-backend/package.json#L46C1-L56C73
📃 Provide the context for the Bug.
No response
🖥 Your Environment
No response
👀 Have you spent some time to check if this bug has been raised before?

[X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

[X] I have read the Code of Conduct

Are you willing to submit PR?
None

The previous iterations got extracted and reexported by the auth-backend. To break these dependencies, a breaking change is required (as this is still a 0.x package, a minor version bump).
Also, not all auth providers got extracted and provided as modules, yet.

Yeah this is unfortunately there because of the providers export in its API, which is what people who have not yet migrated to the new systems use.
When we make the breaking change to no longer support the old system, we'll definitely kill these dependencies.

Not stale


feat: merge wasmd v0.27.0

Description

closes: #555
Motivation and context

How has this been tested?

Screenshots (if appropriate):
Checklist:

[ ] I followed the contributing guidelines and code of conduct.
[ ] I have added a relevant changelog to CHANGELOG.md
[ ] I have added tests to cover my changes.
[ ] I have updated the documentation accordingly.
[ ] I have updated API documentation client/docs/swagger-ui/swagger.yaml

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you all sign our Contributor License Agreement before we can accept your contribution.1 out of 6 committers have signed the CLA.:white_check_mark: shiki-tak:x: alpe:x: jhernandezb:x: ethanfrey:x: webmaster128:x: pinosuYou have signed the CLA already but the status is still pending? Let us recheck it.

@shiki-tak san, please merge as Merge pull request type in order to we recognize the code history.

@zemyblue @tnasu @loloicci PTAL


Include inline-whispers when sticking recent mentions to top

With the sticky mentions option enabled, in-line whispers should also stick to the top of chat like mentions

This should be as simple as adding to the sticky mentions CSS selector to include .msg-whisper with the existing .msg-highlight target

Added in https://github.com/vyneer/dgg-chat-gui-scripts/commit/ea2b33793947ecc74f9ff163e50f475fc2a4fe12 Pog ❤


Remove the WC from MPAs (multi-page-applications)

Why
We must replace the WC in all our blog posts and wizard examples for MPAs.
This depends on #80
TODOS (descending prioritization)

Node.js (replace with web-js)

[x] https://www.corbado.com/blog/nodejs-passkeys
[ ]  https://www.corbado.com/blog/keycloak-passkeys (skip for now)

PHP (replace with web-js) & use PHP SDK

[ ] https://www.corbado.com/blog/passkeys-php-symfony (drop the Corbado Connect part, so that it's only for new users)
[ ] https://www.corbado.com/blog/passkeys-php-laravel

Python (replace with web-js) & use Python SDK from Aleksander

[ ] https://www.corbado.com/blog/passkeys-python-flask
[ ] https://www.corbado.com/blog/django-passkeys
[ ] https://www.corbado.com/blog/passkeys-fastapi

Java (replace with web-js) & use Java SDK from Aleksander

[ ] https://www.corbado.com/blog/passkeys-java-spring-boot

C# (replace with web-js) & use .NET SDK from Aleksander

[ ] https://www.corbado.com/blog/passkeys-asp-net-core

Acceptance criteria

[ ] Blog articles have been updated
[ ] GH examples are updated (on main)

@incorbador done.
If you need access to the GitHub repos let me know. Moreover, to update not only the code but also the blog posts themselves, we should align who can support here (e.g. @lukaskratzel).

@lukaskratzel @incorbador I updated the prioritization of the different frameworks / languages, fyi

@lukaskratzel some feedback for the Node.js blog post

[ ] I think we can remove the docker setup (it's an unnecessary overhead)
[ ] Not sure if the chart on top really has benefit
[ ] Remove the database or do we need it?
[ ] "Corbado Node.js SDK" as consistent naming for the SDK
[ ] 2.2 Is it "Express Backend" or "Node.js (Express) Backend"? If the latter, please name it accordingly (mainly for SEO purposes)

@vincentdelitz Done

@vincentdelitz What's the status here?

@lukaskratzel Java and C# are currently missing. Aleks will take over Java and maybe also C#


Updated ContainerHelpers to use new extensions

There is also a pull request made to RobustToolBox to include the new extension.

Fixes #2510

Hi Project Manager(s),
Regarding the failed build test, I looked into the repo and saw that the submodule RobustToolbox points to the RobustToolbox at branch fd93fcb, which does not have the changes by the commit:
https://github.com/space-wizards/RobustToolbox/pull/1389
Instead, only the master branch has been updated, so this commit fails as it uses the new extensions. Is there a way to update the branch fd93fcb? Thanks.

Hi Project Manager(s),
Regarding the failed build test, I looked into the repo and saw that the submodule RobustToolbox points to the RobustToolbox at branch fd93fcb, which does not have the changes by the commit:
https://github.com/space-wizards/RobustToolbox/pull/1389
Instead, only the master branch has been updated, so this commit fails as it uses the new extensions. Is there a way to update the branch fd93fcb? Thanks.

Merge from the latest master and it should be okay.

I don't think I have access to branch fd93fcb as it doesn't show up on the list of drop down branches, neither in the actual project nor my fork. I could only look into that branch if I click on RobustToolbox module from the space-station repo itself (with the @ sign next to RobustToolbox folder showing the branch). So I'm not too sure how to merge master into that branch.

It doesn't need the branch if you just merge from master. I hadn't pushed a submodule update for smug's thing at the time (but we have since done one).