Collect vulnerabilities from arch linux

The data is available at https://security.archlinux.org/

@pombredanne I want to work on this issue. Can I take this up?.

@lohani2280 sure thing! that's very gentle of you: thank you for considering this.
Though you have to keep in mind that https://github.com/nexB/vulnerablecode/issues/32 may need to be done first and is higher priority.

The dataset input is https://security.archlinux.org/json
Current format of the data is-
{
    "name": "AVG-396",
    "packages": [
      "bluez"
    ],
    "status": "Fixed",
    "severity": "High",
    "type": "information disclosure",
    "affected": "5.46-1",
    "fixed": "5.46-2",
    "ticket": "55603",
    "issues": [
      "CVE-2017-1000250"
    ],
    "advisories": [
      "ASA-201709-3"
    ]
  }

I am trying to make a scraper to collect the full scope of data needed in vulnerablecode.
Among the important pieces that I plan to extract from that dataset are:

package name
vulnerability id
status
severity
affected version
fixed version

@pombredanne Please give your reviews on this. Shall I proceed this way?.

that sounds about right, but how would you map this to the actual models? and did you see my comment above wrt. package URLs aka purl?

@pombredanne Well to map this to the actual model I'll implement a method archlinux_dump in the vulnerabilities/data_dump.py file.
Yeah I have seen your comment about purl. Actually I was going through the codebase to understand the architecture of the entire project so just thought to try this issue first to get more familiarity with the existing codebase.

the advisories at https://security.archlinux.org/advisory/json  would also need to be handled

TODOs :-
Collect all the  vulnerability references that are listed on the link https://security.archlinux.org/vulnerability_id

#33 has been merged bu there are  few extra thing to consider to complete this:

we need more tests
I do not like the name "scraping" or "scraper". We are inventorying, collecting, referencing, harvesting but certainly not scraping.

See this chat:
pombreda_>30 Is there some structured API for https://security.archlinux.org/ (beside the Atom feed for https://security.archlinux.org/advisory/feed.atom )
18<phrik18> Title: Vulnerable issues - Arch Linux (at security.archlinux.org)
20<pombreda_>30 this is for an open and free aggregated vulnerabilities DB  that we are building at https://github.com/nexb/vulnerablecode
18<phrik18> Title: GitHub - nexB/vulnerablecode: [WIP] A free and open vulnerabilities database and the packages they impact. And the tools to aggregate and correlate these vulnerabilities. (at github.com)
18<Foxboron18> https://security.archlinux.org/CVE-2019-14318/json
18<Foxboron18> https://security.archlinux.org/json
18<Foxboron18> basically
20<pombreda_>30 ah... just pad json :)
18<Foxboron18> Yep :)
 felixonmars FFY00 Foxboron foxcpp foxxx0 funnel
20<pombreda_>30 Foxboron: excellent!
18<Foxboron18> Our tracker is not complete fyi
20<pombreda_>30 would you know where the code for this app lives?
18<Foxboron18> as in it's not an exhasive list of issues and CVEs
18<Foxboron18> https://github.com/archlinux/arch-security-tracker
18<phrik18> Title: GitHub - archlinux/arch-security-tracker: Arch Linux Security Tracker (at github.com)

Eventually most URL are available as JSON too https://security.archlinux.org/CVE-2019-17596/json

After looking at our archlinux code and their various JSON feeds again, I do think we need to make changes to the code. At the moment we consume a feed of AVGs and create one Vulnerability for each entry. But one AVG can reference multiple CVEs, so those should be the vulnerabilities. And ASAs should be VulnerabilityReference. I don't think we need to store AVGs themselves at all, just the information about what packages and versions are affected.

@haikoschol re

one AVG can reference multiple CVEs, so those should be the vulnerabilities. And ASAs should be VulnerabilityReference. I don't think we need to store AVGs themselves at all, just the information about what packages and versions are affected.

this is making 100% sense to me.
@lohani2280 FYI this project is restarting... it could be of interest to you


[UPDATE] change AsyncValue to sealed class

I tried to use AsyncValue for the switch expression updated in Dart 3.0, and I found that I couldn't use it unless I included AsyncData, AsyncLoading, AsyncError as well as AsyncValue as follows.
final test = AsyncValue.data("Some Data");
switch(test) {
AsyncLoading() => // loading screen
AsyncError() => // error screen
AsyncData() => // screen when there is data
_ => null // should include AsyncValue too
}

So i make a little change that remove the @sealed annotation and change the AsyncValue class from absract into sealed

@rrousselGit I checked the build error and recognized that the riverpod package is not using dart 3.0 yet. So sealed keyword is no available. Are you not using Dart 3.0 yet due to compatibility issues?

Dart 3 work, including making AsyncValue sealed, is done in a separate PR.
https://github.com/rrousselGit/riverpod/pull/2487
That's a breaking change, so it's going to take a while to get released.

Oh i see! i can't wait to be released!

Closing in favour of the other PR :)


Have you seen the updated RFC 4122 draft?

It seems in April 2021 the draft was updated extensively.
Was wondering if the new proposed changes have any affect on your implementation of UUIDv6? Especially because the new draft proposes restrictions on the node bits which technically can render some V1 to V6 conversions invalid if the V1 UUID did not adhere to the V6 node bits restrictions?
As we are soon taking a system live which makes use of your v6 UUIDs, I was wondering if we need to make any changes to ensure the generated UUIDs comply with the new draft?
https://datatracker.ietf.org/doc/html/draft-peabody-dispatch-new-uuid-format

Oeps.. Used our App account to post my question..

There are 3 new UUID formats
https://www.ietf.org/id/draft-peabody-dispatch-new-uuid-format-03.html#name-new-formats

Thank you. I am familiar with them. 🙂

@ramsey I see the new proposal has been updated and now has a version 7 with the advice "Implementations SHOULD utilize UUID version 7 over UUID version 1 and 6 if possible"
Is your version 6 still in accordance with the newly proposed version 6 and do you have plans to add version 7 (and 8?) to your library?

My UUID 6 implementation is from a very early draft. I plan on implementing the new UUID 6, 7, and 8, but I don’t have a timeline.

Is there anything I can do code wise? Contribute in some way or manner?

That does sound like good news and I am grateful for all your hard work.
We will be OK as long as your library can retrospectively work with the non
standard version 6 data we are about to generate. Would hate to be forced
to change all our uuids in a year or two because they are regarded as
invalid v6 versions by the new algorithms.
On Thu, 08 Sep 2022, 17:59 Ben Ramsey, @.***> wrote:

I don't think there are significant-enough changes between the
non-standard one and the standard one to warrant a need to distinguish them.
The variant bits for RFC 4122 RFCs are all the same, so those can't be
used to distinguish a non-standard UUID from a standard UUID.
The new RFC does add a v8 UUID that is for the purpose of doing
non-standard things, though, but that won't help in this situation.
—
Reply to this email directly, view it on GitHub
https://github.com/ramsey/uuid/issues/385#issuecomment-1240913728, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAD77E632WQKNPN27MBE47DV5IENPANCNFSM5CLOS6IQ
.
You are receiving this because you commented.Message ID:
@.***>

If I clone and branch the library and re-name the non standard v6 to v8 in
the library, will that keep me RFC compliant? I am about 3 weeks away from
a point of no return in my development so any change will have to be made
soon.
On Thu, 08 Sep 2022, 17:59 Ben Ramsey, @.***> wrote:

I don't think there are significant-enough changes between the
non-standard one and the standard one to warrant a need to distinguish them.
The variant bits for RFC 4122 RFCs are all the same, so those can't be
used to distinguish a non-standard UUID from a standard UUID.
The new RFC does add a v8 UUID that is for the purpose of doing
non-standard things, though, but that won't help in this situation.
—
Reply to this email directly, view it on GitHub
https://github.com/ramsey/uuid/issues/385#issuecomment-1240913728, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAD77E632WQKNPN27MBE47DV5IENPANCNFSM5CLOS6IQ
.
You are receiving this because you commented.Message ID:
@.***>

Quick update, @pluk77 ...
I'm deprecating Ramsey\Uuid\Nonstandard\UuidV6 and adding Ramsey\Uuid\Rfc4122\UuidV6 (see the 4.x branch), and I'll be adding classes for UuidV7 and UuidV8 this week.

@ramsey Thank you for settling my mind. I am glad to read the following in the docs which I read as: I do not have to convert my non-standard v6 UUIDs (as they will break my referential integrity) and they will work side by side with the standard compliance v6 in the future. Which is a huge relieve!

Prior to version 4.0.0, ramsey/uuid provided a solution for this with the ordered-time codec. Use of the ordered-time codec is still valid and acceptable. However, you may replace UUIDs generated using the ordered-time codec with version 6 UUIDs. If you perform this conversion, the bytes and string representation of your UUIDs will change. This will break any software that expects your identifiers to be fixed.

@pluk77, I've just released version 4.5.0, which includes support for version 7 UUIDs. I would recommend upgrading and using version 7 UUIDs rather than version 6. 😄
More details here: https://uuid.ramsey.dev/en/4.5.0/rfc4122/version7.html


LTD-3335-permission-tau-advice-move-case-forward

Aim

Link to story

I think there are other "Move case forward" buttons;
https://github.com/uktrade/lite-frontend/blob/6fd31b9075f1b0188cb8efaeec8bc533c4f4540c/caseworker/advice/views.py#L204
https://github.com/uktrade/lite-frontend/blob/6fd31b9075f1b0188cb8efaeec8bc533c4f4540c/caseworker/advice/views.py#L545
There's also "I'm done" buttons;
https://github.com/uktrade/lite-frontend/blob/10689ba609d457ede0bd29a1484c5dd39dc507ab/caseworker/templates/layouts/case.html#L144
I feel like these should probably all be covered too.

yeah they're a different style and handles very differently was going to cover under a different PR but guess can try and extend this one

I think there are other "Move case forward" buttons;
https://github.com/uktrade/lite-frontend/blob/6fd31b9075f1b0188cb8efaeec8bc533c4f4540c/caseworker/advice/views.py#L204
https://github.com/uktrade/lite-frontend/blob/6fd31b9075f1b0188cb8efaeec8bc533c4f4540c/caseworker/advice/views.py#L545
There's also "I'm done" buttons;
https://github.com/uktrade/lite-frontend/blob/10689ba609d457ede0bd29a1484c5dd39dc507ab/caseworker/templates/layouts/case.html#L144
I feel like these should probably all be covered too.

yeah they're a different style and handles very differently was going to cover under a different PR but guess can try and extend this one

These have all been extended the forms actually use the same base view and template


[Question] <是否可以直接一键复制监控参数和分组监控>

Question
1.比如我的微服务有5台实例，除了监控host不一样，其他的都一样，我需要重复5次进行添加监控，是否可以一键复制新的表单，只需要更改某个参数即可添加
2.对于多实例的同一个监控，在列表里会有多条，是否可以支持以服务为一组的多级列表，点击搞服务名可以看到统一服务下的所有实例监控

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑🤝🧑👫🧑🏿🤝🧑🏻👩🏾🤝👨🏿👬🏿

Question

For example, my microservice has 5 instances. Except for the different monitoring hosts, everything else is the same. I need to repeat 5 times to add monitoring. Is it possible to copy a new form with one click, and only need to change a certain parameter to add it
For the same monitoring of multiple instances, there will be multiple items in the list. Is it possible to support a multi-level list with services as a group? Click on the service name to see all instance monitoring under the unified service@@=== =[Question]

@jinkangHe  hi 目前不支持1，2这样的，一键复用表单参数这个功能我们可以加入roadmap实现下，但优先级不高不会很快有

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑🤝🧑👫🧑🏿🤝🧑🏻👩🏾🤝👨🏿👬🏿

@jinkangHe hi currently does not support 1 and 2. We can add the function of one-click multiplexing form parameters to the roadmap, but the priority is not high and will not be available soon

@jinkangHe hi 目前不支持1，2这样的，一键复用表单参数这个功能我们可以加入roadmap实现下，但优先级不高不会很快有

看了下后台接口的实现1的话前端这里复用表单数据，提供一个修改，然后新增一个监控就好了 ，2的话不知道是否可以新增一个group表 ，和监控表做一个简单绑定来支持分组，如果觉得这个功能可以做的话，我可以做一下。

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑🤝🧑👫🧑🏿🤝🧑🏻👩🏾🤝👨🏿👬🏿

@jinkangHe hi currently does not support 1 and 2. We can add the function of one-click multiplexing form parameters to the roadmap, but the priority is not high and will not be available soon

After looking at the implementation of the background interface 1, the front end here reuses the form data, provides a modification, and then adds a monitoring. If 2, I don’t know if it is possible to add a group table and make a simple binding with the monitoring table. Support grouping, if you think this function can be done, I can do it.

@MoshiCoCo Hi 非常欢迎，1 这个功能可以做下，在前端监控列表页面下监控项提供一键复制按钮。2 这个功能需要考虑到分组后这个组在哪里和怎么展示的问题，其实现在有个标签功能，理论上结合标签，可以把多个监控绑定同一标签就能支持分组需求。这一块得仔细考虑下了。

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑🤝🧑👫🧑🏿🤝🧑🏻👩🏾🤝👨🏿👬🏿

@MoshiCoCo Hi is very welcome, 1 This function can be done, and the monitoring item under the front-end monitoring list page provides a one-click copy button. 2 This function needs to consider the question of where and how to display the group after grouping. In fact, there is now a tag function. In theory, combined with tags, multiple monitors can be bound to the same tag to support grouping requirements. This one has to be carefully considered.

#863

Bot detected the issue body's language is not English, translate it automatically. 👯👭🏻🧑🤝🧑👫🧑🏿🤝🧑🏻👩🏾🤝👨🏿👬🏿

#863


x/tools/gopls: symbol returns matches from outside the workspace

What version of Go are you using (go version)?

$ go version
go version devel +b7689f5aa3 Fri Jan 31 06:02:00 2020 +0000 linux/amd64
$ go list -m golang.org/x/tools
golang.org/x/tools v0.0.0-20200214144324-88be01311a71
$ go list -m golang.org/x/tools/gopls
golang.org/x/tools/gopls v0.1.8-0.20200214144324-88be01311a71

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
go env Output
$ go env
GO111MODULE="on"
GOARCH="amd64"
GOBIN=""
GOCACHE="/home/myitcv/.cache/go-build"
GOENV="/home/myitcv/.config/go/env"
GOEXE=""
GOFLAGS=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOINSECURE=""
GONOPROXY=""
GONOSUMDB=""
GOOS="linux"
GOPATH="/home/myitcv/gostuff"
GOPRIVATE=""
GOPROXY="https://proxy.golang.org,direct"
GOROOT="/home/myitcv/gos"
GOSUMDB="sum.golang.org"
GOTMPDIR=""
GOTOOLDIR="/home/myitcv/gos/pkg/tool/linux_amd64"
GCCGO="gccgo"
AR="ar"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
GOMOD="/home/myitcv/gostuff/src/github.com/myitcv/govim/go.mod"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build235629906=/tmp/go-build -gno-record-gcc-switches"

What did you do?
With the following setup:
-- main.go --
package main

import (
	"fmt"

	"golang.org/x/tools/imports"
)

func main() {
	fmt.Println(imports.LocalPrefix)
}
-- go.mod --
module github.com/myitcv/playground

go 1.12

require golang.org/x/tools v0.0.0-20200214191634-99763790079f

Called 'Symbol' with a query of "main"
What did you expect to see?
A single result: the main function defined in main; because the workspace scope is defined (I think) as the main module.
What did you see instead?
Lots of results from outside the workspace (main module) within dependencies:
gopls.Symbol() return; err: <nil>; res:
[]protocol.SymbolInformation{
    {
        Name:       "main",
        Kind:       12,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gostuff/src/github.com/myitcv/playground/main.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:8, Character:5},
                End:   protocol.Position{Line:8, Character:9},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "Remainder",
        Kind:       12,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/math/remainder.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:36, Character:5},
                End:   protocol.Position{Line:36, Character:14},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "remainder",
        Kind:       12,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/math/remainder.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:38, Character:5},
                End:   protocol.Position{Line:38, Character:14},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "main",
        Kind:       8,
        Deprecated: false,
        Location:   protocol.Location{
            URI<EMAIL_ADDRESS>            Range: protocol.Range{
                Start: protocol.Position{Line:32, Character:1},
                End:   protocol.Position{Line:32, Character:5},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "domainname",
        Kind:       8,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/runtime/defs_linux_amd64.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:274, Character:1},
                End:   protocol.Position{Line:274, Character:11},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "main_inittask",
        Kind:       13,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/runtime/proc.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:91, Character:4},
                End:   protocol.Position{Line:91, Character:17},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "main_init_done",
        Kind:       13,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/runtime/proc.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:97, Character:4},
                End:   protocol.Position{Line:97, Character:18},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "main_main",
        Kind:       12,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/runtime/proc.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:100, Character:5},
                End:   protocol.Position{Line:100, Character:14},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "mainStarted",
        Kind:       13,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/runtime/proc.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:103, Character:4},
                End:   protocol.Position{Line:103, Character:15},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "main",
        Kind:       12,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/runtime/proc.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:112, Character:5},
                End:   protocol.Position{Line:112, Character:9},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "funcID_runtime_main",
        Kind:       14,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/runtime/symtab.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:237, Character:1},
                End:   protocol.Position{Line:237, Character:20},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "hasmain",
        Kind:       8,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/runtime/symtab.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:293, Character:1},
                End:   protocol.Position{Line:293, Character:8},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "Setdomainname",
        Kind:       12,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/syscall/zsyscall_linux_amd64.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:715, Character:5},
                End:   protocol.Position{Line:715, Character:18},
            },
        },
        ContainerName: "",
    },
    {
        Name:       "Domainname",
        Kind:       8,
        Deprecated: false,
        Location:   protocol.Location{
            URI:   "file:///home/myitcv/gos/src/syscall/ztypes_linux_amd64.go",
            Range: protocol.Range{
                Start: protocol.Position{Line:574, Character:1},
                End:   protocol.Position{Line:574, Character:11},
            },
        },
        ContainerName: "",
    },
}

cc @stamblerre
FYI @leitzler

This is intentional - I think it's useful to be able to go to the a symbol in a dependency of your workspace packages. Is there a particular reason you would want to remove this behavior?

Is there a particular reason you would want to remove this behavior

The only reason I questioned whether this was the intended behaviour or not is the discrepancy, under a very strict reading at least, between the fact the method is defined as returning workspace symbols but in fact returns symbols from outside the workspace.
If this is working as intended that's absolutely fine (and in many respects better). I'll add another comment to #37237 to also request a module scope.

This has come up a few times. Several users do not like seeing results outside their workspace.
Given that this is a superficial change, I would not be opposed to adding e.g. a "symbolScope" setting that alters this behavior.

Are there any updates on this topic? Is there a work-around? It realy hurts to not have a sane search for Go symbols in vscode.

Thanks for pinging, @guettli.
I still prefer the current behavior, but may be in the minority. I suspect that effectiveness of the current symbol search also depends on whether your client reorders results (invalidating our down-ranking of non-workspace symbols).  My client does not reorder results, but VS Code does.
I will add a symbolScope setting for v0.12.0 with two values: "workspace" and "all". We can start with "workspace" as the default.

@findleyr Thank you for the good news. I think it depends on the your-code/library-code ratio. I develop a kubernetes operator (CRD). My code is only few lines, but I import a lot of packages. If I use ctrl-t (Go to Symbol in Workspace) I see ~50 matches. Only ~5 are from my code. We use code-vendoring. Please don't include the vendored code into the results. The vendored code is (according to my definition) not part of my code.

Just driving by to re-up https://github.com/golang/go/issues/37237 in this context. Something like the approach listed in that issue would allow the caller to define the scope on a per query basis. I'm constantly bugged by the fact that I get symbols outside of the current package, let alone the workspace!

@myitcv we will likely not undertake #37237 until VS Code allows controlling the workspace symbol result dialog. As it is now, any sort of advanced query syntax would cause VS Code to filter out all results, because it does its own round of sorting and filtering after we return results.

@guettli you can now test this out by build gopls@master:
e.g.:
git clone https://go.googlesource.com/tools
cd tools/gopls && go install

@findleyr thank you very, much ctrl+t show now my code only:

old:

works fine, thank you!

As it is now, any sort of advanced query syntax would cause VS Code to filter out all results

But that would only occur if someone opted into using the advanced query syntax. Nothing would change by default. And as you say, because a) there isn't a good interface/UX for doing this in VSCode, and b) it performs its own filtering (incorrectly) then VSCode users would not be able to leverage such a feature. And it could be documented as such.
My point is that we don't need nor are we required to gate implementing such an experimental feature on whether VSCode can support it or not. Such a feature would provide a serious improvement of experience for those users able to take advantage of it.

@myitcv this issue is about symbols outside the workspace. Did this change help you?

@myitcv this issue is about symbols outside the workspace. Did this change help you?

@guettli - not really. Because the scope in which I want to search for symbols changes. Sometimes I want to search across the equivalent of the all package space, sometimes just in the workspace, sometimes just in the scope of the module to which the current file belongs, sometimes the scope of the package to which the current file belongs, sometimes in the scope of just the current file.
Having a single static config option doesn't much help therefore. Not to say that it wouldn't help others, I'm just drawing a connection to a previously discussed issue.

My point is that we don't need nor are we required to gate implementing such an experimental feature on whether VSCode can support it or not. Such a feature would provide a serious improvement of experience for those users able to take advantage of it.

Understood. I was just trying to convey priorities: right now we have a lot of high priority, impactful work to do for gopls (releasing our new, scalable architecture, working on making gopls zero-config, improving workspace support, etc). Realistically, we are unlikely to prioritize this work until more users could benefit from it.
Also: let's see what the feedback is from this current change.

We can start with "workspace" as the default.

@findleyr - I had missed this detail until I happened to start using ddfa2200ae0bde969aa31087e186187f4fa91da0.
Why did you decide to make this the default, given the current behaviour is "all"?
Would it not be better to have people opt into this, rather than changing the default behaviour?
Or does "several users" actually translate to "the majority of users"?

@myitcv we don't actually know what our users want: we only hear from users via surveys and issues, and I have only ever heard users express that they are suprised when workspace/symbol responses return results outside their opened workspace folder. We don't have evidence that folks like the current behavior: I feel like I've been a bit stubborn in keeping it, because I prefer it.
However, your question has made me reconsider this decision: it may be more prudent to start with the default value of "all", and solicit feedback as to whether we should change the default.
Questions like these are why we want to add telemetry to gopls: this type of question does not usually fit the scope of a survey, and yet by seeing whether folks actually jump to a symbol outside the workspace we'd immediately know whether the current behavior is useful.

We don't have evidence that folks like the current behavior

Arguably you have some evidence that folks don't dislike the behaviour of "all" - the fact that in the 3+ years since I raised this issue, it (this issue) was the only one on the subject (assuming any dups would have been linked to it if created, I didn't perform an exhaustive search).
Points very much taken on telemetry BTW.
FWIW, because this is configurable I don't really mind which way you have the default. I was just flagging the fact that the default had changed... and that surprised me given the aforementioned evidence.


SyntaxError

Hi, I continue getting the following error. My environment is v5.10.1. Also, my server is located in New York. Will that effect the code? Thanks.
Trace: [SyntaxError: Unexpected end of input]
at process._tickCallback (internal/process/next_tick.js:103:7)

Also, I use a U.S. proxy and I have got this issue several times. It seems that overseas requests may get a bad response sometimes.
Could you please tell me which API you use? I will test is again and give feedback to you.

Sure. I was use the sample code usage you provided:
`const fs = require('fs')
const api = require('zhihu-api')
// cookie must be set before any request
api.cookie(fs.readFileSync('./cookie'))
api.user('excited-vczh').detail()
.then(console.log.bind(console))
.catch(console.trace.bind(console))`
Also, when I run the example, I did not get any result. Have you had this situation before?

I can get the correct response.

Have you set the cookie correctly?
First, check if the cookie file exists. Second, just copy your cookie(Chrome DevTool → Network → Request Headers → Cookie) to the file.

Yes, for sure I copied all my cookies to the cookie file.

Hi, eventually it works on my windows OS. I am trying to figure out why it did not work on my CentOS server. Thank you so much.


policy as code

write policy for azure

completed

open again. issue prsist

completed again. no issue found


Prevent unnecessary post-process results recursion

Fixes

Fixes #2415 by @sarayourfriend
Description

Stops _post_process_results recursion once the total available hits have been exhausted. Previously, if queries were unable to fill the page_size with live links, _post_process_results would continue to iterate until the ES max page depth was met.
For some reason the Hit __repr__ was suddenly failing for me and causing tests to incorrectly fail (call argument mocks use repr, apparently). The fix for this was to ensure the document _id is a string. Here is the error I was seeing:
self = <[TypeError('sequence item 1: expected str instance, int found') raised in repr()] Hit object at 0x7f34bb326c90>

    def __repr__(self):
        return "<Hit({}): {}>".format(
>           "/".join(
                getattr(self.meta, key) for key in ("index", "id") if key in self.meta
            ),
            super(Hit, self).__repr__(),
        )
E       TypeError: sequence item 1: expected str instance, int found

self.meta.id was an int. Changing the factory to pass a string here (which does match ES's actual response type) fixed the issue.
Testing Instructions

Make sure you understand how to reproduce the error on main, follow the reproduction instructions in the issue.
Once you've done that, check out this branch and try to reproduce the issue. You should not be able to. With the example in the issue, you should see a single call to post_process_results.
The unit test attempts to cover the case where additional calls to post_process_results are needed to fill the first or last page of a query. It becomes increasingly complex to test the more calls to post_process_results we want to assert, but I can try to add more unit tests if we want examples of recursion depth greater than 2 in the unit tests. The unit tests are also fairly complex, if reviewers have any ideas for how to simplify (and especially how to clarify them), please share.
Checklist

[x] My pull request has a descriptive title (not a vague title likeUpdate index.md).
[x] My pull request targets the default branch of the repository (main) or a parent feature branch.
[x] My commit messages follow best practices.
[x] My code follows the established code style of the repository.
[x] I added or updated tests for the changes I made (if applicable).
[x] I added or updated documentation (if applicable).
[x] I tried running the project locally and verified that there are no visible errors.
[N/A] I ran the DAG documentation generator (if applicable).

Developer Certificate of Origin

Developer Certificate of Origin
Developer Certificate of Origin
Version 1.1

Copyright (C) 2004, 2006 The Linux Foundation and its contributors.
1 Letterman Drive
Suite D4700
San Francisco, CA, 94129

Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.

Developer's Certificate of Origin 1.1

By making a contribution to this project, I certify that:

(a) The contribution was created in whole or in part by me and I
    have the right to submit it under the open source license
    indicated in the file; or

(b) The contribution is based upon previous work that, to the best
    of my knowledge, is covered under an appropriate open source
    license and I have the right under that license to submit that
    work with modifications, whether created in whole or in part
    by me, under the same open source license (unless I am
    permitted to submit under a different license), as indicated
    in the file; or

(c) The contribution was provided directly to me by some other
    person who certified (a), (b) or (c) and I have not modified
    it.

(d) I understand and agree that this project and the contribution
    are public and that a record of the contribution (including all
    personal information I submit with it, including my sign-off) is
    maintained indefinitely and may be redistributed consistent with
    this project or the open source license(s) involved.

I'm not sure why the test fails in CI but passes locally. I'll try adding a more strict matcher on the request body in case something else is making the request and causing pook to use the wrong response, somehow. I cannot reproduce it locally, though :cry:

Re-running just to see if the test is flaky or always wrong. It's failed several times now so I suspect CI is doing something slightly different that I'm not expecting... just not sure how to anticipate it.

Aha! I'm able to reproduce it locally now by adding the redis fixture to the first test. Debugging now :slightly_smiling_face:

I'm having trouble following the tests. Do you mind commenting them more extensively?

Can you share where you're losing track specifically? It's hard to know exactly what to comment without potentially over-complicating the explanation. Unfortunately this part of the code is complicated and the test complexity mirrors that. T


Release 0.4.1

Only after https://github.com/napalm-automation/napalm-eos/pull/69 is merged.

Coverage remained the same at 79.209% when pulling 694fb71da5efeb5dbbb7413c7c8b5fc0462db545 on mirceaulinic:RELEASE0.4.1 into 637ebef8667fa6f2446dd33c6b049bf49d95d671 on napalm-automation:develop.

+1


Add unit tests to increase code coverage

This is to upgrade envoy jwt_authn fitler security status to "stable":  https://github.com/envoyproxy/envoy/pull/23617
In this change:

add more unit-test for jwks_test and jwt_test
change status.cc to use a flat_hash_map

PTAL


improves batch build generation

Issue #, if available:
Description of changes:
The primary goal of this PR to decrease the number of builds the staging build kicks off.  The main changes are:

released branch builds, cpi-vsphere/bottlerocket-bootstrap/kind, are changed to be based on platform/arch instead of kube version.  The instance size is bumped to try and account for the difference in time.
the image-builder build in staging only handles the BR artifacts. Those builds have been combined into a single build that downloads an uploads the raw and ova images.
the kind build was changed to be by arch with 4 parts, binaries/base images/node images/combine images.  This drastically cuts down the number of builds.

Also improved the definition of these batch builds in the makefiles.

added a default for the common case which combine images
the script figures out the common deps so we dont have to define them in the makefiles.  This supports the cases where we break builds up by binary or image platform.
better handling of identifier name based on buildspec name

Removes the qemu binfmt install.  We should see if we can avoid relying on this and instead just break builds up that need to be run on different archs.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


Fixed typo in documentation.

Added another whitespace to prevent the words "Browserify" and "with" from sticking together.

Thanks!


Credentials body needs to have keys quoted

POST https://graph.microsoft.com/beta/servicePrincipals/{id}/synchronization/jobs/{id}/validateCredentials
{
"credentials": [
{ "key": "ClientSecret", "value": "xxxxxxxxxxxxxxxxxxxxx" },
{ "key": "SecretToken", "value": "xxxxxxxxxxxxxxxxxxxxx" }
]
}

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

ID: 65ab0fe3-888c-5180-6924-23c5b79ccba9
Version Independent ID: 2ab7dfd1-7848-f15e-c41e-de833f901f12
Content: Use Microsoft Graph APIs to configure provisioning - Azure Active Directory
Content Source: articles/active-directory/app-provisioning/application-provisioning-configure-api.md
Service: active-directory
Sub-service: app-provisioning
GitHub Login: @kenwith
Microsoft Alias: kenwith

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

This article has moved to Graph repo. I created a PR to update there. https://github.com/microsoftgraph/microsoft-graph-docs/pull/10387
#please-close


Added documentation

It works for Mac now.

Looks good. Squash your two commits and see my comment about Linux.

PTAL

PTAL

PTAL

"If you are not on Windows..."


[Bugfix]: Replace the hardcoded Watsonx API URL value

What does this PR do?
Previously the watsonx api url was hardcoded in _set_span_attribute. To support the region based API URLs or on-prem, update the hardcoded API URL with a env variable to get the base URL by the customer.
Fixed #2163
Type of change
Update the hardcoded value with env var.

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

I am trying to extract the url from WatsonxLLM object by getattr(instance, "url"). Should i set None if the url not found?

@rajmanna-dev did you check that it's there? If not I'd default to the current value we have in the code

Is this modification works:
I set the url with os.getenv("API_BASE_URL") and then checked from watsonx/__init__.py.
def _set_api_attributes(span, instance):
    if hasattr(instance, "url"):
        api_base_url = instance.url
    else:
        api_base_url = "https://us-south.ml.cloud.ibm.com"
    _set_span_attribute(
        span,
        WatsonxSpanAttributes.WATSONX_API_BASE,
        api_base_url
    )
    _set_span_attribute(span, WatsonxSpanAttributes.WATSONX_API_TYPE, "watsonx.ai")
    _set_span_attribute(span, WatsonxSpanAttributes.WATSONX_API_VERSION, "1.0")

    return

@rajmanna-dev I mean - does this attribute exist? (for example when you run the sample app)

@nirga Yes "url" is exists inside the WatsonxLLM object.

SG then @rajmanna-dev! Waiting for the updated PR :)


Mouseover events

I am designing a desktop kivy app where mouseover events for certain widgets would be quite useful. I understand that it is possible to create a scheduled function that listens to the mouse position and tests its collision with any widget (and I have successfully created mouseover events using this approach), but I was wondering if there are any plans to create a built-in event handle, such as the ones when buttons are pressed/released. From the user standpoint, it would be far easier to have an on_hover event, for example.

This has been discussed before. I think the major problem with a generic on_hover event is that it's very inefficient - far more so than touch events, as if the mouse is moving it would mean walking the widget tree passing the event along every single frame. I believe for this reason it was considered better to leave it to users.
If anything, it would probably be best to make a behavior mixin class like the ButtonBehavior that can keep track of the specific classes listening for hover events and dispatch relatively efficiently to them. This wouldn't be very hard to create, if you wanted to make one and submit a PR I think it would be considered.

Attached is my attempt for such thing. Posting it here, before any PR
------------hoverable.py-----------------------------------------------------------------------------------
"""Hoverable Behaviour (changing when the mouse is on the widget by O. Poyen.License: LGPL"""author = 'Olivier POYEN'
from kivy.properties import BooleanProperty, ObjectPropertyfrom kivy.core.window import Window
class HoverBehavior(object):    """Hover behavior.
:Events:        on_enter            Fired when mouse enter the bbox of the widget.        on_leave            Fired when the mouse exit the widget     """
hovered = BooleanProperty(False)    border_point= ObjectProperty(None)    '''Contains the last relevant point received by the Hoverable. This can    be used in on_enter or on_leave in order to know where was dispatched the event.    '''
def init(self, **kwargs):        self.register_event_type('on_enter')        self.register_event_type('on_leave')        Window.bind(mouse_pos=self.on_mouse_pos)        super(HoverBehavior, self).init(**kwargs)
def on_mouse_pos(self, *args):        if not self.get_root_window():            return # do proceed if I'm not displayed <=> If have no parent        pos = args[1]        #Next line to_widget allow to compensate for relative layout        inside = self.collide_point(*self.to_widget(*pos))        if self.hovered == inside:            #We have already done what was needed            return        self.border_point = pos        self.hovered = inside        if inside:            self.dispatch('on_enter')        else:            self.dispatch('on_leave')
def on_enter(self):        pass
def on_leave(self):        pass
from kivy.factory import FactoryFactory.register('HoverBehavior', HoverBehavior)
if name=='main':    from kivy.uix.floatlayout import FloatLayout    from kivy.lang import Builder    from kivy.uix.label import Label    from kivy.base import runTouchApp    class HoverLabel(Label, HoverBehavior):        def on_enter(self, *args):            print "You are in, through this point", self.border_point
def on_leave(self, *args):            print "You left through this point", self.border_point
Builder.load_string(''':    text: "inside" if self.hovered else "outside"    pos: 200,200    size_hint: None, None    size: 100, 30    canvas.before:        Color:            rgb: 1,0,0        Rectangle:            size: self.size            pos: self.pos    ''')    fl = FloatLayout()    fl.add_widget(HoverLabel())    runTouchApp(fl)
Date: Sun, 28 Jun 2015 14:02:38 -0700
From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>Subject: Re: [kivy] Mouseover events (#3471)
This has been discussed before. I think the major problem with a generic on_hover event is that it's very inefficient - far more so than touch events, as if the mouse is moving it would mean walking the widget tree passing the event along every single frame. I believe for this reason it was considered better to leave it to users.
If anything, it would probably be best to make a behavior mixin class like the ButtonBehavior that can keep track of the specific classes listening for hover events and dispatch relatively efficiently to them. This wouldn't be very hard to create, if you wanted to make one and submit a PR I think it would be considered.
—
Reply to this email directly or view it on GitHub.

Your formatting is messed, up, indent the code lines by 4 spaces (and make sure line breaks are present correctly) to have it display properly.

Better attempt:
https://gist.github.com/opqopq/15c707dc4cffc2b6455f
Date: Mon, 29 Jun 2015 02:45:46 -0700
From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>CC<EMAIL_ADDRESS>Subject: Re: [kivy] Mouseover events (#3471)
Your formatting is messed, up, indent the code lines by 4 spaces (and make sure line breaks are present correctly) to have it display properly.
—
Reply to this email directly or view it on GitHub.

@opqopq Hey, the gist is great. May I copy and use it in my project? Under what conditions?

sure.
No condition, but not support :)
Date: Fri, 29 Apr 2016 18:24:46 -0700
From<EMAIL_ADDRESS>To<EMAIL_ADDRESS>CC<EMAIL_ADDRESS><EMAIL_ADDRESS>Subject: Re: [kivy/kivy] Mouseover events (#3471)
@opqopq Hey, the gist is great. May I copy and use it in my project? Under what conditions?
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub


In Powertoys_run -> unit_converter, Pls add ability to convert Data size, like KB, GB, TB, Bytes, Bits

Description of the new feature / enhancement
Data size conversion is not supported in power toys as of right now.
Scenario when this would be used?
When needing size conversion at hand fast.
Supporting information
No response

Hi @BladeX-1, data unit conversion is available in the latest version. If you experience any issues, don't hesitate to reach out, otherwise, please close this issue. Thanks :)


Roll Flutter Engine from 4cc0b3dab001 to a123723cb51f (1 revision)

https://github.com/flutter/engine/compare/4cc0b3dab001...a123723cb51f
2023-08-03<EMAIL_ADDRESS>[Flutter GPU] Export symbols from engine, stub for testing on CI. (flutter/engine#44280)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-engine-flutter-autoroll
Please CC jacksongardner@google.com,rmistry<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Update the package "jest" to the latest version

coming from this issue here
Snyk reported a HIGH severity vulnerability in Expensify/App:package.json.
More information about this issue can be found here.
Snyk ID: SNYK-JS-JSONSCHEMA-1920922
Package: json-schema
Version: 0.2.3
Language: js
Date Introduced: 2022-07-04

from @flodnv:

$ npm list  jest-cli                                                                                [12:26:37]
<EMAIL_ADDRESS>/Users/flo/Expensidev/App
├─┬<EMAIL_ADDRESS>│ └──<EMAIL_ADDRESS>deduped
└──<EMAIL_ADDRESS>

Posted to Upwork!
Internal
External


Fixes issue #208

Search with supplerendebynavn no longer returns nothing.
https://github.com/SDFIdk/gsearch/issues/208

LGTM


DateTimePickerDialog

Need dialog ui DateTimePickerDialog by combing Android's inbuilt DatePickerDialog and TimePickerDialog

Added in new release 1.0.1


Got only Loops category on load!

This happened in the tutorial tool working on forest5 after I changed the order of the statusbar variables.
See https://github.com/kiki-lee/pxt-skillmap-mess/blob/main/forest-5-error.txt for full console dump.

Keeps happening in tutorial-tool, not in actual browser.  I froze a version for you (but it's not erroring out at the moment)
https://arcade.makecode.com/#tutorial:89247-52015-10037-14531

I had to do a shift+refresh on the tutorial tool to get the categories loading again.

If this still reproduces reopen.


Why does CalDAV Backend PDO class does not allow to change the uri of a calendar?

Hi everybody,
I am using the PDO Backend Class of caldav to update my calendars within my own php backend. Here is the file I am refering to:
https://github.com/fruux/sabre-dav/blob/6fda658c4a57b4a6aaf514d7d2beb1894ce4ad61/lib/CalDAV/Backend/PDO.php
I am using the function createCalendar  which uses the propertyMap to define which changes are allowed with properties.
propertyMap is defined like that:
public $propertyMap = [
        '{DAV:}displayname'                                   => 'displayname',
        '{urn:ietf:params:xml:ns:caldav}calendar-description' => 'description',
        '{urn:ietf:params:xml:ns:caldav}calendar-timezone'    => 'timezone',
        '{http://apple.com/ns/ical/}calendar-order'           => 'calendarorder',
        '{http://apple.com/ns/ical/}calendar-color'           => 'calendarcolor',
    ];

My Question is now: Why is it not allowed to change the uri of a calendar?
Of cause I can change the propertyMap and add:
'uri' => 'uri'
public $propertyMap = [
        '{DAV:}displayname'                                   => 'displayname',
        '{urn:ietf:params:xml:ns:caldav}calendar-description' => 'description',
        '{urn:ietf:params:xml:ns:caldav}calendar-timezone'    => 'timezone',
        '{http://apple.com/ns/ical/}calendar-order'           => 'calendarorder',
        '{http://apple.com/ns/ical/}calendar-color'           => 'calendarcolor',
        'uri'                                             => 'uri',
    ];

Is there any reason why this is not allowed by default? In my opinion it does not make sense to update the displayname of a calendar without changing the uri.
Imagine that I create a calendar with uri=private and displayname=Private Stuff.
If I then change Private Stuff to Public Stuff, I should also update the uri from private to public. Makes sense, right?
I would appreciate any comment to that.
Best regards
Christoph

Hey Christoph,
I think that breaking existing urls for entities is kind of bad design for any api. A lot of clients will index and store things based on urls. The url is the true primary key.
It's technically not impossible to allow clients to change the url with a HTTP MOVE request, but I would strongly advise against this. Most other CalDAV servers disallow this, and I can imagine clients not being happy with that type of change.
If you're worried about giving your calendar a uri that's later on no longer accurate, maybe just give it a more generic or abstract uri. Most CalDAV clients will just use a UUID (or let the server decide).
Evert

Thanks for the answer...


fix npm error

i got an error when loading a dev server, it said: failed to load config from C:\Users\Documents\GitHub\Meower-Svelte\vite.config.js
error when starting dev server:
Error [ERR_MODULE_NOT_FOUND]: Cannot find package '@rollup/plugin-replace' imported from C:\Users\Documents\GitHub\Meower-Svelte\vite.config.js

try running npm install again, dependencies may have been added since last time you did it

ran it, removed like everything


what is the teamlab connectionString for?

hi,
in the web\studio\ASC.Web.Studio\web.connections.config and other files we found a teamlab connectionString. what is it for ? does onlyoffice connect to a remote server even it's for a local use ?
<?xml version="1.0" encoding="utf-8"?>
<connectionStrings>
 <clear />
  <add name="default" connectionString="Server=localhost;Database=onlyoffice;User ID=root;Password=onlyoffice;Pooling=True;Character Set=utf8;AutoEnlist=false" providerName="MySql.Data.MySqlClient" />
  <add name="teamlabsite" connectionString="Server=teamlab;Database=teamlab_site;User ID=dev;Password=dev;Pooling=true;Character Set=utf8;AutoEnlist=false" providerName="MySql.Data.MySqlClient" />
</connectionStrings>

Teamlab connectionString in web.connections.config remained identical to that of the old version. It isn't being used now in the current version of onlyoffice. Some other files haven't been updated after rebranding and still may content the name "teamlab".

OK. Thank you.


How do I deal with inherited methods from the second base class in multiple inheritance

I have this class called MainMenuScreen, and it inherits from MenuFlowPageHandler2 and IEventListener. The vftable for the IEvent Listener is placed after the vftable and inherited fields from MenuFlowPageHandler2, and has a method called RecieveEvent that is overridden in MainMenuScreen.
MainMenuScreen's RecieveEvent has the pointer offset to the vftable of IEventListener (most likely because it was called with it cast to an IEventListener) and causes the access of members to be off in the decompilation. I was tipped off to this mainly because of the negative indexer to access a field before the IEventListener vftable.
Is there a way to tell the ghidra decompiler that the pointer is of MainMenuScreen class but offset to the IEventListener vftable?
Example:
void __thiscall MainMenuScreen::RecieveEvent(MainMenuScreen *this,Event *event,NuEventData *param_2)

{
  bool bVar1;
  bool uVar2;
  GUI2MenuEntry *quitWindowsEntry;

  bVar1 = (*event->vftablePtr->Equals)(event,&AbleToQuitEvent);
  if ((bVar1) &&
     (quitWindowsEntry = (this->MainMenuScreen_data).selectLevelMenuEntry, // here
     quitWindowsEntry != (GUI2MenuEntry *)0x0)) {
    GUI2MenuEntry::SetText(quitWindowsEntry,PCSTRING_QUITWINDOWS);
  }
  bVar1 = (*event->vftablePtr->Equals)(event,&Event_01994248);
  if ((bVar1) && ((param_2->NuEventData_data).int_0x4 == 5)) {
    (this->MainMenuScreen_data).comingSoonMenuEntry = (GUI2MenuEntry *)0x0; // here
    DAT_01993913 = 1;
  }
  uVar2 = (*event->vftablePtr->Equals)(event,&Event_0199420c);
  if (uVar2) {
    FUN_008fc4e0((int)&this[-1].MainMenuScreen_data.field29_0xdc); // here
  }
  return;
}

Can you share the contents of MainMenuScreen's class structure? Does it contain fields for both inherited vftables? Were your structures manually generated or with the RTTI script or something else? Are you able to share the binary?

It was generated by the RTTI script, and no, I cannot share the binary as it is a paid game.
Here is a screenshot of the class structure

It contains the vftable and fields for the first inherited class, then the vftable and fields for the second inherited class, then the fields for itself, with its new virtual functions in the first vftable, if that helps.

At offset 4 it is a data.
The inheritance structure is CSListLink<> -> GUI2PageHandler -> FlowPageHandler2 -> MainMenuScreen and IEventListener -> MainMenuScreen defined as MainMenuScreen : FlowPageHandler2, IEventListener.
The structure of the MainMenuScreen written out is
struct MainMenuScreen : FlowPageHandler2, IEventLister {
    void** vftable_for_FlowPageHandler2;
    CSListLink<class_GUI2PageHandler>_data CSListLink<class_GUI2PageHandler>_data;
    GUI2PageHandler_data GUI2PageHandler_data;
    void** vftable_for_IEventListener;
    IEventListener_data IEventListener_data;
    MainMenuScreen_data MainMenuScreen_data;
}

Note: FlowPageHandler2 does not have any data or vftable of its own
GUI2PageHandler's is
struct MainMenuScreen : CSListLink<class_GUI2PageHandler> {
    void** vftable;
    CSListLink<class_GUI2PageHandler>_data CSListLink<class_GUI2PageHandler>_data;
    GUI2PageHandler_data GUI2PageHandler_data;
}

and IEventListener's is
struct IEventListener {
    void** vftable;
    IEventListener_data IEventListenerData;
}

As you can notice, MainMenuScreen is GUI2PageHandler's struct + IEventListener's struct + MainMenuScreen_data.
The function RecieveEvent is inherited from IEventListener and the virtual ptr is placed and overriden in vftable_for_IEventListener. I do not know yet where the function is being called but since the base classes function requires a IEventListener*, the function will be called with one, and the overriden function will accept one. Due to this and the IEventListener struct being offset within the MainMenuScreen struct, the MainMenuScreen* "this" argument is also offset to where the IEventListener struct is positioned.
I have confirmed this behavior using hooking to the RecieveEvent struct with mirrored versions of the structs in my project, and analyzing the vftables with or without static casting.
I have made a repository to hopefully explain what is going on better by example: https://github.com/XdotCore/TestMultipleInheritance.

Thanks for the example

Here is how to update your function to fix the -1 offset issue:
You need to turn off the thiscall convention for the ReceiveEvent method and just replace it with stdcall.  Then from the GUI, you can create the adjusted pointer be right clicking on the parameter in the decompiler (might have to add an extra param after changing the calling convention and also make sure it is a pointer), and select "Adjust Pointer Offset".  Then in the dialog, enter "IEventListener" for data-type, "0x1c" for offset, and anything you want for the name.

Thanks so much, I got it working!
I used the "Adjust Pointer Offset" option to generate the type. I set the data-type to MainMenuScreen with offset 0x1c.
Because I am keeping it as thiscall, it errored because you can't retype the this of a thiscall, but it still made the type which is what I needed.
Then I edited the function by turning on "Use Custom Storage" and set the "this" type to the generated type, and now it works!

Thanks so much, I got it working!
I used the "Adjust Pointer Offset" option to generate the type. I set the data-type to MainMenuScreen with offset 0x1c. Because I am keeping it as thiscall, it errored because you can't retype the this of a thiscall, but it still made the type which is what I needed. Then I edited the function by turning on "Use Custom Storage" and set the "this" type to the generated type, and now it works!

Glad you got it working!


DOCS-#3048: document modin.backends.pyarrow module

Signed-off-by: Dmitry Chigarev<EMAIL_ADDRESS>
What do these changes do?

[ ] commit message follows format outlined here
[ ] passes flake8 modin
[ ] passes black --check modin
[ ] signed commit with git commit -s
[ ] Resolves #3048
[ ] tests added and passing
[ ] module layout described at docs/developer/architecture.rst is up-to-date

Built docs for this PR: https://modin--3051.org.readthedocs.build/en/3051/
Affected sections:

https://modin--3051.org.readthedocs.build/en/3051/flow/modin/backends/pyarrow/index.html
https://modin--3051.org.readthedocs.build/en/3051/flow/modin/backends/pyarrow/query_compiler.html
https://modin--3051.org.readthedocs.build/en/3051/flow/modin/backends/pyarrow/parsers.html

General comments as in #3021:

I prefer to use: one backticks for highlighting parameters of func/method(by rules of numpydoc), double backticks for highlighting code-entities as funcs/classes (In sphinx built of documentation this will be immediately visible in the text)
Why we don't add .rst in any toctree?
Are you plan to add API section in .rst files to make possible auto-links to classes/functions in .rst docs?
@prutskov

Aligned backticks to your suggested style.
Included query compiler and parser into toctree index.rst. index.rst will be included in backends/index.rst toctree in #3021
Do we need an API section for non-base backends? They just implement an API defined in the base classes.

Added API section to the query compiler docs.

3. Do we need an API section for non-base backends? They just implement an API defined in the base classes.

As already said by @prutskov we do need those, both for (potential) extra details they provide and also to see what methods they override (hopefully sphinx could show that), and to be able to add references to them from other .rst files.


Struggling to generate a maze

Hi, john-science, thank you for making this whole library, I'm struggling to use the package to make a maze. can you give me any advice.

Hey there,
Have you tried reading the docs?
https://github.com/john-science/mazelib/blob/master/docs/API.md
The first suggestion is:
from mazelib import Maze
from mazelib.generate.Prims import Prims

m = Maze()
m.generator = Prims(27, 34)
m.generate()

That's to generate a maze.  Did it work?
Are you trying to display a maze?  We have docs for that too:
https://github.com/john-science/mazelib/blob/master/docs/EXAMPLES.md
If the above worked, perhaps it's as easy as:
print(m)

I've managed to generate a maze, I tested printing it as plain text first that worked, but I need to print as a PNG, when we try the PNG code we get an error showPNG is missing argument grid, thank you.

Hello again!
For future reference, the ability for me (or anyone) to help you with a software problem increases 100% if you copy/paste two things:

Exactly what you typed.
Exactly the error message you got.

It is a little hard for me to know what bug you're seeing from your description.
Let me guess that you are following this example for the showPNG() function:
https://github.com/john-science/mazelib/blob/master/docs/EXAMPLES.md#example-2-plotting-the-maze-with-matplotlib
If that is the case, you just need to run this code:
import matplotlib.pyplot as plt

from mazelib import Maze
from mazelib.generate.Prims import Prims

def showPNG(grid):
    """Generate a simple image of the maze."""
    plt.figure(figsize=(10, 5))
    plt.imshow(grid, cmap=plt.cm.binary, interpolation='nearest')
    plt.xticks([]), plt.yticks([])
    plt.show()

m = Maze()
m.generator = Prims(27, 34)
m.generate()

showPNG(m)

That should work. If it doesn't, what error do you get?
Maybe you need to install matplotlib? That is the library I use in that example to create PNG files.  You might need to pip install matplotlib on the commandline, but that depends on your setup.

@comalley29 Were you able to solve your problems with Mazelib?  If so, I would like to close this ticket.

All sorted thank you very much.
On Sun, 30 Jan 2022 at 7:06 pm, John Stilley @.***>
wrote:

@comalley29 https://github.com/comalley29 Were you able to solve your
problems with Mazelib? If so, I would like to close this ticket.
—
Reply to this email directly, view it on GitHub
https://github.com/john-science/mazelib/issues/125#issuecomment-1025208705,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ASO5DZGHOEVKKDF6M3MQUXTUYWD43ANCNFSM5MNBFWTA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>


Added WWDG + readme changes

This PR is mainly to add the Window Watchdog peripheral to to project and document it, it's my first time contributing and I've just been going off the README and some of the other peripheral yaml files so there may be some mistakes, let me know and I'll sort them tomorrow!
Additionally added, crates.io badges (as per #14) and some new devices (unintentionally but they were part of the svd zip I downloaded and hopefully they're beneficial to the project).

Thank you for the PR!
Does this build successfully (running make) for you locally? The Travis CI failing probably indicates an error in the new WWDG peripheral (though the error message is unhelpful). I'll have some time to check into it more carefully tomorrow. Also, I don't see any new devices added  in these commits, maybe there's a missing file?

Oh sorry not new devices edited ones, my mistake. And I've started going over it and found a number of mistakes which I'm now addressing. Hopefully version 2 will be good :+1:

Part of it which I'm trying to crack is there's a 2 bit wide variable in the register and it shows up in the SVD as two fields WDGTB0 and WDGBT1 when it should be a single field. If you have any guidance on that it would be helpful

Hi @adamgreig could you have a look at my latest version of the yaml? I've made some progress but have gotten stuck. But it's a lot better than it was!

Ah thanks, it's late here but I'll try and get through all these changes tomorrow and let you know if I have any questions!

Thanks, this looks good now! The final thing is you can actually add the WWDG to almost all the devices. There's a script to make this easier, try:
python3 scripts/matchperipherals.py peripherals/wwdg devices/*.yaml

to see what it can apply against cleanly, and then run the same script with --update to automatically update the device yaml files. It looks like everything except the STM32H family can take this peripheral as-is!

I just added the peripheral to all the devices after you approved the changes, and it looks to have failed. I'll investigate and hopefully fix it but I may not have time tonight

I think the problem is what I mentioned in the last comment -- the STM32H family apparently has a different WWDG so you can't add it to that. Did you use the script I mentioned? It doesn't match against the STM32H.

Ah I didn't see that comment. My internets being a bit dodgy so I put a comment and it doesn't get posted till a minute or so later and new ones don't pop up until the connection comes back! I'll revert the change to the H7 and push

All good, thanks!


OndexServiceProvider, clarifications on the usage of mapGene2HitConcept

mapGene2HitConcept is defined as a class field for the OndexServiceProvider, however, this doesn't make sense with respect to the way this field is used.
In fact, the map is updated at every client search (by getScoredGenesMap(), and then is kept there and used in writeGeneTable().
A possible solution would be to have this mapGene2HitConcept as a parameter of the two methods above, of rres.knetminer.datasource.ondexlocal.Hits and CountHitsResponse. This way, the map could be passed around from search request to writeGeneTable.
This issue is related to #347

I fixed this as described above, gene->concept and concept->score maps coming from a search are now grouped into SemanticMotifsSearchResult, added to Hits and the latter used to pass around search results at every request.


Add 'reaction_added' and 'reaction_removed' events

This commit adds constructors and JSON parsing for reaction_added and reaction_removed events.
This addresses Issue 21.

The test suite failed in travis, but it doesn't appear to be testing anything related to events.

Thanks


Create a site no longer working - button to progress is missing

Describe the bug
When creating a site The first step appears but the page ends at the "This is a course site" line.
To Reproduce
Steps to reproduce the behavior:

Click on Create a Site
Scroll down
No button to progress

Expected behavior
You should see a "next" button to progress to the next step.
Context
Does this bug on production, development, or both?

[ ] Tested on development instance
[ ] Occurs on development instance
[x] Tested on production
[x] Occurs on productions

Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
Add any other context about the problem here.

Messed up committing changes for MESH-Research/commons#557


Restructure Peer listener by cloning a UDP socket to send a hello in …

…tunnel manager
This change removes the need for calling the peer listener lock in Tunnel Manager. If this
was where a panic/deadlock took place, this change fixes it

Now access to peer listener lock is request only in two location, in peerlistener_tick() and in unlisten_interface()


Add a light / dark mode toggle to the theme

Hello contributors, I want someone to add light and dark mode to the project.
The project design is made with bootstrap. Ask me anything you need help with.

https://us02web.zoom.us/meeting/register/tZEsdeqrqzoqH9w9cpBMKVh-hndOVosotHj8

Hi @arpittyagirocks can I work on this issue?? Would love to contribute

Hey @Akash1965, I have assigned you the issue, you can start working on it.

Hi @arpittyagirocks I hope you'll like it
Let me know if further more changes are required

Hey @Akash1965, I am unassigning you this issue, as you have abandoned it.

Hey @arpittyagi102 I want to work on this issue can you assign it to me ? thanks

Hello @Pulkitxm, I have assigned you the issue


Add sway packages

TODO: find pamixer replacement on Fedora, add mako config, fix incorrect audio symbols in Waybar, add sway exit script

I might give this a try, though I'm stuck with KDE right now

An issue I've noticed since: sway can't find the lid switch script in .local/bin, so it needs to be installed elsewhere. Also the lid switch needs to refer to ACPI LID1 device instead of LID. And wob doesnt work for some reason.
Would also be nice to have kanshi configs for every desk / monitor setup in the office :)


[APIView] Use uniform Json Serialization across App

Switch all JSON serialization in APIView to either System.Text.Json or NewtonSoft.Json

We should use System.Text.Json


Fix travis build

@jadjoubran Take 5 fixed it, the error on it is with a Test not node itself. I guess bumping the version to 5.1 fixed the issue

Turns out testLandingResponseCode test was failing because we were missing the gulp command to compile the templates/scripts/files and create the public/build to actually correctly return the landing template
Adding it fixed
Maybe we should squash the commits when merging this one for the sake of saving 5 commit messages

Still failing sometimes.. seems like a race condition because it's not always giving the same results
The new issue seems to be with phantomjs

I think there was a problem with github at the time of the build, because the get request of phantom was 403... I guess we can trigger it one more time to be sure


Update sample code to suggest checking for missing default Cloud Pub/Sub topic

I spent several hours trying to understand why samples/http_example/cloudiot_http_example.js was producing errors when attempting to upload telemetry events. The error message was "INVALID_ARGUMENT", when in fact the issue turned out to be that I hadn't created a default Cloud Pub/Sub topic in the registry. I made some changes to the sample code in order to suggest that type of problem to future developers.
The issue should actually be fixed upstream, in Google's ingestor – it should issue a more explicit error (which it does, if you set up a Pub/Sub topic but fail to set it as default; if you set up no Pub/Sub topic at all, you get the INVALID_ARGUMENT error instead). But I won't spend $29 just to tell Google how to improve their product, so I ended up implementing this change in the sample.
I can create a pull request at any time, but apparently I need to file a bug first. Please let me know if this would be useful, or if you find a cleaner way to implement this improvement. My changes are here: https://github.com/Bogdan-Stancescu-RBC/nodejs-iot

@gcseh Has the bug been fixed?  Please close this issue.

@gcseh Has the bug been fixed? Please close this issue.

@SurferJeffAtGoogle No, it was not fixed yet.

Hi Bogdan,
Thank you again for reporting this issue.
The bug is fixed now, we should return the correct error message.
Csaba


Update test.log

If the message below is truncated, see https://ci.appveyor.com/project/yihui/latex-pass/builds/43132439 for the full version.
I did not figure out which LaTeX packages you need to install. Sorry.


Update basic access control task with new configs

This PR updates basic access control tasks with new configs.
At present the new adapter and template links are broken because those artifacts have not been generated yet.

Jenkins job istio.github.io/presubmit passed

now it's green. just need someone to accept it

@douglas-reid updated config examples.

/lgtm

@kyessenov I updated the PR to use istioctl exclusively. Added a link for grpc error codes.

Awesome, thanks!


Can't run vagrant up or init

Hi,
My setup is Ubuntu 14.04
I checked out from github and was able to run the security-setup, but havent been able to run the "vagrant up" or "vagrant init". The command always comes back with --
vm:
* The box 'CiscoCloud/microservices-infrastructure' could not be found.

I couldn't file a .box location for the above branch.
I have tried with default/CiscoCloud as --provider with vagrant up, that doesnt help either.
Do I have to do any "vagrant box add"?
ANy working set of steps should help

Try running:
vagrant box add CiscoCloud/microservices-infrastructure

Throws usage error - expects provider, URL, etc. just like there is a precise.box,  is there any URL for this?
Sent from my iPhone

On Feb 8, 2016, at 3:53 PM, Langston Barrett<EMAIL_ADDRESS>wrote:
Try running:
vagrant box add CiscoCloud/microservices-infrastructure
—
Reply to this email directly or view it on GitHub.

@ashmehro Does this help? https://atlas.hashicorp.com/CiscoCloud/boxes/microservices-infrastructure

That's what I was following along with the GitHub documentation when I started seeing this error.
The link doesn't give a URL for any .box
Sent from my iPhone

On Feb 8, 2016, at 5:45 PM, Langston Barrett<EMAIL_ADDRESS>wrote:
@ashmehro Does this help? https://atlas.hashicorp.com/CiscoCloud/boxes/microservices-infrastructure
—
Reply to this email directly or view it on GitHub.

can you paste in the output of vagrant box list on your machine?

This link gives instructions: https://atlas.hashicorp.com/CiscoCloud/boxes/microservices-infrastructure/versions/0.7
vagrant init CiscoCloud/microservices-infrastructure; vagrant up --provider virtualbox

Content of Vagrantfile -   config.vm.provider "virtualbox"  config.vm.provider "vmware_fusion"
  config.vm.box = "CiscoCloud/microservices-infrastructure"
On CLI - $ vagrant upBringing machine 'default' up with 'virtualbox' provider...There are errors in the configuration of this machine. Please fixthe following errors and try again:
vm:* The box 'CiscoCloud/microservices-infrastructure' could not be found.
$ vagrant box add CiscoCloud/microservices-infrastructureThis command was not invoked properly. The help for this command isavailable below.
Usage: vagrant box add   [--provider provider] [-h]
        --checksum VALUE             Checksum        ....$ vagrant box add microservices-infrastructure --provider CiscoCloudThis command was not invoked properly. The help for this command isavailable below.
Usage: vagrant box add   [--provider provider] [-h]
        --checksum VALUE             Checksum        Even for a new folder and trying to create a Vagrant file and getting it up -
$ vagrant init CiscoCloud/microservices-infrastructure; vagrant up --provider virtualboxA Vagrantfile has been placed in this directory.  Please readthe comments in the Vagrantfile as well as documentation onvagrantup.com for more information on using Vagrant.Bringing machine 'default' up with 'virtualbox' provider...There are errors in the configuration of this machine. Please fixthe following errors and try again:
vm:* The box 'CiscoCloud/microservices-infrastructure' could not be found.
$ vagrant init CiscoCloud/microservices-infrastructure; vagrant up --provider CiscoCloudA Vagrantfile has been placed in this directory.  Please readthe comments in the Vagrantfile as well as documentation onvagrantup.com for more information on using Vagrant.The provider 'CiscoCloud' could not be found, but was requested toback the machine 'default'. Please use a provider that exists.
On Monday, February 8, 2016 6:18 PM, Ryan Eschinger<EMAIL_ADDRESS>wrote:

can you paste in the output of vagrant box list on your machine?—
Reply to this email directly or view it on GitHub.

Looks like finally I am able to at least get the box!Checked out a fresh branch and DID NOT do the "git tag" step.After the security-setup, it checked for vagrant version which was (1.4.3, so apt-get removed it and installed 1.8.1 - using the gdebi and .deb file from vagrantup.com).That made it work!The .box location can be noted from below, it was not available anywhere - not in http://vagrantbox.es or the github wiki.
$ vagrant upVagrant is upgrading some internal state for the latest version.Please do not quit Vagrant at this time. While upgrading, Vagrantwill need to copy all your boxes, so it will use a considerableamount of disk space. After it is done upgrading, the temporary diskspace will be freed.
Press ctrl-c now to exit if you want to remove some boxes or freeup some disk space.
Press the Enter or Return key to continue.No vagrant-config.yml found, using defaultsBringing machine 'worker-001' up with 'virtualbox' provider...Bringing machine 'control-01' up with 'virtualbox' provider...==> worker-001: Box 'CiscoCloud/microservices-infrastructure' could not be found. Attempting to find and install...    worker-001: Box Provider: virtualbox    worker-001: Box Version: >= 0==> worker-001: Loading metadata for box 'CiscoCloud/microservices-infrastructure'    worker-001: URL: https://atlas.hashicorp.com/CiscoCloud/microservices-infrastructure==> worker-001: Adding box 'CiscoCloud/microservices-infrastructure' (v0.7) for provider: virtualbox    worker-001: Downloading: https://atlas.hashicorp.com/CiscoCloud/boxes/microservices-infrastructure/versions/0.7/providers/virtualbox.box    worker-001: Progress: 6% (Rate: 915k/s, Estimated time remaining: 0:17:34)
On Monday, February 8, 2016 6:44 PM, Ashish Mehrotra<EMAIL_ADDRESS>wrote:

Content of Vagrantfile -   config.vm.provider "virtualbox"  config.vm.provider "vmware_fusion"
  config.vm.box = "CiscoCloud/microservices-infrastructure"
On CLI - $ vagrant upBringing machine 'default' up with 'virtualbox' provider...There are errors in the configuration of this machine. Please fixthe following errors and try again:
vm:* The box 'CiscoCloud/microservices-infrastructure' could not be found.
$ vagrant box add CiscoCloud/microservices-infrastructureThis command was not invoked properly. The help for this command isavailable below.
Usage: vagrant box add   [--provider provider] [-h]
        --checksum VALUE             Checksum        ....$ vagrant box add microservices-infrastructure --provider CiscoCloudThis command was not invoked properly. The help for this command isavailable below.
Usage: vagrant box add   [--provider provider] [-h]
        --checksum VALUE             Checksum        Even for a new folder and trying to create a Vagrant file and getting it up -
$ vagrant init CiscoCloud/microservices-infrastructure; vagrant up --provider virtualboxA Vagrantfile has been placed in this directory.  Please readthe comments in the Vagrantfile as well as documentation onvagrantup.com for more information on using Vagrant.Bringing machine 'default' up with 'virtualbox' provider...There are errors in the configuration of this machine. Please fixthe following errors and try again:
vm:* The box 'CiscoCloud/microservices-infrastructure' could not be found.
$ vagrant init CiscoCloud/microservices-infrastructure; vagrant up --provider CiscoCloudA Vagrantfile has been placed in this directory.  Please readthe comments in the Vagrantfile as well as documentation onvagrantup.com for more information on using Vagrant.The provider 'CiscoCloud' could not be found, but was requested toback the machine 'default'. Please use a provider that exists.
On Monday, February 8, 2016 6:18 PM, Ryan Eschinger<EMAIL_ADDRESS>wrote:

can you paste in the output of vagrant box list on your machine?—
Reply to this email directly or view it on GitHub.

@ashmehro Glad it worked out :) let us know if you have any other problems/questions!


Support for SteelSeries Sensei Ten

How hard would you estimate it to be adding support for SteelSeries Sensei Ten mouses?
MCU: STM32F103T6U6A ( https://www.techpowerup.com/review/steelseries-sensei-ten/4.html )
Sensor: TrueMove Pro (based off the PixArt PMW3389.)
Also: Is the assumption that the innards of the Sensei 310 are identical to the ones of the Rival 310 reasonable?

support should be pretty straightfoward, just need to figure out what is connected to what, the pcbs are different, but it might be similar enough that no changes are required

Good to hear, then I'll probably try to do so.

Yeah, you just need to create a new config for the stm32f1-generic target (see https://github.com/openinput-fw/openinput/blob/main/src/targets/stm32f1-generic/config/rival310.h for an example), and add a symlink to stm32f103t6.ld for your config in https://github.com/openinput-fw/openinput/tree/main/config/linker/stm32f1-generic.

What about the SROM data?
Can the generic one be used before a special one is extracted?
How would it be extracted?

Also is the bootloader that is responsible for flashing a new firmware protected against overwrite?
Or is there something to care about to prevent a hardbrick.

The firmware blob for the sensor should go to https://github.com/openinput-fw/sensor-blobs, and we'll generate a header that can be used in the code.
We don't have a bootloader yet, just the firmware. You can either flash it directly, or keep the stock bootloader. If you want to keep the stock bootloader, you will have to change linker script to put the ROM in 0x08002000 IIRC. We have reverse engineered the Steelseries update protocol used in the Rival 310 and friends, which I am pretty sure is the same use in the Sensei Ten. You should be able to use tools in https://github.com/openinput-fw/openinput/tree/main/tools to generate the CRC and flash the firmware.
Though, we'd recommend to flash directly, if you have that option. Though maybe it's better if you dump the original memory first so that you can go back. You can do this by flashing a custom firmware that just reads out the memory, that's what @perigoso did, I don't know if he still has the source around.
We want to write a custom bootloader and then a dummy firmware that can be flash with the original bootloader and will replace it with our bootloader, but that is still a TODO :stuck_out_tongue:.

How would I extract the firmware blob for the sensor?
How would "flashing directly" work?
Dumping the original memory would be great. Should it be possible to attach a debug probe and read the ROM via that?
Does the bootloader implement the update protocol? If so how would the firmware be updated after a firmware without a bootloder is flashed?

How would I extract the firmware blob for the sensor?

Your device as an external eeprom, right? It should be stored there.

How would "flashing directly" work?

Plugging a debug probe, like a st-link, and flash the firmware that way.

Dumping the original memory would be great. Should it be possible to attach a debug probe and read the ROM via that?

Possibly, though I think they probably enabled readout protection. If that is the case, you will have a to use the method I described -- flashing a custom firmware via the original bootloader to dump the contents.

Does the bootloader implement the update protocol? If so how would the firmware be updated after a firmware without a bootloder is flashed?

Yes, it does. If you flash it directly (remove the bootloader), you will only be able to update with the debug probe, and not USB. For now at least :wink:

Your device as an external eeprom, right? It should be stored there.

Will check as soon as I have it.

Possibly, though I think they probably enabled readout protection. If that is the case, you will have a to use the method I described -- flashing a custom firmware via the original bootloader to dump the contents.

Ok.

Yes, it does. If you flash it directly (remove the bootloader), you will only be able to update with the debug probe, and not USB. For now at least.

Then I'll keep the original bootloader for now probably.

I dont recall what i did exactly to extract the original fw, i was just hacking around.
I had mixed results when keeping the original bootloader, i dont konw what they do there, but the firmware a lot of time just didnt work, while working fine when flashed directly.
I you do end up flashing with a debug probe you can restore the original state with the probe as well, provided you have the original fw

Is there a reason for baking the sensor firmware into the normal firmware instead of also taking it from the eeprom like to stock firmware?

I think we want to do that in the future, but for now it is simpler to do it this way.

@FFY00 Ok
@perigoso Do you still have the code the code to dump the flash?
I used https://github.com/doegox/stm32f1-firmware-extractor but the result is not complete, so most probably not runnable.

No, I dont.
If i recall, I flashed a custom firmware that was loaded with the stock bootloader, that then dumped the contents of the mcu and the external eeprom through swo

Okay. By any chance could you give me a dump of the stock bootloader?

Here you can find most  of what we figured fromt he 310, the bootloader dump is not there, i have to see if i find it and upload it too.
https://github.com/perigoso/rival310-re

@t-8ch Thanks.
I flashed openinput which works mostly but the motion burst data received from the sensor is not parsed correctly.
Then I tried to go back to the vanilla firmware which didn't work because the bootloader was also gone and I don't have an intact version of it.
I managed to make it work by manually creating a stub bootloader consisting of 0028 0020 1970 0008 and a lot of zeros, setting the stack and PC to the firmware values.
The mouse is fairly unhappy, both LEDs are blinking red, all hidraw devices are gone, but it's still capable of properly running the basic mouse functions.
Now I just have to figure how the data is to be interpreted.
The attached file for example are motion burst reports (register 0x50) while the mouse is being moved at 4000DPI and then lifted.
burst_reports.txt

Sorry Im not following, you're saying the sensor is not being read properly?

Yes. The motion burst always reports 0 for the delta values.
Looking at the "Motion" byte in the motion burst report shows that the sensor is in "Rest mode 1", although Rest mode should be disable via the Config2 (0x10) register.

If you want I can provide SPI traces for both cases.

are you uploading the right fw blob? the truemove3 blob should not be compatible

I have not yet tested with the pmw3389, so the driver might be doing something wrong, datasheets are obtainable
I'll look at the captures in a bit

Yes, it's the correct blob. I also added CRC checks (not in the trace) and it give the correct result.

Can you point me to the datasheet? The only one I found did only specify the numbers of the registers, not how they are to be used.

ah, yeah pixart is terrible with info on their sensors, I dont think theres any more detailed DS around

Well, from everything I'm looking at, this should just work, the behavior should be the same as in the 3360

I still could not get it to work.
Except when not uploading the SROM; then it works nicely.

what have you tried? we can try to modify the driver until the startup matches the stock exactly, from there we can figure out what we're missing

This is what I tried. I'll try to produce another SPI dump tomorrow and look again.

right, sorry I'm not paying much attention to this
I'd like to try something myself but sadly I don't have anything with a pmw3389, or the sensor itself

Ugh, I must have that sensor somewhere, because I did order one, but I just can't find it.


GET Request on new DNS Resources can take up to 1 min to fully enumerate due to data replication

A troubleshooting effort recently surfaced that a GET request on a new DNS resource can take up to 1 minute to fully enumerate due to data replication.   Support advised to query the individual recordsets within the DNS zone directly as those results will be immediately available.    API reference: https://docs.microsoft.com/en-us/rest/api/dns/record-sets/get
I don't see this articulated anywhere in the documentation for either Azure DNS or the specific REST API documentation.  Can you confirm and possibly update the documentation to reflect this?

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

ID: dd0a3a26-4d9a-9dde-734d-1ed812852bed
Version Independent ID: 0402dbe1-91b2-2adf-15b6-4b90a5bcda3e
Content: FAQ - Azure DNS
Content Source: articles/dns/dns-faq.yml
Service: dns
GitHub Login: @rohinkoul
Microsoft Alias: rohink

Thanks for the feedback! I have assigned the issue to the content author to investigate this and update the document as appropriate.

Hi - I've assumed ownership of this article. I am reassigning the issue to myself. We currently have a large backlog of GitHub issues so I'm prioritizing these and working them as I am able.  Please reply to this thread if you are still experiencing an issue with the article that is referenced, or if you feel the issue can be closed now.  Thanks! #reassign:greg-lindsay


The inactive products should not be visible on the product view page.

Terms

[X] Before you openning this issue, i have checked if the issue has already been reported.

Bagisto Version(s) affected
Master
Issue Description
The user is able to access the inactive product. by the product's URL.
Preconditions
The product that the user trying to access by URL. should be inactive from the admin panel.
Steps to reproduce
1. Go to the 'admin panel'
2. Inactive any product from catalog/products 'Section'.
3. Visit the shop.
4. Try to access the inactive product by URL
5. See an error
Expected Result
The user should not be able to access the inactive product. by URL
Actual Result
The user is able to access the inactive product. by the product's URL.
Screenshots
No response
Additional context
No response

assign this issue to me


Segfault immediately after boot on CoreOS minions on GCE

Kubernetes configuration:
export KUBE_GCE_ZONE=europe-west1-d
export KUBE_GCE_INSTANCE_PREFIX=tdsm

export KUBE_OS_DISTRIBUTION=coreos

export MASTER_SIZE=f1-micro
export MASTER_DISK_SIZE=10GB
export KUBE_GCE_MASTER_PROJECT=coreos-cloud
export KUBE_GCE_MASTER_IMAGE=coreos-stable-717-3-0-v20150710

export MINION_SIZE=n1-standard-1
export MINION_DISK_SIZE=10GB
export KUBE_GCE_MINION_PROJECT=coreos-cloud
export KUBE_GCE_MINION_IMAGE=coreos-stable-717-3-0-v20150710

export NUM_MINIONS=1

export CONTAINER_RUNTIME=rkt

Hangs on:
MINION_NAMES=tdsm-minion-c87v
Using master: tdsm-master (external IP: <IP_ADDRESS>)
Waiting for cluster initialization.

  This will continually check to see if the API for kubernetes is reachable.
  This might loop forever if there was some uncaught error during start
  up.

Due to a segfault in systemd on the minion (cause unknown?):
...

[  OK  ] Started Modifies /etc/environment for CoreOS.

         Starting gce-coreos-cloudinit.service...

[  OK  ] Started Authorization Manager.

[  OK  ] Started Update Engine.

[  OK  ] Started Cluster reboot manager.

         Starting Cluster reboot manager...

         Starting Generate /run/coreos/motd...

         Starting Wait for Network to be Configured...

[  OK  ] Started Wait for Network to be Configured.

[  OK  ] Reached target Network is Online.

         Starting Fetch kubernetes-node-environment...

[  OK  ] Started Generate /run/coreos/motd.

[  OK  ] Reached target Multi-User System.

[  OK  ] Started Fetch kubernetes-node-environment.

[   12.230137] traps: systemd[1] general protection ip:7fa3c76593e2 sp:7ffcf3656dc0 error:0 in systemd[7fa3c7572000+146000]

[   12.351804] systemd-coredum[587]: segfault at 0 ip 00007f626d32c2b7 sp 00007ffc2b070430 error 6 in systemd-coredump[7f626d31b000+16000]

This is tdsm-minion-c87v.c.chris-kay.internal (Linux x86_64 4.0.5) 18:51:23

SSH host key: 27:30:40:2c:aa:87:31:dc:71:54:5f:09:c5:7b:ce:ab (DSA)

SSH host key: 9b:0d:1d:c3:7e:a2:24:0d:a3:f8:b3:c9:e1:85:53:8f (ED25519)

SSH host key: 36:1d:91:b6:03:bd:1b:fb:da:6f:3e:e3:7c:5b:e0:ab (RSA)

ens4v1: <IP_ADDRESS> fe80::4001:aff:fef0:ffa5

tdsm-minion-c87v login:

cc @kelseyhightower

Slightly different chain of events in 752 alpha of CoreOS:
[    6.720291] systemd[1]: Started Wait for Network to be Configured.

[    6.724274] systemd[1]: Reached target Network is Online.

[    6.727656] systemd[1]: Starting Network is Online.

[    6.729632] systemd[1]: Starting Fetch kubernetes-node-environment...

[    6.735270] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Wrote unit "kubelet.service"

[    6.736875] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Writing unit "kube-proxy.service" to filesystem

[    6.739127] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Writing file to "/etc/systemd/system/kube-proxy.service"

[    6.741073] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Wrote file to "/etc/systemd/system/kube-proxy.service"

[    6.743265] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Wrote unit "kube-proxy.service"

[    6.745059] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Writing unit "rkt-metadata.socket" to filesystem

[    6.747112] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Writing file to "/etc/systemd/system/rkt-metadata.socket"

[    6.748902] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Wrote file to "/etc/systemd/system/rkt-metadata.socket"

[    6.751532] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Wrote unit "rkt-metadata.socket"

[  OK  ] Started Fetch kubernetes-node-environment.

[    6.756098] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Writing unit "rkt-metadata.service" to filesystem

[    6.763119] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Writing file to "/etc/systemd/system/rkt-metadata.service"[    6.768172] traps: systemd[1] general protection ip:7eff713bde02 sp:7ffee8259790 error:0 in systemd[7eff712d5000+14c000]

[    6.770792] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Wrote file to "/etc/systemd/system/rkt-metadata.service"

[    6.775202] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Wrote unit "rkt-metadata.service"

[    6.776755] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Ensuring runtime unit file "etcd.service" is unmasked

[    6.778800] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Ensuring runtime unit file "etcd2.service" is unmasked

[    6.780742] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Ensuring runtime unit file "fleet.service" is unmasked

[    6.782682] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Ensuring runtime unit file "locksmithd.service" is unmasked

[    6.784782] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Calling unit command "start" on "kube-env.service"'

[    6.786894] systemd[1]: Started Fetch kubernetes-node-environment.

[    6.788349] systemd[1]: kubernetes-install-rkt.service: Ignoring invalid environment assignment 'KUBELET_CERT: 'Q2VydGlmaWNhdGU6CiAgICBEYXRhOgogICAgICAgIFZlcnNpb246IDMgKDB4MikKICAgICAgICBTZXJpYWwgTnVtYmVyOiAyICgweDIpCiAgICBTaWduYXR1cmUgQWxnb3JpdGhtOiBzaGEyNTZXaXRoUlNBRW5jcnlwdGlvbgogICAgICAgIElzc3VlcjogQ049MTMwLjIxMS45OC4zMkAxNDM3Nzc3ODM2CiAgICAgICAgVmFsaWRpdHkKICAgICAgICAgICAgTm90IEJlZm9yZTogSnVsIDI0IDIyOjQzOjU3IDIwMTUgR01UCiAgICAgICAgICAgIE5vdCBBZnRlciA6IEp1bCAyMSAyMjo0Mzo1NyAyMDI1IEdNVAogICAgICAgIFN1YmplY3Q6IENOPWt1YmVsZXQKICAgICAgICBTdWJqZWN0IFB1YmxpYyBLZXkgSW5mbzoKICAgICAgICAgICAgUHVibGljIEtleSBBbGdvcml0aG06IHJzYUVuY3J5cHRpb24KICAgICAgICAgICAgICAgIFB1YmxpYy1LZXk6ICgyMDQ4IGJpdCkKICAgICAgICAgICAgICAgIE1vZHVsdXM6CiAgICAgICAgICAgICAgICAgICAgMDA6Yjk6MDc6MjI6ZjQ6NzA6MzI6NTY6MTQ6Yzk6Y2Y6YWI6NGE6NTQ6OTc6CiAgICAgICAgICAgICAgICAgICAgNzA6OGI6YWU6ODE6OGI6YmU6OGY6YjM6YWE6ZjI6MmU6NjQ6OWE6Zjg6Mjg6CiAgICAgICAgICAgICAgICAgICAgNDI6NjY6NzU6MjQ6MzA6NmQ6ZTM6NGU6M2M6NzY6MmI6OWQ6MTE6NDM6NWI6CiAgICAgICAgICAgICAgICAgICAgNDg6MTE6ZDQ6NDA6MWU6N2Q6NjQ6MWQ6YzE6NmI6Y2Y6ZTA6YjY6ZDY6NjE6CiAgICAgICAgICAgICAgICAgICAgYjM6YjU6ODU6MjY6MmQ6NGY6MmI6MTY6MmY6ZDY6NjI6MjI6M2Q6ZDA6NjY6CiAgICAgICAgICAgICAgICAgICAgM2I6NDM6Y2Q6MmU6Zjc6NGM6N2U6ZDU6ZmU6ZGM6NTc6Yjg6ODk6OTk6OTg6CiAgICAgICAgICAgICAgICAgICAgMWE6ZmQ6ZTM6ZDM6MGQ6OTI6ZDM6OGI6Yzc6MTU6YzA6MTI6OWQ6YzY6ZWE6CiAgICAgICAgICAgICAgICAgICAgNDk6MGE6MzY6Njg6OWU6NjA6Yzg6ZmQ6MWY6Nzg6OGQ6MGE6NGU6ZWQ6MmU6CiAgICAgICAgICAgICAgICAgICAgMGE6MmE6M2U6YmI6ZmU6OTg6NTk6ZTA6MjA6OTY6Nzk6MTY6N2I6NTc6OTQ6CiAgICAgICAgICAgICAgICAgICAgMWM6MDI6NTY6YWQ6NmU6ZDQ6NGM6ODc6YzI6OGM6YTc6YmQ6ZTk6ZTk6YTE6CiAgICAgICAgICAgICAgICAgICAgZGU6ZGI6ZmM6NTY6YjA6ZWU6NjM6M2Y6YjQ6MTM6M2Q6ZGM6NDE6MTI6ZDU6CiAgICAgICAgICAgICAgICAgICAgODg6YmM6OTI6MmU6NjE6NWY6MGI6ZDg6ZWE6MDQ6Yjg6MGM6OTA6ZGI6Mjg6CiAgICAgICAgICAgICAgICAgICAgNmI6ZGQ6NjY6MjE6OGM6ZDU6ZjY6MTI6MWU6NmQ6MWM6YzQ6OTY6MzY6MjE6CiAgICAgICAgICAgICAgICAgICAgMGE6ODg6NDY6YjI6Yzk6MzQ6MWI6NDQ6M2Y6NDI6NjI6MTg6NzE6ZDA6ODQ6CiAgICAgICAgICAgICAgICAgICAgMGU6Nzk6ODI6M2I6NWQ6YjQ6YjA6NWY6MmQ6ODY6ZGU6MWE6NDM6YjQ6YTk6CiAgICAgICAgICAgICAgICAgICAgMzc6YTc6NTc6MTE6NDI6M2I6ZDE6YmE6OTU6NmU6Yjg6YTU6NmU6Y2I6YTE6CiA

[    6.945205] systemd[1]: Caught <SEGV>, dumped core as pid 647.

[    6.946782] systemd[1]: Freezing execution.

[    6.948130] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Result of "start" on "kube-env.service": done

[    6.950988] gce-coreos-cloudinit[591]: 2015/07/24 22:45:22 Calling unit command "start" on "kubernetes-install-rkt.service"'

[    6.952804] locksmithd[606]: locksmithd starting currentOperation="UPDATE_STATUS_IDLE" strategy="best-effort"

[    7.563888] systemd-coredump[648]: Process 647 (systemd) of user 0 dumped core.

interesting...

FWIW, I can expect there will be some issues when running containers using rkt as there are some patches still pending. But I am not expecting a segfault here...

@CJKay From the log, seems like a systemd bug. Have you had a chance to try some other coreos version images?

@yifan-gu Only coreos-stable-717-3-0-v20150710 and coreos-alpha-752-1-0-v20150723 so far.

I ran into this error as well, posted about it on the mailing list.
To summarize the post, I believe that KUBE_CERT exceeds systemd's ARG_MAX limit, which I'm guessing is ~4k.  Obviously things won't work if it's ignoring one of the environment variables we expect to have, segfault or not.

Ok I think ARG_MAX is not the problem, I think that error was shown because those base64 values happened to have a '=' in them and systemd actually expects the kube-env file to be in KEY=VALUE format, not yaml format like it is now.  The '=' made it look like it might be a KEY=VALUE pair, but it's not the right format for that so it throws that error, which I mistakenly interpreted as an ARG_MAX problem.  I manually fixed this and restarted the instance and it was able to start up just fine.  I haven't found what generates this kube-env file, but if it's not a difficult change I'll try to send out a PR for it later today.

Fixed by https://github.com/kubernetes/kubernetes/pull/12872.