Track SynchronousQueue and AbstractQueued(Long)Synchronizer during lock profiling

SynchronousQueue is in fact a separate synchronization primitive, that doesn't build on top of ReentrantLock.

I don't think this is a desired default behavior to include queue wait time when profiling contended locks. E.g. if you have a regular thread pool, all its idle threads will be waiting on a blocking queue. This is absolutely normal; idle threads are not very interesting.

It's true that this is not a source of lock contention per se, but waiting on enqueueing something into queues, associated with executors such as ThreadPoolExecutor and ForkJoinPool, and waiting on dequeueing from some queues in some other cases, could be a real source of pauses in the application, possibly unexpected and due to inefficiencies in the code or misconfiguration (e. g. of queue sizes). Hunting down and eliminating all such pauses (which are not only caused by lock contention) is one of the things that the process of profiling is after.

What do you think about adding an option that doesn't do any filtering of Unsafe/LockSupport's park sources? Or calling it a different "profiling event", e. g. "park" or "wait"?

Yes, adding "park" profiling event seems a reasonable option.

I've prototyped this feature (https://github.com/leventov/async-profiler/commit/510462c94d201f732d105ecbb616942c7c705b93) but admittedly results are 99% noisy. To make any sense out of them, flamegraph should support more advanced filtering capabilities. Created https://github.com/brendangregg/FlameGraph/issues/168.

I have a question about this as well.  I have a highly asynchronous processing application, with some threads spending the vast majority of their time in LockSupport.parkNanos()/Unsafe.park().  These are showing up as high CPU "usage" in the flamegraph.
In my opinion, these are "idle" threads, as they are not burning CPU cycles, as least as CPU is viewed externally on the same machine.  Is there a reason these appear in the flamegraph?  I'm trying to get an accurate picture of where the application is actually spending CPU cycles.

@brettwooldridge Parking/unparking does not come for free. It involves non-trivial logic both inside JVM and OS kernel. This indeed can be CPU consuming when called too often.
If you got this flame graph from async-profiler in cpu mode, I'm pretty sure it points you to a real hot spot. Otherwise idle threads don't even have a chance to receive profiler signal. Note that lock profiling mode is quite different - it is not related to CPU usage at all.
Can you share a bit more details on how you run the profiler and what (unexpected) results you got?

Closing the issue, as the wall-clock profiling mode along with filtering options (#187) should cover this use case.


TechDocs flashing on navigation

Expected Behavior
As you click a navigation item, the content that you were previously viewing should remain visible (and stable) until the new content is loaded. At that time, the content should change to the new content.
Actual Behavior
For Tech Docs with a left-hand navigation, the content flashes multiple times as you click a navigation item. This is a poor user experience and is distracting.
Steps to Reproduce

Navigate to a doc set like https://demo.backstage.io/docs/default/component/backstage/getting-started/create-an-app/.
Click the next link down in the left hand nav
Notice the blinking page.
Sometimes it's a bar then blinking. Sometimes just blinking.

Context
The unnecessary blinking is distracting to the user.
If the navigation requires a progress bar, which I assume is a round-trip to the backend service, and is sometimes seen, the content you are moving off of should still remain visible until the new content is loaded.
Your Environment
This happens in our deployed app as well as https://demo.backstage.io/

Browser Information: Google Chrome Version 105.0.5195.102 (Official Build) (x86_64)

Output of yarn backstage-cli info:

OS:   Darwin 21.4.0 - darwin/x64
node: v14.19.3
yarn: 1.17.3
cli:  0.17.2 (installed)

Dependencies:
  @backstage/app-defaults             0.1.9, 0.2.1, 1.0.5
  @backstage/backend-common           0.9.3, 0.13.5
  @backstage/catalog-client           1.0.4
  @backstage/catalog-model            0.9.8, 0.13.0, 0.9.10, 1.1.0
  @backstage/cli-common               0.1.9
  @backstage/cli                      0.10.0, 0.17.2
  @backstage/codemods                 0.1.38
  @backstage/config-loader            0.6.10, 0.8.1, 1.1.3
  @backstage/config                   0.1.11, 0.1.15, 1.0.1
  @backstage/core-api                 0.2.1, 0.2.23
  @backstage/core-app-api             0.2.1, 0.1.24, 0.3.1, 0.4.0, 0.5.4, 0.6.0, 1.0.5
  @backstage/core-components          0.8.1, 0.9.1, 0.9.2, 0.11.0, 0.3.3, 0.7.6, 0.8.10, 0.9.5
  @backstage/core-plugin-api          0.3.1, 0.4.0, 0.1.13, 0.2.2, 0.4.1, 0.5.0, 0.6.1, 0.7.0, 0.8.0, 1.0.5
  @backstage/core                     0.7.14
  @backstage/dev-utils                0.2.25, 1.0.5
  @backstage/errors                   0.1.5, 1.0.0, 1.1.0, 0.2.2
  @backstage/integration-react        0.1.23, 0.1.25, 1.1.3
  @backstage/integration              0.6.10, 0.7.5, 0.8.0, 1.3.0
  @backstage/plugin-api-docs          0.8.8
  @backstage/plugin-catalog-common    1.0.5
  @backstage/plugin-catalog-react     1.1.3
  @backstage/plugin-catalog           1.5.0
  @backstage/plugin-explore-react     0.0.20
  @backstage/plugin-explore           0.3.39
  @backstage/plugin-home              0.4.24
  @backstage/plugin-org               0.5.8
  @backstage/plugin-permission-common 0.5.3, 0.6.3
  @backstage/plugin-permission-react  0.3.4, 0.4.4
  @backstage/plugin-scaffolder-common 1.1.2
  @backstage/plugin-scaffolder        1.5.0
  @backstage/plugin-search-common     0.3.4, 0.3.5, 1.0.0
  @backstage/plugin-search-react      0.2.1, 1.0.1
  @backstage/plugin-search            0.5.6, 0.9.0
  @backstage/plugin-stack-overflow    0.1.4
  @backstage/plugin-techdocs-node     0.11.12
  @backstage/plugin-techdocs-react    1.0.3
  @backstage/plugin-techdocs          0.12.10, 1.3.1
  @backstage/plugin-user-settings     0.3.14, 0.4.7
  @backstage/release-manifests        0.0.4
  @backstage/search-common            0.2.4, 0.3.4
  @backstage/test-utils               0.1.24, 0.2.6, 0.3.0, 1.1.3
  @backstage/theme                    0.2.14, 0.2.9, 0.2.16
  @backstage/types                    1.0.0, 0.1.3
  @backstage/version-bridge           0.1.2, 1.0.1

@rodmachen, can you try upgrading to the latest version? 1.5 is the latest stable and 1.6 should be out on around the 20th of September. The demo site is also on an old version (1.0.1) and I'm pretty sure this has been fixed just not sure in what version but for sure after 1.0

We are on 1.3, but this is happening on demo.backstage.io. What version is that on?
We do have a plan to upgrade to 1.6 in the next few weeks.

Was able to verify this using Fast 3G throttling on Chrome locally. I think it's due to a race condition when the style sheets are loading. Firefox doesn't seem to have this issue because the opacity of the old element is not changing to 0 when the new page is being loaded, here.
I would check your cache settings, are you using S3/Google Storage? Maybe add a cache control to reduce chances of the race condition.

Yes, using S3.

Firefox doesn't seem to have this issue because the opacity of the old element is not changing to 0 when the new page is being loaded, here.

Honestly not familiar with how this part of it works. Are you suggesting that Firefox doesn't exhibit this because it ignores this line? Trying to figure out what a permanent fix would be.

I would check your cache settings, are you using S3/Google Storage? Maybe add a cache control to reduce chances of the race condition.

Using S3 for storage, not sure what the demo site uses but it exhibits the same behavior. Can you elaborate on this? Is the goal to simply allow the browser to cache the content for longer? That seems it would still mean users would experience this behavior on first or future visits, no?

Are you suggesting that Firefox doesn't exhibit this because it ignores this line?
Actually not sure, I was just trying to test in Firefox and noticed that the opacity wasn't updating which gave the illusion that it didn't have the same problem.

Is the goal to simply allow the browser to cache the content for longer?
I believe so. At least on the demo site, the style sheets that get loaded are the exact same ones that were previously loaded but the default behaviour is return a 304 instead of allowing the browser to cache the resources. The extra round trip time triggers the race condition (I think).

I'm honestly not sure what a permanent fix would look like, maybe @camilaibs could help? I think she worked on the last iteration.

Ah interesting. I can confirm that on my setup I also get a 304 when the flashing occurs.

@camilaibs Any thoughts on this? I think I've pinpointed what's causing the issue, but not sure what the solution would look like on our side. As you worked on the last fix, any help would be appreciated :)

@camilaibs Hadn't realized this had closed, I think this is still an issue.

This docs behavior is definitely rough to see, and I agree that it may hinder adoption. @hoyon do you think you could create a PR with the changes you've already made, even if it doesn't contain a total fix yet?

Just wanted to comment here that this is resulting in a delay in adoption by other teams with docs within our organization. It would be great to get a fix!

Still an issue, and it hinders adoption

any updates on this? we got the same issue
OS:   Windows_NT 10.0.19045 - win32/x64
node: v18.12.0
yarn: 1.22.19
cli:  0.22.7 (installed)
backstage:  1.14.0
Dependencies:
@backstage/app-defaults                               1.3.1
@backstage/backend-app-api                            0.4.3, 0.5.10, 0.7.0
@backstage/backend-common                             0.18.5, 0.19.9, 0.20.1, 0.21.7
@backstage/backend-dev-utils                          0.1.1, 0.1.3, 0.1.4
@backstage/backend-plugin-api                         0.5.2, 0.6.17, 0.6.9
@backstage/backend-tasks                              0.5.14, 0.5.2, 0.5.22
@backstage/backend-test-utils                         0.2.4
@backstage/catalog-client                             1.4.1, 1.5.2, 1.6.4
@backstage/catalog-model                              1.3.0, 1.4.3, 1.4.5
@backstage/cli-common                                 0.1.12, 0.1.13
@backstage/cli-node                                   0.1.0, 0.2.2, 0.2.5
@backstage/cli                                        0.22.7
@backstage/config-loader                              1.3.0, 1.6.1, 1.8.0
@backstage/config                                     1.0.7, 1.1.1, 1.2.0
@backstage/core-app-api                               1.8.0
@backstage/core-components                            0.12.5, 0.13.1, 0.13.10
@backstage/core-plugin-api                            1.5.1, 1.8.2
@backstage/dev-utils                                  1.0.15
@backstage/errors                                     1.1.5, 1.2.3, 1.2.4
@backstage/eslint-plugin                              0.1.3
@backstage/frontend-plugin-api                        0.5.0
@backstage/integration-aws-node                       0.1.12, 0.1.3, 0.1.8
@backstage/integration-react                          1.1.13, 1.1.23
@backstage/integration                                1.10.0, 1.4.5, 1.8.0
@backstage/plugin-api-docs                            0.9.3
@backstage/plugin-app-backend                         0.3.45
@backstage/plugin-auth-backend                        0.18.3
@backstage/plugin-auth-node                           0.2.14, 0.3.2, 0.4.12, 0.4.3
@backstage/plugin-badges-backend                      0.2.0
@backstage/plugin-badges                              0.2.42
@backstage/plugin-catalog-backend-module-gitlab       0.2.1
@backstage/plugin-catalog-backend-module-ldap         0.5.33
@backstage/plugin-catalog-backend                     1.9.1
@backstage/plugin-catalog-common                      1.0.13, 1.0.20, 1.0.22
@backstage/plugin-catalog-graph                       0.2.30
@backstage/plugin-catalog-import                      0.9.8
@backstage/plugin-catalog-node                        1.11.1, 1.3.6
@backstage/plugin-catalog-react                       1.6.0, 1.9.3
@backstage/plugin-catalog                             1.11.0
@backstage/plugin-devtools-backend                    0.1.0
@backstage/plugin-devtools-common                     0.1.0
@backstage/plugin-devtools                            0.1.0
@backstage/plugin-github-actions                      0.5.18
@backstage/plugin-home                                0.5.2
@backstage/plugin-kubernetes-backend                  0.11.0
@backstage/plugin-kubernetes-common                   0.6.3
@backstage/plugin-kubernetes                          0.9.0
@backstage/plugin-org                                 0.6.8
@backstage/plugin-permission-backend                  0.5.20
@backstage/plugin-permission-common                   0.7.12, 0.7.13, 0.7.5
@backstage/plugin-permission-node                     0.7.20, 0.7.28, 0.7.8
@backstage/plugin-permission-react                    0.4.12, 0.4.19
@backstage/plugin-proxy-backend                       0.2.39
@backstage/plugin-scaffolder-backend                  1.14.0
@backstage/plugin-scaffolder-common                   1.3.0, 1.4.5
@backstage/plugin-scaffolder-node                     0.1.3
@backstage/plugin-scaffolder-react                    1.4.0, 1.7.1
@backstage/plugin-scaffolder                          1.13.1, 1.17.1
@backstage/plugin-search-backend-module-catalog       0.1.1
@backstage/plugin-search-backend-module-pg            0.5.6
@backstage/plugin-search-backend-module-techdocs      0.1.1
@backstage/plugin-search-backend-node                 1.2.1
@backstage/plugin-search-backend                      1.3.1
@backstage/plugin-search-common                       1.2.3, 1.2.10, 1.2.11
@backstage/plugin-search-react                        1.6.0
@backstage/plugin-search                              1.3.0
@backstage/plugin-shortcuts                           0.3.10
@backstage/plugin-sonarqube-backend                   0.1.10
@backstage/plugin-sonarqube-react                     0.1.5
@backstage/plugin-sonarqube                           0.6.7
@backstage/plugin-tech-insights-backend-module-jsonfc 0.1.29
@backstage/plugin-tech-insights-backend               0.5.11
@backstage/plugin-tech-insights-common                0.2.10
@backstage/plugin-tech-insights-node                  0.4.3
@backstage/plugin-tech-insights                       0.3.10
@backstage/plugin-tech-radar                          0.6.4
@backstage/plugin-techdocs-backend                    1.6.2
@backstage/plugin-techdocs-module-addons-contrib      1.0.13
@backstage/plugin-techdocs-node                       1.7.1
@backstage/plugin-techdocs-react                      1.1.15, 1.1.6
@backstage/plugin-techdocs                            1.6.2
@backstage/plugin-user-settings                       0.7.3
@backstage/release-manifests                          0.0.9
@backstage/test-utils                                 1.3.1
@backstage/theme                                      0.2.19, 0.3.0, 0.4.4, 0.5.0
@backstage/types                                      1.0.2, 1.1.1
@backstage/version-bridge                             1.0.4, 1.0.7

@backstage/techdocs-maintainers think this is still relevant

any updates on the flickering issue? it's been 2 years ..

Hi, would be great to get more feedback on this using the latest Backstage version including examples and perhaps a video example. I can't reproduce this on the Demo site but if someone can that's great. Also, very much open to contributions!
I do see this related issue on the Demo site which might be masking the flickering: https://github.com/backstage/backstage/issues/25504

@awanlin It's pretty straightforward to duplicate on the demo site, https://demo.backstage.io/docs/default/component/backstage/features/software-catalog/descriptor-format/ with 3G toggling. You can see this happen in the last few seconds of this video,
https://github.com/backstage/backstage/assets/159921952/bd4d6559-912f-4774-a9cb-6ed043cc92b0
Even with the cache enabled, this is happening and you can see in my DevTools that I'm getting an S3 response for every CSS request for https://demo.backstage.io/api/techdocs/static/docs/default/component/backstage/assets/stylesheets/main.6543a935.min.css, so it's weirdly not being cached which I think is causing this bug.

Awesome, many thanks @aramissennyeydd. I think I was very focused on expecting "flickering" but I for sure see this delayed loading bar when I load each page. 👍

We are experiencing a different kind of "flickering" which is a bit faster.
We are using a minIO bucket for storage and is always placed right next to our Backstage.
I have tried to use the cache (redis/memory) for TechDocs but couldn't get it working.
https://github.com/backstage/backstage/assets/6181362/dd62053f-23ff-4943-9d5a-35756191c00e

Great to hear @awanlin, we are currently on 1.28.3

Hi @Fuglen - would you be able to open up your network tab and provide another video just to make sure that the cause of your flickering is due to the same re-requested CSS? Just to help us confirm that this is indeed caused by the same bug.

Really awesome to see a PR to possibly fix this 🙌
@johnphilip283 I have just updated my previous comment with a new video :)

Hi @aramissennyeydd, the PR just got merged today but I was wondering if you'd be open to trying the nightly release after tomorrow? The change was just in @backstage/plugin-techdocs so it should be pretty easy to get in place: https://www.npmjs.com/package/@backstage/plugin-techdocs?activeTab=versions
Note: to be super clear the fix is NOT in the nightly release yet, that will happen around 9:30pm CST.

@awanlin, I won't be able to test this until after the weekend, but I can take a look at the nightly release then.

Thanks @aramissennyeydd, for sure, sorry if my wording was poor, not expecting you to work on the weekend!

Thanks for the PR, it definitely made an improvement on the flickering issue. But the issue still persist,
To replicate it: go to https://demo.backstage.io/docs/default/component/backstage/plugins/create-a-plugin/ , set to a slower network, like fast 3G and try to navigate between pages within the techdoc.
Yes I think it is the opacity set to 0 thing that is causing part of it, is it possible to give us an option to disable that?


[Bug]: Combobox - Maximum recursive updates exceeded

Reproduction
https://stackblitz.com/edit/is2sf6?file=src%2FApp.vue
Describe the bug
Combobox is unable to render more than 100 elements. This can be easily reproduced when altering any combobox example from the docs to show more than 100 elements at a time.
Opening the popover results in the  fallback to be displayed.
When opening the popover, this error message gets thrown in the browser console:
Maximum recursive updates exceeded. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.
I have read a bit about it and this radix-vue issue seems related:
https://github.com/radix-vue/radix-vue/issues/551
System Info
System:
    OS: macOS 14.2
    CPU: (10) arm64 Apple M1 Pro
    Memory: 73.25 MB / 16.00 GB
    Shell: 5.9 - /bin/zsh
  Binaries:
    Node: 18.17.0 - ~/.nvm/versions/node/v18.17.0/bin/node
    npm: 9.6.7 - ~/.nvm/versions/node/v18.17.0/bin/npm
  Browsers:
    Chrome: 122.0.6261.94
    Firefox: 119.0
    Safari: 17.2
  npmPackages:
    @vueuse/core: ^10.9.0 => 10.9.0
    radix-vue: ^1.4.9 => 1.4.9
    vue: ^3.4.19 => 3.4.19

Contributes

[ ] I am willing to submit a PR to fix this issue
[ ] I am willing to submit a PR with failing tests

I am also having the same issue

I have this issue as well. I figured that until 100 items go fine, everything above 100 items will cause this issue 🤔

I'm also having this issue, I have ~100/200 items

I'm also having this issue, 300 items

same problem here. works for under ~100 items

With the latest version of radix, it no longer shows this error but it's still VERY slow for larger lists.
I think ListboxVirtualizer may fix the issue but I don't know if it's directly usable here.

the fix works for me!
maybe you can try this as workaround

I have the same issue in v1.9.0

a weird fix, for those using nuxt 3,  go to CommandInput.vue and wrap the whole thing btween a ClientOnly component, like this:
<ClientOnly>

      <Search class="mr-2 size-4 shrink-0 opacity-50" />
      <ComboboxInput
        v-bind="{ ...forwardedProps, ...$attrs }"
        auto-focus
        :class="cn('flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50', props.class)"
      />

  </ClientOnly>

a weird fix, for those using nuxt 3,  go to CommandInput.vue and wrap the whole thing btween a ClientOnly component, like this:
<ClientOnly>

      <Search class="mr-2 size-4 shrink-0 opacity-50" />
      <ComboboxInput
        v-bind="{ ...forwardedProps, ...$attrs }"
        auto-focus
        :class="cn('flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50', props.class)"
      />

  </ClientOnly>

somehow this fixes it and it works with larger arrays of items

Do you have a fix for Vite?

@phuclh maybe try to add const isBrowser = typeof window !== 'undefined'; and add it to the parent div as v-if="isBrowser" didnt test it, just speclating that this what clientOnly does in nuxt 3

I have 1000 entries, getting same error, so I implemented solution provided by @lazbeta for now.
Probably would be optimized to implement async search for larger datasets.
In script setup:
const usersComboboxOpen = ref(false);
const usersSearchTerm = ref("");
const users = usePage().props.users;
const userEntriesLimit = 50;
const filteredUsers = computed(() => {
  if (usersSearchTerm.value.length < 3) {
    return users.slice(0, userEntriesLimit);
  }

  const filtered = users.filter((user) =>
    user.label.toLowerCase().includes(usersSearchTerm.value.toLowerCase())
  );

  if (filtered.length > userEntriesLimit) {
    return filtered.slice(0, userEntriesLimit);
  }

  return filtered;
});

In template:
<Popover v-model:open="usersComboboxOpen">
  <PopoverTrigger as-child>
    <Button
      variant="outline"
      role="combobox"
      :aria-expanded="usersComboboxOpen"
      class="justify-between px-3"
    >
      {{
        form.user_id
          ? users.find((user) => user.value === form.user_id)?.label
          : "Select user..."
      }}
      <ChevronsUpDownIcon class="ml-2 size-4 shrink-0 opacity-50" />
    </Button>
  </PopoverTrigger>
  <PopoverContent class="p-0">
    <Command v-model:searchTerm="usersSearchTerm">
      <CommandInput
        class="h-9"
        placeholder="Search user..."
      />
      <CommandEmpty>No users found.</CommandEmpty>
      <CommandList
        <CommandGroup>
          <CommandItem
            v-for="user in filteredUsers"
            :key="user.value"
            :value="user.label"
            @select="
              () => {
                form.user_id = user.value;
                usersComboboxOpen = false;
              }
            "
          >
            {{ user.label }}
            <CheckIcon
              :class="
                cn(
                  'ml-auto size-4 shrink-0',
                  form.user_id === user.value
                    ? 'opacity-100'
                    : 'opacity-0'
                )
              "
            />
          </CommandItem>
        </CommandGroup>
      </CommandList>
    </Command>
  </PopoverContent>
</Popover>

Seems it's working good in v1.9.3, and it should be rendered better in v2
Closing as a stale issue

I confirm it works with latest (1.9.5) version. Problem was in 1.9.1 for me. I tried with 1000 and 250 items and both work. The 1000 one has some minor "lag" so I still prefer the solution above which limits the entire list. 250 items is instant render.

I confirm it works with latest (1.9.5) version. Problem was in 1.9.1 for me. I tried with 1000 and 250 items and both work. The 1000 one has some minor "lag" so I still prefer the solution above which limits the entire list. 250 items is instant render.

Thanks @kikky7 , I update radix-vue into 1.9.11 then readd the combobox component, works fine using Laravel Inertia


Kext does not work on macOS Catalina (10.15.7)

On macOS Catalina, loading the kext results in the following output:
Kext with invalid signature (-67050) allowed: <OSKext 0x7fa1dee20210 [0x7fff8f4d7ce0]> { URL = "file:///Library/Extensions/AMDMicrophone.kext/", ID = "com.qhuyduong.AMDMicrophone" }
Code Signing Failure: code signature is invalid
Warnings:
    Info dictionary property value is of incorrect type:
        IOKitPersonalities.AMDMicrophone.IOProbeScore - should be <integer>

Warnings:
    Info dictionary property value is of incorrect type:
        IOKitPersonalities.AMDMicrophone.IOProbeScore - should be <integer>

Disabling KextAudit: SIP is off
(kernel) kxld[com.qhuyduong.AMDMicrophone]: The following symbols are unresolved for this kext:
(kernel) kxld[com.qhuyduong.AMDMicrophone]: 	_kernel_task
(kernel) Can't load kext com.qhuyduong.AMDMicrophone - link failed.
(kernel) Failed to load executable for kext com.qhuyduong.AMDMicrophone.
(kernel) Kext com.qhuyduong.AMDMicrophone failed to load (0xdc008016).
(kernel) Failed to load kext com.qhuyduong.AMDMicrophone (error 0xdc008016).
Failed to load /Library/Extensions/AMDMicrophone.kext - (libkern/kext) link error.
Check library declarations for your kext with kextlibs(8).

I no longer do hackintosh. PR is welcome.


clear/lock key doesn't seem to be bindable

It just doesn't work. I tried skhd --observe, and when I press it I get: keycode 0x47, then in skhdrc I bind ctrl+alt-0x47 : … to something, but nothing happens.

The same problem is occurring.
The clear key does not work when assigned.


src/github.com/sandlbn/libvirt-go/cfuncs.go:6:10: fatal error: libvirt/libvirt.h: No such file or directory

I get this in my console when I run a go project which import  shis libvirt-go.

github.com/sandlbn/libvirt-go
src/github.com/sandlbn/libvirt-go/cfuncs.go:6:10: fatal error: libvirt/libvirt.h: No such file or directory
#include <libvirt/libvirt.h>
^~~~~~~~~~~~~~~~~~~
compilation terminated.

what‘s wrong？what should i do?

FYI, this repo is deprecated now in favour of using   https://github.com/libvirt/libvirt-go   which took this initial work upto 100% API coverage.
That said, your error message is caused by missing the native libvirt development header files. You need to install libvirt-devel / libvirt-dev  packages.

thanks reply，it works after I install libvirt-devel packages.


System.InvalidOperationException when class inherits from Dictionary

It seems AutoBogus throws an exception when trying to generate a class that inherits from a typed Dictionary.  Should this work or will I need to use the AutoGeneratorOverride?
Reproduction
using System;
using System.Collections.Generic;

public class Program
{
    public static void Main()
    {
        var faker = new AutoBogus.AutoFaker<Bar>();
        var bars = faker.Generate(10);

        foreach(var bar in bars)
        {
            Console.WriteLine(bar.Id);
        }
    }

    public class Bar
    {
        public Guid Id {get;set;}
        public Foo Properties {get;set;}
    }

    public class Foo : Dictionary<Guid, string>
    {
        public Foo() {}
        public Foo(IDictionary<Guid, string> dictionary) : base(dictionary) {}
    }
}

Stack Trace:
Unhandled exception. System.InvalidOperationException: Sequence contains more than one element
   at System.Linq.ThrowHelper.ThrowMoreThanOneElementException()
   at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source)
   at AutoBogus.AutoGeneratorFactory.ResolveGenerator(AutoGenerateContext context)
   at AutoBogus.AutoGeneratorFactory.GetGenerator(AutoGenerateContext context)
   at AutoBogus.AutoBinder.PopulateInstance[TType](Object instance, AutoGenerateContext context, IEnumerable`1 members)
   at AutoBogus.Generators.TypeGenerator`1.AutoBogus.IAutoGenerator.Generate(AutoGenerateContext context)
   at AutoBogus.AutoBinder.PopulateInstance[TType](Object instance, AutoGenerateContext context, IEnumerable`1 members)
   at AutoBogus.Generators.TypeGenerator`1.AutoBogus.IAutoGenerator.Generate(AutoGenerateContext context)
   at AutoBogus.AutoFaker`1.<>c__DisplayClass28_0.<PrepareCreate>b__0(Faker faker)
   at Bogus.Faker`1.Generate(String ruleSets) in C:\projects\bogus\Source\Bogus\Faker[T].cs:line 458
   at AutoBogus.AutoFaker`1.Generate(String ruleSets)
   at Bogus.Faker`1.<>c__DisplayClass49_0.<Generate>b__0(Int32 i) in C:\projects\bogus\Source\Bogus\Faker[T].cs:line 480
   at System.Linq.Enumerable.SelectRangeIterator`1.ToList()
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at Bogus.Faker`1.Generate(Int32 count, String ruleSets) in C:\projects\bogus\Source\Bogus\Faker[T].cs:line 479
   at AutoBogus.AutoFaker`1.Generate(Int32 count, String ruleSets)
   at Program.Main()

Hey @sdbrannum,
I have taken a look at this and it seems that inheriting from Dictionary is making AutoBogus attempt to populate all the inherited properties as well, but can't resolve some of the types. I have put a fix in place which I am testing and will let you know when the new version is published.
Nick.

@nickdodd79 it looks like 2.9.0 resolved this issue.  I appreciate the package and the quick turnaround!


SqlQuery to allow setting of null paramexpressions for select

For update, we can set a path parameter to null:
	sqlQueryFactory.update(USAGE_GET)
	.setNull(USAGE_GET.foo);

However for select, there is no such method. For example:
            public static final Param<Array> v_foo = new Param<>(Array.class, "v_foo");
	StringTemplate strTemplate = Expressions.stringTemplate("UsageGet ( {0} )", v_foo);
	sqlQueryFactory.select(USAGE_GET)
			.from(strTemplate)
			.set(v_foo, aArray)
			.fetch();

Setting aArray to null causes an exception to be thrown, and there is no setNull() method.

@haffar  Could you provide more insight on the terms used? USAGE_GET and also the Exception that you got?

@tan31989 USAGE_GET is an instance of QUsageGet, defined as:
private static final QUsageGet USAGE_GET = QUsageGet.usageget;
QUsageGet is a class I created which defines all the columns being returned by the UsageGet stored procedure. It looks like this:
public class QUsageGet extends com.querydsl.sql.RelationalPathBase {
private static final long serialVersionUID = 393399721;
public static final QUsageGet usageget = new QUsageGet("UsageGet");
public final NumberPath usercount = createNumber("usercount", Integer.class);
// more code
}
If I set the parameter v_foo to null, such as:
sqlQueryFactory.select(USAGE_GET)
.from(strTemplate)
.set(v_foo, null)
.fetch();
This is the exception:
Caused by: java.lang.NullPointerException: null value in entry: {v_foo}=null
at com.google.common.collect.CollectPreconditions.checkEntryNotNull(CollectPreconditions.java:33) ~[guava-18.0.jar:?]
at com.google.common.collect.SingletonImmutableBiMap.(SingletonImmutableBiMap.java:39) ~[guava-18.0.jar:?]
at com.google.common.collect.ImmutableBiMap.of(ImmutableBiMap.java:57) ~[guava-18.0.jar:?]
at com.google.common.collect.ImmutableMap.of(ImmutableMap.java:80) ~[guava-18.0.jar:?]
at com.querydsl.core.util.CollectionUtils.put(CollectionUtils.java:119) ~[querydsl-core-4.0.9.jar:?]
at com.querydsl.core.DefaultQueryMetadata.setParam(DefaultQueryMetadata.java:331) ~[querydsl-core-4.0.9.jar:?]
at com.querydsl.core.support.QueryMixin.set(QueryMixin.java:384) ~[querydsl-core-4.0.9.jar:?]
at com.querydsl.core.support.QueryBase.set(QueryBase.java:176) ~[querydsl-core-4.0.9.jar:?]

Just a confirmation @haffar are you using querydsl-sql?
This is due to the fact that, set uses, an ImmutableMap to save the key and its value to update.
Now, given the fact the ImmutableMap is from a library com.google.common.collect, they have a valid reason for not using ImmutableMap for setting a null value.
In the first case (if I am right that you are using querydsl-sql), the setNull uses a normal java util Map to save the updates.
@timowest any reason for setParam in DefaultQueryMetadata (querydsl-core), points to CollectionUtils which uses the ImmutableMap to store the key value to set. I think, setParam could have used Map other than google's ImmutableMap, because it could be a set null in this case right?

@tan31989 yes I am using querydsl-sql

Mostly immutability reasons.


Enabling JDWP tests

This PR enables JDWP tests on all the platforms for IBM Jdk8, openjdk8, openjdk11 & openjdk17 except on Aixppc platform.
Fixes: runtimes/backlog/issues/477
Signed off by : Soumya Biradar<EMAIL_ADDRESS>

Re : https://github.com/adoptium/aqa-tests/pull/4106#pullrequestreview-1168645325 - second that. Please do not merge this PR until all intermittent issues are resolved (re: backlog/477).

@llxia @karianna I still see few issues with grinder submission, working on it.

Since it is WIP, I will covert this PR to draft.

@sobirada Looks like you need to sign the ECA as well.

Suggest we close this as stale in favour of a fresh PR.  Please reopen as you see fit (with changes and ECA ready).


Kick new user after sending stickers

With /restrict option, it is said that user can send only plain text. But it's OK to send stickers, and shieldy even do not ban them, and do not delete entry message (we also set this parameter and usually it works great).

This is probably due to another bug that allows some users to pass through without being checked. I'll fix it today :) Stickers should be removed by /restrict :)


Use get_variable to limited parameters search range

Dear Dr.Lu
I noticed you have done some scaling in the definition of parameters.

However in the definition of dynamic equations you didn't rescale the parameters ，shouldn't these two equations be multiplied by 100
，like  Ub = 100 * get_variable(72 / 100, Ub_) . Won't it affect the results if you don't scale?

If you notice not all are scaled by 100. We used change of variables here to simplify the equations a bit.

Yes，just some of the parameters did this scale ，but if we didn't rescale them to the original magnitude ，won't this affect the results?

By the way ，I meet some problems in doing inverse problem with a complex ode system，I would be very grateful if you could give me some advice！！ @mitchelldaneker
https://github.com/lululxvi/deepxde/issues/1022#issue-1442188479

The reason we only do some if that by changing these, it does not change the physical problem statement just the organization of the equations. If we changed all of them, it would change the model in this case but by changing the few we selected, it has no effect on the system. You can check out this article on the topic if you need.
As for your inverse problem, I do not know what your equations are but you may need to reweight some of the losses. Just because they are small does not necessarily mean the predictions are good. Some of your losses differ by 2 or 3 orders of magnitude which could be leading to your issues.


OnText fires twice per Message

hey,
as the title says, if you handle the OnText event, it will be fired twice per Message.

can’t reproduce — please comment if it’s still an issue


docker paketobuildpacks/builder -created 41 years ago?

i was playing around with building image for a demo springboot(2.5.0) project using docker
./mvnw spring-boot:build-image
Why does paketobuildpacks/builder show created 41 years ago in the output of docker images command? was it created 41 years ago?

Hi there. The Paketo builders are created using the pack CLI. For that reason, the image metadata is affected by the "consequences and caveats" listed here on the CNB documentation site.

@fg-j can this be used in production? is it production-ready?

Paketo buildpacks, stacks, and builders are designed to build apps into production-ready container images, by default.
If you're interested in chatting with folks who are currently using and developing Paketo buildpacks, builders, and stacks, I encourage you to join our Slack!

@fg-j thank you for the clarification


Set apicurio and backstage endpoints

I set the endpoints in the deployment for backstage app. Working in my cluster.

This is needed  by https://github.com/Apicurio/backstage/pull/10

@riprasad Can we merge this one?


Unexpectedly found nil crash

I've found this plugin fatally crashes when my phone is in an audio call and I try to record an audio. I've got everything wrapped in try catch blocks and it still fatally crashes the app.
Xcode throws an error here, something about trying to implicitly unwrap nil
    public func stopRecording() {
        do {
            audioRecorder.stop()
            try recordingSession.setActive(false)
            try recordingSession.setCategory(originalRecordingSessionCategory)
            originalRecordingSessionCategory = nil
            audioRecorder = nil
            recordingSession = nil
            status = CurrentRecordingStatus.NONE
        } catch {}
    }
    ```

can you share the call stack??

Hello guys,
Thank you very much providing the plugin !
I have same issue here, when microphone is used by an other app, the flow is corrupted and it crashes the app returning  "Unexpectedly found nil while implicitly unwrapping an Optional value".
I've trying many walkarounds, such as trycatch, check for ability to record via the "canDeviceVoiceRecord" method, catch startRecording throwing exception but still can't figure out what could be the solution.
what do you mean by share the call stack ?


add test case for ActiveRecord access post MongoId integration

Some quick specs to demonstrate the issue reported in #103

Pull Request Test Coverage Report for Build 389

6 of 6 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.02%) to 95.641%

Totals

Change from base Build 387:
0.02%

Covered Lines:
1141

Relevant Lines:
1193

💛  - Coveralls

Thanks for the quick changes, @olbrich. For what it's worth, they look good to me!


Question: Can the randomization code be separated out and called within a library

It's great that you've decided to maintain this tool :heart:
I am interested in doing all the memory layout randomization from within an LLVM compiled application of my own. I write in Julia (a programming language compiled using LLVM), and we're discussing how we can make our benchmarking tools handle memory layout issues better. My idea is to call a function that does the randomization, between benchmark evaluations.
Is the randomization functionality nicely encapsulated within a single C++ function? If so, which one? If not, is it possible to make it so? Perhaps only some of the randomization is possible this way? Perhaps it isn't possible to shuffle code about while it's running?
Many thanks :pray:

I think you are looking for onTimer(). It's called every 250 ms to rerandomize stack and functions layout.
But there are problems with stabilizer that I don't know how to solve with reasonable effort. Check other open issues before proceeding further ahead.


Random sweeping of jobs

Hi,
I'm working on an application relying on SAQ for its job scheduling part. I have ~50k objects that need to be kept up to date with data from external providers.
Each of those object have a different "update cycle", where a job runs every X hours and updates the object with data from the providers. Once the object update is finished, the job reschedules itself with the _after_process hook using arguments from the meta tag.
Each object have only one job, hence the custom job id in the form saq:job:default:job(scheduled=True, object_id='XXXX').
Using the _after_process allow me to re-enqueue the job without triggering the unique constraint, because the job is removed from the active/queued queue just before.
I've been tracking a bug in my application for a while now, where some of my objects get thrown out of their update cycle (meaning, their job don't reschedule themselves and are not updated anymore), and I realised that the jobs linked to those objects were swept seemingly randomly.
For each example I found, the reason for the sweep was that the job was in the QUEUED state, but was found in the active queue.
Here are my logs:
I, [2024-05-30T14:37:36.123 #7] INFO - Scheduled [b"saq:job:default:job(scheduled=True, object_id='61a8d5212c1653d2c4808b79')", b"saq:job:default:job(scheduled=True, id='61a9b4d175c7f28379b8f17c')"]

I, [2024-05-30T14:37:37.243 #7] INFO - Processing Job<function=job, kwargs={'object_id': '61a9b4d175c7f28379b8f17c'}, queue=default, id=saq:job:default:job(scheduled=True, object_id='61a9b4d175c7f28379b8f17c'), scheduled=1717079856, progress=0.0, start_ms=603675106, attempts=1, status=Status.ACTIVE, meta={}>

I, [2024-05-30T14:37:44.805 #7] INFO - Finished Job<function=job, kwargs={'object_id': '61a9b4d175c7f28379b8f17c'}, queue=default, id=saq:job:default:job(scheduled=True, object_id='61a9b4d175c7f28379b8f17c'), scheduled=1717079856, progress=1.0, process_ms=7694, start_ms=603675106, total_ms=603682800, attempts=1, result={'code': 200, 'asset': Object}, status=Status.COMPLETE, meta={'reschedule_kwargs': {'object_id': '61a9b4d175c7f28379b8f17c', 'deferred': 604338}}>

I, [2024-05-30T14:37:44.807 #7] INFO - Enqueuing Job<function=job, kwargs={'object_id': '61a9b4d175c7f28379b8f17c'}, queue=default, id=saq:job:default:job(scheduled=True, object_id='61a9b4d175c7f28379b8f17c'), scheduled=1717684202, progress=0.0, attempts=0, status=Status.QUEUED, meta={}>

I, [2024-06-06T14:30:02.652 #7] INFO - Scheduled [b"saq:job:default:job(scheduled=True, object_id='60dcbd77fc93fcd7e58dc214')", b"saq:job:default:job(scheduled=True, object_id='61a9b4d175c7f28379b8f17c')", b"saq:job:default:job(scheduled=True, object_id='6287ba5451ba86567cb348f0')"]

I, [2024-06-06T14:30:02.883 #7] INFO - Sweeping job Job<function=job, kwargs={'object_id': '61a9b4d175c7f28379b8f17c'}, queue=default, id=saq:job:default:job(scheduled=True, object_id='61a9b4d175c7f28379b8f17c'), scheduled=1717684202, progress=0.0, attempts=0, status=queued, meta={}>

I, [2024-06-06T14:30:02.906 #7] INFO - Finished Job<function=job, kwargs={'object_id': '61a9b4d175c7f28379b8f17c'}, queue=default, id=saq:job:default:job(scheduled=True, object_id='61a9b4d175c7f28379b8f17c'), scheduled=1717684202, progress=0.0, total_ms=604338078, attempts=0, error=swept, status=Status.ABORTED, meta={}>

I've been looking at the source code without getting somewhere, I can't seem to find any lead as to why random jobs get swept like that. Do you have any idea or pointers ? I'm assuming I do something wrong in my scheduling to lead in a state where a job is in the active queue but is in a QUEUED status, but I can't find what.
Thanks for the help

how are you re-enqueing jobs in after_process? maybe it's better to have jobs be set on a cron rather than having jobs re-enqueue themselves.
sweeping happens automatically. by default it happens every 60 seconds. if finds all jobs that are in the active queue. if the job is not active or is stuck then it will get swept.
when a job is processing, it dequeues, atomically, it moves a job from queued to active.
the job status is set to active in memory, and then update is called. it is possible for the sweep to happen before the update gets called thus sweeping the job for being in the queued state.

can you let me know if my change fixes the issues?

@paul-finary can you confirm if the latest release fixes the issue?

Hi,
Thanks for the quick fix, I tested and it appears that the issue is still present, albeit more rare. The reason is the same (job in QUEUED state in the active queue). I tried increasing the asyncio.sleep duration, but this led to another error popping: "Job XXX doesn't exist".
For now, I'll just try and only sweep jobs when they're stuck.
Let me know how I can help !

I'm seeing this as well. Seems to happen when a job's args are really large, so downloading/deserializing take a relatively long time.
I'm assuming the latest release will help a lot in my case.


[WIP] feat: kcp core apis

Stuff included in this PR:

Management Lifecycle (CRUDL) of core models in kcp: org, source, project, stack
Execution Lifecycle (build, preview, apply, destroy) on stacks
Persistence for said core models with SQL DB
Local (for testing only) and remote source
Local (for testing only) storage for states and specs

(WIP) Stuff incoming:

Lifecycle for workspace-related models: workspace, backend, variableSets, matchingRules, etc
Remote storage for states and specs
Project and stack initialization via KCP
Code quality improvement (UT, re-org, database constraints, etc)
Quality of life improvement (Get by name, remote, etc)

Tracking in #1033


[stable/rabbitmq-ha] Can we bring up the cluster if all nodes go down?

If we bring down all nodes simultaneously the cluster cannot get back up because all nodes, old master included, are looking for a cluster node that is up to connect to. I get the idea that this is a known/expected behaviour reading the discussion on https://github.com/helm/charts/issues/7682 .
So in case all nodes go down at the same time, can we somehow restore the cluster without losing data?

You have two options:

Use forceBoot=true if you don't care about data integrity and prefer availability
Use podManagementPolicy=Parallel if you don't care about availability and prefer integrity. You can't enable this option on an existing statefulset. You'll have to delete and install chart again.

You have two options:

Use forceBoot=true if you don't care about data integrity and prefer availability
Use podManagementPolicy=Parallel if you don't care about availability and prefer integrity. You can't enable this option on an existing statefulset. You'll have to delete and install chart again.

Thanks for the reply @steven-sheehy ! Can you please elaborate a bit on (2)? Does the stateful set pod management policy play a role in the way auto-discovery/election works?
What is the expected behaviour if a launch a cluster with 5 nodes and stateful set pods management policy podManagementPolicy=Parallel, then delete all pods at the same time? Will the pods get back in parallel (old master too) and restore the cluster?


MAINT, CI: Travis rackcdn->conda.org

transition to usage of anaconda.org for retrieving
NumPy pre-release ("nightly") wheels in Travis CI, because
continued dependence on rackcdn will eventually lead to charges
for the OSS community

the NUMPYSPEC lines for pre-release matrix entries were modified
based on the instructions (https://anaconda.org/scipy-wheels-nightly/numpy)
and local testing:

Use the new URL

Switch from -f (finding archives/tarballs at a URL) to -i
(use a PEP 503 compliant index like anaconda.org simple API format)

I'll mark with WIP until we check the logs for the pre-wheels and because the pre-wheels matrix entries are likely to fail until #12037 is resolved (bleeding-edge Cython issue).

We may need to split out the pre-wheel NumPy install since:
pip install -i https://pypi.anaconda.org/scipy-wheels-nightly/simple numpy ... other packages...
also tries to find things like cython on the nightly wheels URL. Testing locally, it also seems that using multiple -i specifiers leads to the use of the last one parsed for all packages.

Splitting the cython install (and anything else?) into separate pip commands sounds reasonable to me. Maybe CYTHON_PRE_WHEELS and NUMPY_PRE_WHEELS and to be explicit?

Ok, I've revised with an attempt to split up the pip install at the problem point. The default index should be used for all other packages now, I hope.

Seems to work, jobs are failing because of the Cython alpha issue.

CI is all green here now. Spot check if one of the pre-wheels runs shows numpy-1.19.0.dev0+86721b1 installed.
Other concerns?

LGTM, let's give this a go! Thanks Tyler


Create nodes in neo4j database using extracted PubMed data

Problem: We need to create nodes in the neo4j graph using the extracted PubMed documents by @DanielMcFall
Blocked on: Extraction of the fields from the documents themselves, also blocked on #4
Estimate: 5 hours

@jknlsn  to provide script which creates these nodes by EOW.

This should be done in #32


Add less than option for sensor cards with counting filter.

Describe the feature you'd like to have added
Currently a sensor card will emit a redstone signal if the requested item/fluid is greater than the amount in the counting card.
Equals support is implemented by using exact mode, this means we have support for:
amount >
amount =
However we do not have support for outputting a signal when the amount is lower than a specific value.
My suggestion is to change the exact mode button:

To instead be a greater than, less than or equal to button.
Greater than would mimic the old functionality with exact mode off, equal to mimics the old functionality with exact mode on, and less than would be new functionality.
Additional information
No response

+1 for this. Having a nightmare trying to use LaserIO to put just one block of stone at a time into a Blood Magic altar.

Would also like a way to filter count on zero items.  Like send a redstone signal if the inventory is empty so I can initiate an extract of items from another inventory (drawer into chest that get processed).  For now I will have to find another detection system.

Added to wishlist of features.


AADv2 Magic Code Not Returning Token From GetUserTokenAsync

Bot Info

SDK Platform: .Net
SDK Version: 3.15.3
Active Channels: Web Chat, Twilio
Deployment Environment: Azure App Service, Local Development

Issue Description
I followed the AADv2bot guide and created a bot, have it connected to AADv2, published to both Azure App Service and testing it locally.  The bot is also successfully connected to the Twilio channel.
The bot both locally and via Azure App Service with the web channel will present the "Sign In" button card, prompt for me to enter my credentials and will successfully call the MS Graph and return my name.
Twilio however will send a long url for me to copy and paste into a browser, I then sign in via the browser and receive a 6 digit 'magic code' and enter that magic code back into the sms message back to the bot.  However I am never authenticated with the magic code.  I tried debugging this locally and manually calling await context.GetUserTokenAsync(ConnectionName, MagicCode) and it just results null.
In a breakpont that I set, the GetTokenResponse has null for Token and the magic code value I entered in as the NonTokenRepsonse.  It appears the GetUserTokenAsync with the magic code is not working correctly.
Here I believe is the line of code returning the magic code back to me and not a token.
Code Example
private async Task ListMe(IDialogContext context, IAwaitable<GetTokenResponse> tokenResponse)
        {
            var token = await tokenResponse;

            // Twilio SMS using Magic Code hits below but will not return a token.
            if(token.NonTokenResponse != null)
            {
               var result =  await context.GetUserTokenAsync(ConnectionName, token.NonTokenResponse);
                // result is null when using magic code, the 'GetTokenDialog' calls this itself, but I was just verifying the value
                if(result != null)
                {
                    token.Token = result.Token;
                }

            }

            var client = new SimpleGraphClient(token.Token);

            var me = await client.GetMe();
            //var manager = await client.GetManager();

            await context.PostAsync($"Hello {me.DisplayName}!  You are signed in!");
        }

Reproduction Steps

Run this example: https://github.com/Microsoft/BotBuilder/tree/master/CSharp/Samples/AadV2Bot
Connect it to Twilio as an additional channel
Send 'me' in a text message to the SMS number setup and connected to the bot framework.
You will receive a long url to copy and put into your browser to authenticate
After authentication you will receive a 6 digit code
Enter the code back into SMS to the Twilio SMS number.
The GetTokenResponse will not contain a token, just a NonTokenRepsonse which is the code that was entered in.
Unable to call the MS Graph client without a token.

Expected Behavior
I would expect that the GetUserTokenAsync which accepts the connection name and magic code would return a token per this line (https://github.com/Microsoft/BotBuilder/blob/master/CSharp/Library/Microsoft.Bot.Builder/Dialogs/GetTokenDialog.cs#L116).
Actual Results
Instead of returning a token when using the magic code a GetTokenRepsonse is returned where Token is null and NonTokenResponse contains the magic code that was entered into the text message.

@adamhockemeyer  thanks for reporting this I have not tried Twilio myself yet, I will work on getting a reproduction set up and will report back with any information or possible workaround I find.

Thanks for reporting the issue @mkonkolowicz.

We have been able to reproduce this and are looking into a fix.

@adamhockemeyer @mkonkolowicz  We figured out that this is being caused by the '+' sign in the userId (which is the phone number) of a Twilio account.  As a workaround, I was able to test successfully by just removing the '+' from the Activity.From.Id property when it first hits the bot in the messages controller.  I did not extensively test this, but I was able to have sucess with the AADv2 sample.  Here is the simple code I was using.
 if (activity.Type == ActivityTypes.Message)
            {
                if (activity.ChannelId == ChannelIds.Sms && activity.From.Id.Contains("+"))
                {
                    activity.From.Id = activity.From.Id.Substring(1, activity.From.Id.Length - 1);
                }
                await Conversation.SendAsync(activity, () => new Dialogs.RootDialog());
            }

We will look into a more permanent fix, but for now use a similar work around to this.

Thanks, will test tomorrow.

The workaround was successful. I am able to log in via the sms channel. Please update this thread once the fix for this problem is in place, and then I will be able to remove the custom logic I've implemented as suggested above.

@JasonSowers seems the same problem is happening on the Slack channel. After sending the magic string, a null token is returned. Can you please try and repro?

FYI: During the  call GetUserTokenAsync(connectionName,activity.Text), where activity.Text is the magic string I notice the following exceptions in Debug:
Exception thrown: 'Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException' in Microsoft.Rest.ClientRuntime.dll
Exception thrown: 'Microsoft.Rest.TransientFaultHandling.HttpRequestWithStatusException' in mscorlib.dll

Looking into this, thank you for reporting.

Thank you for opening an issue against the Bot Framework SDK v3. As part of the Bot Framework v4 release, we’ve moved all v3 work to a new repo located at https://github.com/microsoft/botbuilder-v3. We will continue to support and offer maintenance updates to v3 via this new repo.
From now on, https://github.com/microsoft/botbuilder repo will be used as hub, with pointers to all the different SDK languages, tools and samples repos.
As part of this restructuring, we are closing all tickets in this repo.
For defects or feature requests, please create a new issue in the new Bot Framework v3 repo found here:
https://github.com/microsoft/botbuilder-v3/issues
For Azure Bot Service Channel specific defects or feature requests (e.g. Facebook, Twilio, Teams, Slack, etc.), please create a new issue in the new Bot Framework Channel repo found here:
https://github.com/microsoft/botframework-services/issues
For product behavior, how-to, or general understanding questions, please use Stackoverflow.
https://stackoverflow.com/search?q=bot+framework
Thank you.
The Bot Framework Team


Issue with IconButton Not Registering Click Events Inside Tab Container

Hello,
I've encountered an issue while using the tab_container feature. I've added an IconButton inside a tab, but it seems that the IconButton is not recognizing click events. I'm wondering if this is due to the tab possibly intercepting or blocking the click events intended for the IconButton.
Here's a brief description of my setup:
I'm using the tab_container widget.
Inside one of the tabs, I've placed an IconButton.
When clicking on the IconButton, no click events are being detected or triggered.
Could you please help me understand if this is a known issue, or if there's a specific way to handle click events for elements inside a tab? Any guidance or workaround to resolve this issue would be greatly appreciated.
Thank you for your time and assistance.

Fixed in version 3


[Python] Improve error messaging when installing pyarrow from source from sdist

When users do pip install pyarrow and in case this for whatever reason (unsupported platform, python version, ..) doesn't install a binary wheel, but downloads the sdist and tries to build pyarrow from source, this typically always fails (because such user typically doesn't have Arrow C++ already pre-installed) and generally with a quite confusing error message (about not having cmake, or about cmake not finding Arrow, ..)
In our setup.py, we might be able to detect / catch this situation? (not fully sure if that is entirely trivial) And in such a case provide a more informative error message?

Some things that we might be able to check and provide a clearer error message for:

is cmake available?
can cmake find Arrow C++
is the version of the found Arrow C++ the same as the pyarrow version that is being installed?


iOS: Questions about default CPU usage

I am performing a performance test using iPhone 5s. After starting a video chat, the CPU usage rises to about 150%. It gets hot after a few minutes. :)
Maybe I'm making a mistake, but I wonder what the default CPU usage is.
And let me know if you have any tips on solving high CPU usage issue.

By default you will be using VP8, which is not hardware accelerated, and that yields a higher CPU usage. You could try using H264, which uses the builtin hardware so it should use less CPU.

@saghul how does one change codec?

Is there an option? Or do I have to implement it myself?

Sorry @ramneekhanda I missed your reply! @HongSeokHwan yes, the only way to do it is to munge the SDP.

@saghul example please?

I don't have one handy, but it boils down to using sdp-transform to alter the order of the codec payload types in the m=video line.

Yeah I would just change the camera parameters to something low like 240x160. This significantly reduced my CPU usage. resplved by PR #288

@georgewwindsor I tried mocking your configuration
          video: {
            mandatory: {
              maxWidth: 240,
              maxHeight: 160,
              maxFrameRate: 10
            },
            facingMode: 'user',
            optional: frontSourceId ? [{ sourceId: frontSourceId }] : []
          }

This didn't seem to have a major affect on cpu. Is there something else you did?

@saghul following is the answer sdp generated by one of iphones when we were testing two iphones..
Question - I just need to reorder and bring h264 on the top if i want it to be used?
how does the device know that the h264 can be decoded by other phone? is that based on answer sdp?
{   "version": 0,   "origin": {     "username": "-",     "sessionId": "1161114873153247190",     "sessionVersion": 2,     "netType": "IN",     "ipVer": 4,     "address": "<IP_ADDRESS>"   },   "name": "-",   "timing": {     "start": 0,     "stop": 0   },   "groups": [     {       "type": "BUNDLE",       "mids": "audio video"     }   ],   "msidSemantic": {     "semantic": "WMS",     "token": "1D33F700-B9F6-4C31-A6B0-492E1DF42C0B"   },   "media": [     {       "rtp": [         {           "payload": 111,           "codec": "opus",           "rate": 48000,           "encoding": 2         },         {           "payload": 103,           "codec": "ISAC",           "rate": 16000         },         {           "payload": 104,           "codec": "ISAC",           "rate": 32000         },         {           "payload": 9,           "codec": "G722",           "rate": 8000         },         {           "payload": 102,           "codec": "ILBC",           "rate": 8000         },         {           "payload": 0,           "codec": "PCMU",           "rate": 8000         },         {           "payload": 8,           "codec": "PCMA",           "rate": 8000         },         {           "payload": 106,           "codec": "CN",           "rate": 32000         },         {           "payload": 105,           "codec": "CN",           "rate": 16000         },         {           "payload": 13,           "codec": "CN",           "rate": 8000         },         {           "payload": 110,           "codec": "telephone-event",           "rate": 48000         },         {           "payload": 112,           "codec": "telephone-event",           "rate": 32000         },         {           "payload": 113,           "codec": "telephone-event",           "rate": 16000         },         {           "payload": 126,           "codec": "telephone-event",           "rate": 8000         }       ],       "fmtp": [         {           "payload": 111,           "config": "minptime=10;useinbandfec=1"         }       ],       "type": "audio",       "port": 9,       "protocol": "UDP/TLS/RTP/SAVPF",       "payloads": "111 103 104 9 102 0 8 106 105 13 110 112 113 126",       "connection": {         "version": 4,         "ip": "<IP_ADDRESS>"       },       "rtcp": {         "port": 9,         "netType": "IN",         "ipVer": 4,         "address": "<IP_ADDRESS>"       },       "iceUfrag": "lGNc",       "icePwd": "ld2+P6xUuc8c1EeWh0D7LZpT",       "iceOptions": "renomination",       "fingerprint": {         "type": "sha-256",         "hash": "19:65:BC:C2:E4:9B:D2:AA:14:96:A8:48:27:9C:2F:10:92:C4:10:F6:01:34:38:57:CB:92:0D:DD:E8:B3:38:84"       },       "setup": "actpass",       "mid": "audio",       "ext": [         {           "value": 1,           "uri": "urn:ietf:params:rtp-hdrext:ssrc-audio-level"         }       ],       "direction": "sendrecv",       "rtcpMux": "rtcp-mux",       "rtcpFb": [         {           "payload": 111,           "type": "transport-cc"         }       ],       "ssrcs": [         {           "id":<PHONE_NUMBER>,           "attribute": "cname",           "value": "2fwfNUAcEpVDr5dT"         },         {           "id":<PHONE_NUMBER>,           "attribute": "msid",           "value": "1D33F700-B9F6-4C31-A6B0-492E1DF42C0B 24FE2172-F7B2-40E5-B8A7-D964811CCC2E"         },         {           "id":<PHONE_NUMBER>,           "attribute": "mslabel",           "value": "1D33F700-B9F6-4C31-A6B0-492E1DF42C0B"         },         {           "id":<PHONE_NUMBER>,           "attribute": "label",           "value": "24FE2172-F7B2-40E5-B8A7-D964811CCC2E"         }       ]     },     {       "rtp": [         {           "payload": 96,           "codec": "VP8",           "rate": 90000         },         {           "payload": 98,           "codec": "VP9",           "rate": 90000         },         {           "payload": 100,           "codec": "red",           "rate": 90000         },         {           "payload": 127,           "codec": "ulpfec",           "rate": 90000         },         {           "payload": 125,           "codec": "H264",           "rate": 90000         },         {           "payload": 97,           "codec": "rtx",           "rate": 90000         },         {           "payload": 99,           "codec": "rtx",           "rate": 90000         },         {           "payload": 101,           "codec": "rtx",           "rate": 90000         },         {           "payload": 124,           "codec": "rtx",           "rate": 90000         }       ],       "fmtp": [         {           "payload": 125,           "config": "level-asymmetry-allowed=1;packetization-mode=1;profile-level-id=42e01f"         },         {           "payload": 97,           "config": "apt=96"         },         {           "payload": 99,           "config": "apt=98"         },         {           "payload": 101,           "config": "apt=100"         },         {           "payload": 124,           "config": "apt=125"         }       ],       "type": "video",       "port": 9,       "protocol": "UDP/TLS/RTP/SAVPF",       "payloads": "96 98 100 127 125 97 99 101 124",       "connection": {         "version": 4,         "ip": "<IP_ADDRESS>"       },       "rtcp": {         "port": 9,         "netType": "IN",         "ipVer": 4,         "address": "<IP_ADDRESS>"       },       "iceUfrag": "lGNc",       "icePwd": "ld2+P6xUuc8c1EeWh0D7LZpT",       "iceOptions": "renomination",       "fingerprint": {         "type": "sha-256",         "hash": "19:65:BC:C2:E4:9B:D2:AA:14:96:A8:48:27:9C:2F:10:92:C4:10:F6:01:34:38:57:CB:92:0D:DD:E8:B3:38:84"       },       "setup": "actpass",       "mid": "video",       "ext": [         {           "value": 2,           "uri": "urn:ietf:params:rtp-hdrext:toffset"         },         {           "value": 3,           "uri": "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"         },         {           "value": 4,           "uri": "urn:3gpp:video-orientation"         },         {           "value": 5,           "uri": "http://www.ietf.org/id/draft-holmer-rmcat-transport-wide-cc-extensions-01"         },         {           "value": 6,           "uri": "http://www.webrtc.org/experiments/rtp-hdrext/playout-delay"         }       ],       "direction": "sendrecv",       "rtcpMux": "rtcp-mux",       "rtcpRsize": "rtcp-rsize",       "rtcpFb": [         {           "payload": 96,           "type": "ccm",           "subtype": "fir"         },         {           "payload": 96,           "type": "nack"         },         {           "payload": 96,           "type": "nack",           "subtype": "pli"         },         {           "payload": 96,           "type": "goog-remb"         },         {           "payload": 96,           "type": "transport-cc"         },         {           "payload": 98,           "type": "ccm",           "subtype": "fir"         },         {           "payload": 98,           "type": "nack"         },         {           "payload": 98,           "type": "nack",           "subtype": "pli"         },         {           "payload": 98,           "type": "goog-remb"         },         {           "payload": 98,           "type": "transport-cc"         },         {           "payload": 125,           "type": "ccm",           "subtype": "fir"         },         {           "payload": 125,           "type": "nack"         },         {           "payload": 125,           "type": "nack",           "subtype": "pli"         },         {           "payload": 125,           "type": "goog-remb"         },         {           "payload": 125,           "type": "transport-cc"         }       ],       "ssrcGroups": [         {           "semantics": "FID",           "ssrcs": "571867238<PHONE_NUMBER>"         }       ],       "ssrcs": [         {           "id": 571867238,           "attribute": "cname",           "value": "2fwfNUAcEpVDr5dT"         },         {           "id": 571867238,           "attribute": "msid",           "value": "1D33F700-B9F6-4C31-A6B0-492E1DF42C0B 63B63D06-C0CA-4392-A837-B8AABB4051CE"         },         {           "id": 571867238,           "attribute": "mslabel",           "value": "1D33F700-B9F6-4C31-A6B0-492E1DF42C0B"         },         {           "id": 571867238,           "attribute": "label",           "value": "63B63D06-C0CA-4392-A837-B8AABB4051CE"         },         {           "id":<PHONE_NUMBER>,           "attribute": "cname",           "value": "2fwfNUAcEpVDr5dT"         },         {           "id":<PHONE_NUMBER>,           "attribute": "msid",           "value": "1D33F700-B9F6-4C31-A6B0-492E1DF42C0B 63B63D06-C0CA-4392-A837-B8AABB4051CE"         },         {           "id":<PHONE_NUMBER>,           "attribute": "mslabel",           "value": "1D33F700-B9F6-4C31-A6B0-492E1DF42C0B"         },         {           "id":<PHONE_NUMBER>,           "attribute": "label",           "value": "63B63D06-C0CA-4392-A837-B8AABB4051CE"         }       ]     }   ] }

A Party's SDP Offer contains available codec preference of A.
B Party will replys SDP Answer contains available codec preference of B.
See RCF to know further negotiation detail and the priority. There are different algorithm depends on what your client/server used.
If it didn't match, one side will return Not Acceptable then failed.
you can remove unwanted rtp codecs and related params from your object then re-construct a new sdp.
For this party, you should read related codecs spec for SDP to know which param in sdp is related to specific codec.

How do I add a new codec? A new experimental video codec for example? I am aware that webrtc only supports 3 right now. But is it possible to do that?

By default you will be using VP8, which is not hardware accelerated, and that yields a higher CPU usage. You could try using H264, which uses the builtin hardware so it should use less CPU.

Thanks, it solved my problem


Local part of email is now case-sensitive after validation per RFC 5321.

Change Summary
Local part of email is now case-sensitive after validation by EmailStr per RFC 5321.
Related issue number
https://github.com/samuelcolvin/pydantic/issues/798
Checklist

[X] Unit tests for the changes exist
[x] Tests pass on CI and coverage remains at 100%
[x] Documentation reflects the changes where applicable
[X] changes/<pull request or issue id>-<github username>.rst file added describing change
(see changes/README.md for details)

Seems somewhat like a fluke coverage was lowered https://codecov.io/gh/samuelcolvin/pydantic/pull/801/changes

great, thanks so much.

cheers!


FlexibleAdapter Search Have BUG

Check the location of the red arrow in the screenshot.
Screenshots

Simple
https://github.com/tcqq/SimpleAdapter

@tcqq, I do not know what's that. You should enableLogs for the Adapter and discover.
DemoApp filter works with no bugs since very long time already.

View the picture above the arrow point to the location, item there is a gap, I feel this is because the "FlexibleAdapter" library  not notification.

I tried to delay notification of the FlexibleAdapter when the text changed, and as a result the problem was solved but the delay notification was not a real solution

@tcqq, you already have a delay as parameter for fitlerItems, which is ok to have because user is typing and the human time is different from cpu time.
However, you can only discover by enabling logs and see how many items are removed and inserted.

Yes, but the solution to the above code is not elegant, whether the library can fundamentally solve this problem?

This is a serious problem, the gaps in the layout were due to the fact that no notice was given when the data changed.

@tcqq, i do not know from here what is that gap, demoApp works perfectly with no delay. So once again, enable logs and check the execution flow. I can't help from here in this case.

"gap" is the distance the "item" and "item" between, I will do the same test on your demoApp and tell you the result.

@tcqq, check your logs first.

I conducted the test, but I didn't find anything unusual in the logs.

I conducted the same test on your demoApp, This is a screenshot after running

Check FlexboxLayoutManager.
Adapter Logs are perfect with 2 items (header+item filtered).

I did a lot of checks and tests, but the problem still exists. This question is certainly easier for you. I want to know where I was doing something wrong. Thank you very much.

@tcqq, when we put another LayoutManager the gap disappears, and from adapter logs, everything corresponds to the filter result expected.
It is not related to the adapter since this component manages the items not the layout. So my suspect is related to that.
Work on the layout, add more elements, you can't work with 1 element only in the section: you might see more clues. Add your logs, and try to debug of course. Try to change the item layout. Try to use the new adapter snapshot version which I restored the DiffUtil (However the notifications are ok with both methods).
Do investigation like this.

Feel the reply, I will hard try.


Don't hardcode A4

When doing an imgpdf, we had hardcoded A4 sizes.
This means we handed over a letter and in response got an A4.
This page makes sure the output PDF has the max width/height of the pages of the input document.

Thank you very much for your PR!

Wow that was fast! Thanks!


add numeric-separator transformer

Add numeric separator transformer.
This is a low hang fruit, why don't we pick it?

i think this already happens in oxc_codegen:
https://github.com/oxc-project/oxc/blob/44375a5662ee3e6451f1a5335c75d6379d1878a6/crates/oxc_codegen/src/gen.rs#L1151

i think this already happens in oxc_codegen:
https://github.com/oxc-project/oxc/blob/44375a5662ee3e6451f1a5335c75d6379d1878a6/crates/oxc_codegen/src/gen.rs#L1151
playground

Indeed, then we do not need  that for numberic literial.
bigint transformer is still in need anyway, right?

i guess so? not really familiar
https://github.com/oxc-project/oxc/blob/44375a5662ee3e6451f1a5335c75d6379d1878a6/crates/oxc_codegen/src/gen.rs#L1171
looks like it prints the raw val from the original source text

i guess so? not really familiar
https://github.com/oxc-project/oxc/blob/44375a5662ee3e6451f1a5335c75d6379d1878a6/crates/oxc_codegen/src/gen.rs#L1171
looks like it prints the raw val from the original source text

Good catch, it should be removed from the codegen.

we could probably minify in codegen

Close as not planeed.


Add code coverage badge.

Setup Codecov repo for project.
Added GitHub Action to upload data after running test when changes are pushed to the 'main' branch.


Card - Nutrient availability per person

Status
Work in progress.
User story
As a nutritionist, I want to compare nutrient availability per person under different scenarios.
Screenshot

Chart tab

Table tab

Download tab

Description
This card should allow users to compare individual scenarios to each other either in a chart view or table view. In the fan chart, you can compare 2 scenarios, in the table - all scenarios.
The scenarios displayed in the nutrient availability card are dependent on the selection in the Summary card (#786). It will be either socioeconomic, climate or all scenarios.
Chart
If socio-economic scenarios are selected, only SSP scenarios will be available for comparison.
If climate scenarios are selected - only, RCP scenarios will be available for comparison.
I all scenarios are selected, then the comparison is not available, and only a single chart is visible.
Table
The table displays selected micronutrient projections under different scenarios. It is similar to the mini-table in the Summary card (#786), but includes more details.

View table

Green values - intake above the recommended intake level
Red values - intake below the recommended intake level
Download tab
Users should be able to download:

All charts under selected scenarios
CSV file with data used to generate the charts and table

Success criteria

[ ] Switch between different tabs - chart, table and download

Chart

[ ] Compare 2 scenarios in the chart tab
[ ] Use a slider to compare the 2 selected charts
[ ] Table details - show the number of scenarios selected
[ ] Table details - show the year recommended intake will be reached for selected scenarios
[ ] Table details - Show the interpretation of the table. Values in bold are dynamic.

Table

[ ] The table displays data for all scenarios under selected group (socioeconomic, climate or all scenarios)
[ ] Values above recommended intake level are highlighted in green, below - in red

Download

[ ] Download graphs
[ ] Download table
[ ] Download data

Related issues

#784
#785
#786
#792

Card scaffolding complete


VSCode Extension - Generate Parameters File also outputs parameters with default values

Is your feature request related to a problem? Please describe.
When I select the "Generate Parameters File" option for Bicep files, it only adds in parameters with no default values.
Describe the solution you'd like
Ideally, I would like to see a parameters file with all parameters, including ones with default values, where the default values are in the parameters file as well.
If I have the following bicep code:
param location string
param EnvironmentPrefix string = 'ImageFactoryV2'

I should get the following parameters file:
{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
  "contentVersion": "<IP_ADDRESS>",
  "parameters": {
    "location": {
      "value": ""
    },
    "EnvironmentPrefix ": {
      "value": "ImageFactoryV2"
    }
  }
}

@polatengin -- I think we need to allow users to choose to include defaults or not, similar to how we handle it in ARM Tools. Thoughts?

Thank you for this feedback @dalehhirt, I think this is linked to #7126, we would want the behavior to match.
One question I have though @dalehhirt, when it comes to use of an expression like resourceGroup().location, we technically won't be able to put a true value in the generated params file. What would you expect to happen to that parameters in the main.parameters.json file? Should it be left out, or should it be added with a blank value? Or with Alex's idea, would you rather choose between including params with defaults in the first place?

Thank you for this feedback @dalehhirt, I think this is linked to #7126, we would want the behavior to match.
One question I have though @dalehhirt, when it comes to use of an expression like resourceGroup().location, we technically won't be able to put a true value in the generated params file. What would you expect to happen to that parameters in the main.parameters.json file? Should it be left out, or should it be added with a blank value? Or with Alex's idea, would you rather choose between including params with defaults in the first place?

I'm ok with Alex's idea, but if not, at a minimum, added with a blank value if it can't be calculated out.

@ucheNkadiCode , @dalehhirt
Please check #7758 and share your opinion.


Support to configure the cache size of vineyard fuse

Ⅰ. Describe what this PR does
Part of https://github.com/fluid-cloudnative/fluid/pull/3749

@TrafalgarZZZ Please also take a look. Thanks.


(Sortable.create) is it works with class ?

var el = document.getElementsById('simpleList');
var sortable = Sortable.create(el);
works fine
var el = document.getElementsByClassName('simpleList');
var sortable = Sortable.create(el);
while using class it shows this error in console:
el.addEventListener is not a function

Because el must be HTMLElement, and not HTMLCollection.
See docs: https://developer.mozilla.org/en/docs/Web/API/Document/getElementsByClassName

Hi people,i don't know you have find a answer or not. in my case, i cut my script part and pasted it after my sortable list. now its working..

If you are creating your item list dynamically, you might want to double check that the list is created before calling Sortable.create, that fixed it for me.

For those of you who did not find an answer, this is my code to create Sortable for all of the element using the same class:
"
for (var i = 0; i < $('.subsection').length; i++) {
Sortable.create(document.getElementsByClassName("subsection")[i], {
animation: 150
});
}
". HTMLCollection is an collection array of class element, that's it 💃
So yes, it could work with class.

This works fine for me. Thank you


Flaky browser test

I've seen several times of these kinds of random CI failures.
Links:

https://github.com/open-telemetry/opentelemetry-js/runs/5647907182?check_suite_focus=true
https://github.com/open-telemetry/opentelemetry-js/runs/5648434572?check_suite_focus=true (https://github.com/open-telemetry/opentelemetry-js/pull/2745)

1) should debug info that injecting headers was skipped
     fetch when request is successful when propagateTraceHeaderCorsUrls does NOT MATCH
     AssertionError: undefined === 'headers inject skipped due to CORS policy'
    at Context.eval (webpack-internal:///./test/fetch.test.ts:385:24)

Case 2:
1) should fallback to getEntries
     fetch when PerformanceObserver is undefined
     TypeError: Cannot read properties of undefined (reading '0')
    at Context.eval (webpack-internal:///./test/fetch.test.ts:547:43)

Links:

https://github.com/open-telemetry/opentelemetry-js/runs/5768068153?check_suite_focus=true

Case 3:
1) should create a span with correct root span
     fetch when request is successful
     TypeError: Cannot read properties of undefined (reading '0')
    at Context.eval (webpack-internal:///./test/fetch.test.ts:254:43)

2) should create a span for preflight request
     fetch when request is successful
     TypeError: Cannot read properties of undefined (reading '0')
    at Context.eval (webpack-internal:///./test/fetch.test.ts:295:43)

https://github.com/open-telemetry/opentelemetry-js/runs/5875767862?check_suite_focus=true (main)
I noticed as well that some instrumentation-fetch tests have been failing while working on some of my previous PRs. I hope I have not introduced additional flakiness in the last one (#2871).

We should really aim to get some browser experts into the team. It's not just about flaky tests, also the dependencies (see #2187) to e.g. webpack/karma (and related plugins) are not update since quite a while.


Interface to HiOp [hiop-dev]

Adds general interface for nonlinear optimization.
Connects to Cosmin Petra's HiOp optimization solver.
Companion web documentation: https://github.com/mfem/web/pull/24

PR
Author
Editor
Reviewers
Assignment
Approval
Merge

https://github.com/mfem/mfem/pull/616
@vladotomov
@tzanio
@bslazarov + @kmittal2
11/23/19
12/18/19
⌛due 12/25/19

The interface in solvers.hpp/cpp and hiop.hpp/cpp is mostly complete. The HiOp examples won't compile currently -- I'll fix them next week or when I come back from the IMR.

The interface in solvers.hpp/cpp and hiop.hpp/cpp is mostly complete. The HiOp examples won't compile currently -- I'll fix them next week or when I come back from the IMR.

overall, looks good to me. Indeed, drivers need updates, I see they're still using _Simple optimizer class. Let me know when you update the drivers, I would like to test the PR.

serial driver works fine. btw, I've done the todo related to caching the constraints.

This has stopped compiling for me with the following error:
linalg/hiop.cpp:311:24: error: ‘class hiop::hiopAlgFilterIPM’ has no member named ‘getNumIterations’
    final_iter = solver.getNumIterations();

That class in Hiop does not seem to have a getNumIterations member. Am I using the wrong version of Hiop? (I tried to update in git but it says I am up to date.)

This has stopped compiling for me with the following error:
linalg/hiop.cpp:311:24: error: ‘class hiop::hiopAlgFilterIPM’ has no member named ‘getNumIterations’
    final_iter = solver.getNumIterations();

That class in Hiop does not seem to have a getNumIterations member. Am I using the wrong version of Hiop? (I tried to update in git but it says I am up to date.)

It should build with the latest master branch of HiOp.

Updated the PR. Julian, the description of the examples is improved.

Can we add this to the priority list? Since it has 3 approvals, can I get a quick update if it is ready for next? @tzanio @v-dobrev

Can we add this to the priority list? Since it has 3 approvals, can I get a quick update if it is ready for next? @tzanio @v-dobrev

It is okay with me, but I believe @vladotomov wanted to take one final look...

Reminder: the reviews for this PR are due this week
cc: @kmittal2, @bslazarov

Hi, I cannot see the option MFEM_USE_HIOP in the default.cmake file in the config directory. How should I compile it with cmake?

@bslazarov, maybe you are looking at the wrong commit.
The enable option is here: https://github.com/mfem/mfem/blob/9b5609310db668e635a9ca5f5c9493533ec6160d/config/defaults.cmake#L45
The HiOp specific options are here: https://github.com/mfem/mfem/blob/9b5609310db668e635a9ca5f5c9493533ec6160d/config/defaults.cmake#L164-L167

Merged in next for testing...

The nightly tests on LC give a lot of warnings such as the ones listed below. Can you investigate and fix?
For the full list, see toss_3_x86_64_ib/2019-12-19-llnl-gh-next/build-test-basic.err in the mfem/autotest repo.
In file included from linalg/linalg.hpp(28),
                 from linalg/sparsemat.cpp(14):
linalg/solvers.hpp(341): warning #858: type qualifier on return type is meaningless
     const Operator * const GetC() const { return C; }
                      ^

In file included from linalg/linalg.hpp(28),
                 from linalg/sparsemat.cpp(14):
linalg/solvers.hpp(342): warning #858: type qualifier on return type is meaningless
     const Operator * const GetD() const { return D; }
                      ^

In file included from linalg/linalg.hpp(28),
                 from linalg/sparsemat.cpp(14):
linalg/solvers.hpp(343): warning #858: type qualifier on return type is meaningless
     const Vector * const GetEqualityVec() const { return c_e; }
                    ^

In file included from linalg/linalg.hpp(28),
                 from linalg/sparsemat.cpp(14):
linalg/solvers.hpp(344): warning #858: type qualifier on return type is meaningless
     const Vector * const GetInequalityVec_Lo() const { return d_lo; }
                    ^

In file included from linalg/linalg.hpp(28),
                 from linalg/sparsemat.cpp(14):
linalg/solvers.hpp(345): warning #858: type qualifier on return type is meaningless
     const Vector * const GetInequalityVec_Hi() const { return d_hi; }
                    ^

In file included from linalg/linalg.hpp(28),
                 from linalg/sparsemat.cpp(14):
linalg/solvers.hpp(346): warning #858: type qualifier on return type is meaningless
     const Vector * const GetBoundsVec_Lo() const { return x_lo; }
                    ^

In file included from linalg/linalg.hpp(28),
                 from linalg/sparsemat.cpp(14):
linalg/solvers.hpp(347): warning #858: type qualifier on return type is meaningless
     const Vector * const GetBoundsVec_Hi() const { return x_hi; }
                    ^

Re-merged in next for testing ...

Thank you @vladotomov and @cnpetra -- this is a great addition that I'm sure will find a lot of users!


remove undeclared (unnecessary) require('mongodb') call in 0.6 branch

The 0.6 mongo driver does a require("mongodb") even when a client is passed in. Because this require is undeclared, it caused issues with providing the right Mongo driver in settings like a Meteor app:
https://github.com/meteor/meteor/issues/532
https://github.com/mizzao/meteor-sharejs/issues/22
I know this is old code, and it probably won't be reviewed. But I generally try to create pull requests for things I fix rather than hiding dangling commits everywhere. :)

+1
thanks @mizzao !


added AI code reviewer

Description
Added an AI Code Reviewer Script that utilises pycodestyle library to check for code style violations and provides feedback on code formatting.
The script examines code comments and suggests improvements for better readability and clarity.
Fixes #886
Type of change

[x] Added a new machine learning frameworks, libraries or software.
[ ] Documentation update

Checklist:

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings

Please review my pull request @sanjay-kv

Only raise PR after getting assinged.


Protractor E2E test scripts are passing inconsistently under Mocha framework, classic chain promissing

Hi there!
Protractor E2E test scripts using Mocha BDD framework does not pass every time (pass rate is very less, inconsistent) when we run both in local and Sauce Labs.
We are using classic promise chaining concept instead of promise manager in our E2E test scripts.
We reffered here https://github.com/SeleniumHQ/selenium/wiki/WebDriverJs
We used two different types of approach using MochaDone(done) callback and with try/catch block returning a promise.
Bug report

Node Version: 8.9.4 ``

Protractor Version: 5.3.0 ``

Mocha Version: 3.5.0 ``

Angular Version: 1.6``

Browser(s): Google Chrome 62,63,64``

Operating System and Version: Windows 7, 10 ``

Your protractor configuration file
  return [
      {
          browserName: 'chrome',
          chromeOptions: {
              args: [
                  'use-fake-device-for-media-stream',
                  'use-fake-ui-for-media-stream'
              ]
          },
          idleTimeout: 2000,
          name,
          platform: 'Windows 10'
      }
  ];

} else {
return [
{
browserName: 'chrome',
chromeOptions: {
args: [
'use-fake-device-for-media-stream',
'use-fake-ui-for-media-stream'
]
}
}
];
}

}
export let config: IBasePtorConfig = {
allScriptsTimeout: 60000,
debug: false,
framework: 'mocha',

getMultiCapabilities: getBaseRequiredMultiCapabilities,
mochaOpts: {
    reporter: getMochaReporter(),
    timeout: 60000
},

noGlobals: true,

onPrepare: () => {
    return browser
        .getProcessedConfig()
        .then((conf: IBasePtorConfig) => {
            // EC 09-01-17:  Verifies required params are set on the config object.
            let requiredParamsProperties: Array<string> = ['automationEnv', 'dlapAdminPassword'];
            let message: string = `

SELENIUM_PROMISE_MANAGER: false, //E.C. 07-14-17 - if tests work, we know it is migrated
specs: ['./**/*.e2e.spec.js']

};

A relevant example test
beforeEach((done: MochaDone) => {
dashboard = new Dashboard();
login = new AutoCommon.page.Login();
nav = new AutoCommon.page.Navigation();
  AutoCommon.util.log('Navigating to Log In page and attempting to log in.');

  login.login(domain.userspace, teacher.username, teacher.password)
      .then(() => AutoCommon.util.log('Logged in.'))
      .then(() => nav.navigate(NavigationArea.Dashboard))
      .then(() => AutoCommon.util.log('Navigated to Dashboard.'))
      .then(() => done())
      .catch((err) => done(err));

});
describe('When viewing the 'On Schedule' donut table', () => {
it('should show the correct students in the 'On Schedule' donut table.', (done: MochaDone) => {
// arrange
      // act
      dashboard.pace.tab.click()
          .then(() => AutoCommon.util.log('Selected the Pace tab.'))
          .then(() => browser.waitForAngularEnabled(false))
          .then(() => AutoCommon.util.log('Desynchronized from angular.'))
          .then(() => browser.wait(ExpectedConditions.visibilityOf(dashboard.pace.onSchedule), 30000, 'Waiting for On Schedule donut to render.'))
          .then(() => dashboard.pace.onSchedule.click())
          .then(() => AutoCommon.util.log('Selected On Schedule Donut.'))
          .then(() => browser.wait(ExpectedConditions.visibilityOf(dashboard.performance.grid.tbody), 30000, 'Waiting for the student grid to render.'))
          .then(() => dashboard.pace.grid.studentLinks.count())

          // assert
          .then((studentCount: number) => expect(studentCount).to.equal(global['dashboardData'].users.length - 1))
          .then(() => done());
  });

});
});

Sample2:
describe('Dashboard Pace Tab', () => {
let course: DlapInterfaces.ICourse,
domain: DlapInterfaces.IDomain,
teacher: DlapInterfaces.IUser,
student: DlapInterfaces.IUser;
beforeEach(done => {
    dashboard = new Dashboard();
    login = new AutoCommon.page.Login();
    nav = new AutoCommon.page.Navigation();

    AutoCommon.util.log('Navigating to Log In page and attempting to log in.');
    try {
        return login.login(domain.userspace, teacher.username, teacher.password)
            .then(() => AutoCommon.util.log('Logged in.'))
            .then(() => nav.navigate(NavigationArea.Dashboard))
            .then(() => browser.ignoreSynchronization = true)
            .then(() => AutoCommon.util.log('Navigated to Dashboard.'))
            .then(() => {
                done();
            });
    } catch (e) {
        return done(e);
    }
});

describe('Teacher: When viewing the \'On Schedule\' donut table', () => {
    // Test case id - 34513
    it('Should show the correct students in the \'On Schedule\' donut table.', done => {
        // act
        try {
            return browser.wait(ExpectedConditions.invisibilityOf(dashboard.pace.loadingBar), 60000, 'Waiting for On Schedule donut to render.')
                .then(() => browser.wait(ExpectedConditions.elementToBeClickable(dashboard.pace.tab), 60000, 'Waiting for On Schedule donut to render.'))
                //Implemented this time out to solve the sync issues. Will follow up and implement a better solution in future.
                //.then(() => browser.sleep(10000))
                .then(() => dashboard.pace.tab.click())
                .then(() => browser.wait(ExpectedConditions.invisibilityOf(dashboard.pace.loadingBar), 60000, 'Waiting for On Schedule donut to render.'))
                .then(() => browser.wait(ExpectedConditions.elementToBeClickable(dashboard.pace.tab), 60000, 'Waiting for On Schedule donut to render.'))
                .then(() => AutoCommon.util.log('Selected the Pace tab.'))
                .then(() => browser.wait(ExpectedConditions.elementToBeClickable(dashboard.pace.onSchedule), 60000, 'Waiting for On Schedule donut to render.'))
                //Implemented this time out to solve the sync issues. Will follow up and implement a better solution in future.
                // .then(() => browser.sleep(10000))
                .then(() => dashboard.pace.onSchedule.click())
                .then(() => AutoCommon.util.log('Selected On Schedule Donut.'))
                .then(() => browser.wait(ExpectedConditions.visibilityOf(dashboard.performance.grid.tbody), 30000, 'Waiting for the student grid to render.'))
                .then(() => dashboard.pace.grid.studentLinks.count())

                // assert
                .then((studentCount: number) => expect(studentCount).to.equal(global['dashboardData'].users.length - 2))
                .then(() => {
                    done();
                });
        } catch (e) {
            return done(e);
        }

    });
});

});

Output from running the test

Dashboard Newly Enrolled Tab - Admin "before each" hook: ret for "Should verify dashboard newly enrolled tab show special status(IEP,504,ELL,NCAA) for admin":
Error: Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

When viewing the grid on the Pace or Performance tabs should take the user to the student's grade book upon selecting the student's name:
Error: Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

When viewing the grid on the Pace or Performance tabs should take the user to the course's grade book selecting the course's name:
Error: Timeout of 60000ms exceeded. For async tests and hooks, ensure "done()" is called; if returning a Promise, ensure it resolves.

Dashboard Newly Enrolled Tab "before each" hook: ret for "Should verify dashboard newly enrolled tab show special status(IEP,504,ELL,NCAA) for teacher":
Error: Error while waiting for Protractor to sync with the page: "both angularJS testability and angular testability are undefined.  This could be either because this is a non-angular page or because your test involves client-side navigation, which can interfere with Protractor's bootstrapping.  See http://git.io/v4gXM for details"
at runWaitForAngularScript.then (node_modules/protractor/built/browser.js:463:23)
at
at process._tickCallback (internal/process/next_tick.js:188:7)

Dashboard Pace Tab Teacher: When viewing the 'On Schedule' donut table Should show the correct students in the 'On Schedule' donut table.:
WebDriverError: unknown error: unhandled inspector error: {"code":-32000,"message":"Cannot find context with specified id"}
(Session info: chrome=63.0.3239.132)
(Driver info: chromedriver=2.35.528157 (4429ca2590d6988c0745c24c8858745aaaec01ef),platform=Mac OS X 10.13.2 x86_64)
at Object.checkLegacyResponse (node_modules/selenium-webdriver/lib/error.js:546:15)
at parseHttpResponse (node_modules/selenium-webdriver/lib/http.js:509:13)
at doSend.then.response (node_modules/selenium-webdriver/lib/http.js:441:30)
at
at process._tickCallback (internal/process/next_tick.js:188:7)

Steps to reproduce the bug

The URL you are running your tests against (if relevant)
It is angular app integrated inside another angular app but it will miss the app directive

So Protractor is not identifying angular load when we use Mocha. However it is working well with Jasmine 2.0 (ignoreSynchronization, waitForAngular etc)

Problem Statement:
Test execution results are inconsistent when we use “MochaDone” for resolving promises and “waitForAngularEnabled ()” to handle protractor sync with AngulaJS application.
Kindly let us know if you have faced these challenges in the past (or) in the current and how did you overcome this issue for smooth UI automation.
Have tried with four different options to resolve promise issues across features (angularJS SPA applications) inside Buzz angularJS application (parent).

PromiseAll()
“Try” “Catch” with single return statement for every “It” function (Expected wait & waitForAngularEnabled())
Async/await (https://github.com/SeleniumHQ/selenium/wiki/WebDriverJs )
Promise chaining with waitForAngularEnabled()

Note: We are automating angularJS application where many angularJS SPA integrated inside the parent angularJS app and inside each SPA, every page has “ng-app” as root element.


fix: wrong the scroll position of scrollToItem when working with dynamic size

fix: wrong the scroll position of scrollToItem when working with dynamic size

Pull Request Test Coverage Report for Build 903441152

0 of 4 (0.0%)  changed or added relevant lines in 1 file are covered.
2 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.07%) to 2.133%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

src/useVirtual.ts
0
4
0.0%

Files with Coverage Reduction
New Missed Lines
%

src/useVirtual.ts
2
0%

Totals

Change from base Build 903203495:
0.07%

Covered Lines:
7

Relevant Lines:
256

💛  - Coveralls


Trait PerThing missing MaxEncodedLen

PerThing: ./primitives/arithmetic/src/per_things.rs#L428 missing MaxEncodedLen

Thanks for reporting! Looks like we do not test this.
I will fix it together with another problem.