nuxt generate memory leak

Versions

nuxt: 2.14.1
node: v14.7.0

Reproduction
I'm using nuxt generate with the memory benchmarking from https://github.com/nuxt/nuxt.js/issues/7412#issuecomment-643195374.
I've reduced the generate.concurrency down to 1 and I can see in the logs that after "Generating pages with full static mode" it start's going through my pages and the heap memory just keeps on growing.
After about 100 pages generated it runs out of heap memory FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory.
I'm using 3GB of heap memory with node --max_old_space_size=3072 ./node_modules/.bin/nuxt generate, sure I could increase this but with hundreds of pages it's not scalable.
This wasn't happening in the older version of nuxt 2.12.2
What is Expected?
I expect that generating pages would have roughly flat memory usage and not keep on growing with each generated page.
What is actually happening?
Memory usage keeps growing with each generated page.

I discovered this only happens on the first run (but reliably on the first fresh run), if after the crash due to out of memory I run the same generate command again, heap usage hovers around 500MB and stays there throughout each generated route.
So my weird workaround is to let it crash and run again.

Hi @andrewharvey. Do you have a reproduction repo or if hard possibily privately sharing repo?

I think that's why i had my gitlab ci memory exceed and crash. When it was working on github pipeline

Hi @andrewharvey. Do you have a reproduction repo or if hard possibily privately sharing repo?

I'll try to cut it down into something reproducible, but for a large application this isn't straightforward.
I tried running an allocation timeline profile, but because of the resources required just to capture it I could only capture a few seconds, and to be honest I can't really understand it

this sampling profile seems to show it's mostly in an anonymous function in async function createApp(ssrContext, config = {}) {.
Not that this probably helps much without a minimal replication....

Same problem! Nuxt generates 1/5 pages, freezes, eats up all memory and crashes.

I also encountered this problem while first upgrading to Nuxt 2.13 (Javascript heap out of memory while generating pages). For me, this happened for 2 reasons:

A very large payload was manually specified to the route (~6 MB);
$route object was passed to the store commit call as a parameter inside page asyncData
After optimizing the payload size and refactoring the store mutation logic, this issue disappeared. However, the root cause is still unknown.

I'm running into this issue as well. My repository is public: https://github.com/AliasIO/wappalyzer.com
<--- Last few GCs --->

[54002:0x102409000]  1097925 ms: Mark-sweep 3879.9 (4117.9) -> 3874.1 (4111.7) MB, 2800.7 / 0.0 ms  (average mu = 0.138, current mu = 0.022) allocation failure scavenge might not succeed
[54002:0x102409000]  1098012 ms: Scavenge 3878.3 (4111.7) -> 3875.3 (4111.7) MB, 42.2 / 0.0 ms  (average mu = 0.138, current mu = 0.022) allocation failure
[54002:0x102409000]  1098090 ms: Scavenge 3891.0 (4114.3) -> 3879.6 (4115.8) MB, 19.7 / 0.0 ms  (average mu = 0.138, current mu = 0.022) allocation failure

<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x10072e699]
Security context: 0x00a190b408a1 <JSObject>
    1: join [0xa190b51239](this=0x00a1e3304fe1 <JSArray[39]>,0x00a113300729 <String[#0]: >)
    2: intoTokens [0xa1effb7e09] [/Users/elbert/Sites/wappalyzer/v4/frontend/node_modules/clean-css/lib/tokenizer/tokenize.js:~80] [pc=0x3b7f26fab657](this=0x00a170d44cf1 <GlobalObject Object map = 0xa1ce51f2e1>,0x00a259d00111 <Very long string[386516]>,0x00a2579c9251 <O...

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

Writing Node.js report to file: report.20200831.135051.54002.0.001.json
Node.js report completed
 1: 0x100b6a52a node::Abort() (.cold.1) [/usr/local/Cellar/node/12.12.0/bin/node]
 2: 0x100081f70 node::FatalError(char const*, char const*) [/usr/local/Cellar/node/12.12.0/bin/node]
 3: 0x100082098 node::OnFatalError(char const*, char const*) [/usr/local/Cellar/node/12.12.0/bin/node]
 4: 0x10017461d v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, bool) [/usr/local/Cellar/node/12.12.0/bin/node]
 5: 0x1001745c7 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, bool) [/usr/local/Cellar/node/12.12.0/bin/node]
 6: 0x10028a569 v8::internal::Heap::FatalProcessOutOfMemory(char const*) [/usr/local/Cellar/node/12.12.0/bin/node]
 7: 0x10028b8ee v8::internal::Heap::MarkCompactPrologue() [/usr/local/Cellar/node/12.12.0/bin/node]
 8: 0x1002894eb v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::GCCallbackFlags) [/usr/local/Cellar/node/12.12.0/bin/node]
 9: 0x100287f93 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/Cellar/node/12.12.0/bin/node]
10: 0x10028f6da v8::internal::Heap::AllocateRawWithLightRetry(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [/usr/local/Cellar/node/12.12.0/bin/node]
11: 0x10028fbd0 v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationType, v8::internal::AllocationAlignment) [/usr/local/Cellar/node/12.12.0/bin/node]
12: 0x10026d8c6 v8::internal::Factory::NewFillerObject(int, bool, v8::internal::AllocationType) [/usr/local/Cellar/node/12.12.0/bin/node]
13: 0x1004bc4ee v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [/usr/local/Cellar/node/12.12.0/bin/node]
14: 0x10072e699 Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_NoBuiltinExit [/usr/local/Cellar/node/12.12.0/bin/node]
15: 0x100742e9a Builtins_ArrayPrototypeJoin [/usr/local/Cellar/node/12.12.0/bin/node]
16: 0x3b7f26fab657
17: 0x3b7f26fac5d4

Hi, you could try disabling the crawler?
export default {
  generate: {
    crawler: false
  }
}

@Atinux That fixes it, no issue on 2.14 with crawler set to false. I can also confirm it was working fine on 2.12 without disabling the crawler.

Hi, you could try disabling the crawler?

@Atinux Unfortunately nothing has changed

@Atinux I thought disabling the crawler fixed it but I'm having the same issue again. I downgraded to 2.12 for now.

Having the same issue when i upgraded from 2.13 to 2.14, fails at nuxt generate with/without target static.
It seems to work for fully static if i cancel and run the command again (2 tries to work every time), but without full static (original legacy static) it doesn't seem to work and hangs.
Not sure if related but
https://github.com/nuxt/nuxt.js/issues/5546

I just spent a whole day trying to optimize what I thought was a leaky application.  Over the course of debugging memory consumption, I can see that even after the generate process has completed, our generate process leaves over 2GB sitting in heap.
Our application is fetching fairly large payloads in the fetch method, across most routes of a fairly large site (many hundreds of routes). If I limit the amount of data that is being fetched here, the problem is less noticeable. Thus the problem seems to scale both with the amount of data being fetched and the number of routes being generated.

@pi0 I spent a few hours reducing my project to a minimally reproducing example.
https://github.com/andrewharvey/nuxt-bug-7855
Running yarn run generate the memory will keep growing for each page and never come down, all the way until running out of space. Increasing max_old_space_size might buy you a couple extra pages, but that's not scalable and doesn't address the root cause.
There are still a few pieces but I've hit the point where if I take something out I don't see the issue anymore, so it's hard to work out what exactly is causing it.

@stale I updated https://github.com/andrewharvey/nuxt-bug-7855 to use nuxt-edge and it's still reproducing as per https://github.com/nuxt/nuxt.js/issues/7855#issuecomment-698332583

@stale Yes I can still replicate, updated nuxt-edge to latest. However the workaround does seem to make a difference, so that might be helpful for anyone interested in looking at this.

@andrewharvey To add to the above, as far as I can tell the specific memory leak you've identified is caused by Vuetify rather than Nuxt (cc: @kevinmarrec). I haven't been able to confirm that in your case @AliasIO - if you can get in contact with an API key I'd be grateful.
If anyone in this thread who has encountered a memory leak like this and  is not using Vuetify I'd welcome a reproduction or more information.

@danielroe Thanks for looking into this. The endpoints are public so you should be able to generate the routes.
cc @johnleider

@AliasIO Thanks. FYI, for now you can add the following to your nuxt config to prevent the memory leak:
export default {
  hooks: {
    'build:done'() {
      const modulesToClear = ['vue', 'vue/dist/vue.runtime.common.prod']
      modulesToClear.forEach((entry) => {
        delete require.cache[require.resolve(entry)]
      })
    },
  },
}

@danielroe Amazing, thanks. I can confirm that works.

Hoping that this may help others:
in our case the memory leak was caused by global Vue.mixin({...}) inside custom plugins.
The correct implementation of a global mixin is here:
https://nuxtjs.org/docs/2.x/directory-structure/plugins/#global-mixins
if (!Vue.__my_mixin__) {
  Vue.__my_mixin__ = true
  Vue.mixin({ ... }) // Set up your mixin then
}

Hoping that this may help others:
in our case the memory leak was caused by global Vue.mixin({...}) inside custom plugins.
The correct implementation of a global mixin is here:
https://nuxtjs.org/docs/2.x/directory-structure/plugins/#global-mixins
if (!Vue.__my_mixin__) {
  Vue.__my_mixin__ = true
  Vue.mixin({ ... }) // Set up your mixin then
}

@AliasIO Thanks. FYI, for now you can add the following to your nuxt config to prevent the memory leak:
export default {
  hooks: {
    'build:done'() {
      const modulesToClear = ['vue', 'vue/dist/vue.runtime.common.prod']
      modulesToClear.forEach((entry) => {
        delete require.cache[require.resolve(entry)]
      })
    },
  },
}

Tried this out but it still hangs halfway after generating some pages. Not sure if anyone faces the same issue.
Used nuxt: 2.14.0

@AliasIO Thanks. FYI, for now you can add the following to your nuxt config to prevent the memory leak:
export default {
  hooks: {
    'build:done'() {
      const modulesToClear = ['vue', 'vue/dist/vue.runtime.common.prod']
      modulesToClear.forEach((entry) => {
        delete require.cache[require.resolve(entry)]
      })
    },
  },
}

Tried this out but it still hangs halfway after generating some pages. Not sure if anyone faces the same issue.
Used nuxt: 2.14.0

@gabrielsze It seems unlikely that the same issue is causing your leak. Would you create a code reproduction in a GitHub repo?

Wanted to see if anyone else had a similar issue. I'll see if i can get up a repo but it'll probably take awhile.

@gabrielsze It seems unlikely that the same issue is causing your leak. Would you create a code reproduction in a GitHub repo?

Wanted to see if anyone else had a similar issue. I'll see if i can get up a repo but it'll probably take awhile.

@danielroe apologies for the ping once again, I managed to isolate the issue down to why nuxt generate was freezing for me, it was because for some reason (that I have not discovered yet), my await method within asyncData is no longer working and for some reason waiting (and hence causing the freezing of nuxt generate) as it was working in nuxt: 2.13.3.

@danielroe apologies for the ping once again, I managed to isolate the issue down to why nuxt generate was freezing for me, it was because for some reason (that I have not discovered yet), my await method within asyncData is no longer working and for some reason waiting (and hence causing the freezing of nuxt generate) as it was working in nuxt: 2.13.3.

I have recently experienced the same problem in a corporate environment,
But I don't have this problem in my home environment,
I have tried using several new installations of the same version of ubuntu (20.04, 18.04), nodejs (v12, v14) and even docker,
I tried using a new installation of ubuntu, nodejs and even docker, but it didn't solve the problem.
The difference I can think of but can't test is,
The CPU that runs fine in my home is an AMD ryzen 1700,
The company uses an Intel I7 9700.
Sorry I'm not a front-end developer, so maybe that doesn't help.
This is probably just a report that the cause of the problem has nothing to do with the os version or the nodejs version.
Also lastly, I accidentally found that my company's windows 10 is working fine,
I'm currently working on windows.

I have recently experienced the same problem in a corporate environment,
But I don't have this problem in my home environment,
I have tried using several new installations of the same version of ubuntu (20.04, 18.04), nodejs (v12, v14) and even docker,
I tried using a new installation of ubuntu, nodejs and even docker, but it didn't solve the problem.
The difference I can think of but can't test is,
The CPU that runs fine in my home is an AMD ryzen 1700,
The company uses an Intel I7 9700.
Sorry I'm not a front-end developer, so maybe that doesn't help.
This is probably just a report that the cause of the problem has nothing to do with the os version or the nodejs version.
Also lastly, I accidentally found that my company's windows 10 is working fine,
I'm currently working on windows.

I can confirm this with nuxt 2.14.12 on npm 7.4.3 and node 15.7.0
><EMAIL_ADDRESS>dev
> nuxt

ℹ Using Tailwind CSS from ~/assets/css/tailwind.css                                                                                nuxt:tailwindcss 21:27:49
ℹ Merging Tailwind config from ~/tailwind.config.js                                                                                nuxt:tailwindcss 21:27:49
ℹ Parsed 1 files in 0,3 seconds                                                                                @nuxt/content 21:27:50

   ╭───────────────────────────────────────────────────────╮
   │                                                       │
   │   Nuxt @ v2.14.12                                     │
   │                                                       │
   │   ▸ Environment: development                          │
   │   ▸ Rendering:   server-side                          │
   │   ▸ Target:      server                               │
   │                                                       │
   │   Listening: http://localhost:3000/                   │
   │                                                       │
   │   Tailwind Viewer: http://localhost:3000/_tailwind/   │
   │                                                       │
   ╰───────────────────────────────────────────────────────╯

ℹ Preparing project for development                                                                                21:27:51
ℹ Initial build may take a while                                                                                21:27:51
✔ Builder initialized                                                                                21:27:51
✔ Nuxt files generated                                                                                21:27:51

✔ Client
  Compiled successfully in 14.75s

✔ Server
  Compiled successfully in 14.34s

ℹ Waiting for file changes                                                                                21:28:06
ℹ Memory usage: 990 MB (RSS: 1.16 GB)                                                                                21:28:06
ℹ Listening on: http://localhost:3000/                                                                                21:28:06

<--- Last few GCs --->

[12012:0x5e89f40]   213608 ms: Scavenge 3887.4 (4117.0) -> 3882.9 (4120.2) MB, 9.7 / 0.0 ms  (average mu = 0.963, current mu = 0.971) task
[12012:0x5e89f40]   214367 ms: Scavenge 3896.6 (4125.2) -> 3892.1 (4129.0) MB, 9.5 / 0.0 ms  (average mu = 0.963, current mu = 0.971) task
[12012:0x5e89f40]   216510 ms: Mark-sweep 3906.3 (4134.0) -> 3877.2 (4138.2) MB, 1362.1 / 0.2 ms  (average mu = 0.937, current mu = 0.901) task scavenge might not succeed

<--- JS stacktrace --->

FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
Segmentation fault (core dumped)
npm ERR! code 139
npm ERR! path /home/kenneth/Code/kitecloud-website
npm ERR! command failed
npm ERR! command sh -c nuxt

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kenneth/.npm/_logs/2021-01-27T20_31_28_575Z-debug.log

I can start the dev server and then work with the "root" page of my app, but as soon as I switch to different page, it stops working.
Everything worked fine until yesterday, but then today, I started to have this issue
I have tried to delete the .nuxt folder to see if maybe something in there was not correctly rebuilt, but no luck

I can confirm this with nuxt 2.14.12 on npm 7.4.3 and node 15.7.0
><EMAIL_ADDRESS>dev
> nuxt

ℹ Using Tailwind CSS from ~/assets/css/tailwind.css                                                                                nuxt:tailwindcss 21:27:49
ℹ Merging Tailwind config from ~/tailwind.config.js                                                                                nuxt:tailwindcss 21:27:49
ℹ Parsed 1 files in 0,3 seconds                                                                                @nuxt/content 21:27:50

   ╭───────────────────────────────────────────────────────╮
   │                                                       │
   │   Nuxt @ v2.14.12                                     │
   │                                                       │
   │   ▸ Environment: development                          │
   │   ▸ Rendering:   server-side                          │
   │   ▸ Target:      server                               │
   │                                                       │
   │   Listening: http://localhost:3000/                   │
   │                                                       │
   │   Tailwind Viewer: http://localhost:3000/_tailwind/   │
   │                                                       │
   ╰───────────────────────────────────────────────────────╯

ℹ Preparing project for development                                                                                21:27:51
ℹ Initial build may take a while                                                                                21:27:51
✔ Builder initialized                                                                                21:27:51
✔ Nuxt files generated                                                                                21:27:51

✔ Client
  Compiled successfully in 14.75s

✔ Server
  Compiled successfully in 14.34s

ℹ Waiting for file changes                                                                                21:28:06
ℹ Memory usage: 990 MB (RSS: 1.16 GB)                                                                                21:28:06
ℹ Listening on: http://localhost:3000/                                                                                21:28:06

<--- Last few GCs --->

[12012:0x5e89f40]   213608 ms: Scavenge 3887.4 (4117.0) -> 3882.9 (4120.2) MB, 9.7 / 0.0 ms  (average mu = 0.963, current mu = 0.971) task
[12012:0x5e89f40]   214367 ms: Scavenge 3896.6 (4125.2) -> 3892.1 (4129.0) MB, 9.5 / 0.0 ms  (average mu = 0.963, current mu = 0.971) task
[12012:0x5e89f40]   216510 ms: Mark-sweep 3906.3 (4134.0) -> 3877.2 (4138.2) MB, 1362.1 / 0.2 ms  (average mu = 0.937, current mu = 0.901) task scavenge might not succeed

<--- JS stacktrace --->

FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
Segmentation fault (core dumped)
npm ERR! code 139
npm ERR! path /home/kenneth/Code/kitecloud-website
npm ERR! command failed
npm ERR! command sh -c nuxt

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/kenneth/.npm/_logs/2021-01-27T20_31_28_575Z-debug.log

I can start the dev server and then work with the "root" page of my app, but as soon as I switch to different page, it stops working.
Everything worked fine until yesterday, but then today, I started to have this issue
I have tried to delete the .nuxt folder to see if maybe something in there was not correctly rebuilt, but no luck

@danielroe Unfortunately switching to nuxt-edge did not make a difference. Even downgraded from Node 15.x to Node 14.x and reinstalled all npm packages for the project. But now even the index page refuses to load.
Perhaps this would deserve a separate issue since it is not the same issue as discussed here :)

@danielroe Unfortunately switching to nuxt-edge did not make a difference. Even downgraded from Node 15.x to Node 14.x and reinstalled all npm packages for the project. But now even the index page refuses to load.
Perhaps this would deserve a separate issue since it is not the same issue as discussed here :)

Encountered the same problem with a standard application, nuxt will eat up the whole RAM and crashes when you allocate more using e.g. https://stackoverflow.com/questions/52205500/nuxt-generate-fatal-error-ineffective-mark-compacts-near-heap-limit-allocation

@MartinWeise A reproduction would be appreciated 🙃

NuxtJS version v2.16.0-26938120.9247190c huge memory leak in dev mode and also in prod, I think here is problem related with nuxt link and nuxt i18n strategy prefix mode, this is rather unstable and I can say that it is unusable at the moment!

@mirkofisic Always happy to take a look. Could you create a new issue with a reproduction please? 🙏

I am very busy but I will try to explain details:
I have 2 subpages
pages > manager > trainings(inside trainings I have index and _id)
_id  represent id of the training in database alsmost every time if I chnaged url manually in the browser I got memory leak.
/manager/trainings/1234 if change to 0  or any oder Id I got memory leak.

Same here
[dev-core] <--- Last few GCs --->
[dev-core]
[dev-core] [5956:000001F35933F3B0] 14859671 ms: Mark-sweep 2030.7 (2081.3) -> 2019.0 (2085.3) MB, 925.3 / 3.9 ms  (average mu = 0.909, current mu = 0.239) allocation failure scavenge might not succeed
[5956:000001F35933F3B0] 14861553 ms: Mark-sweep (reduce) 2035.1 (2085.3) -> 2023.5 (2089.3) MB, 1820.8 / 4.2 ms  (+ 0.1 ms in 256 steps since
start of marking, biggest step 0.0 ms, walltime since start of marking 1882 ms) (average mu = 0.778, current mu =
[dev-core]
[dev-core] <--- JS stacktrace --->
[dev-core]
[dev-core] FATAL ERROR: MarkCompactCollector: young object promotion failed Allocation failed - JavaScript heap out of memory
[dev-core]  1: 00007FF7F32F481F napi_wrap+110783
[dev-core]  2: 00007FF7F3297F26 v8::base::CPU::has_sse+61862
[dev-core]  3: 00007FF7F3298E26 node::OnFatalError+294
[dev-core]  4: 00007FF7F3B723BE v8::Isolate::ReportExternalAllocationLimitReached+94
[dev-core]  5: 00007FF7F3B5718D v8::SharedArrayBuffer::Externalize+781
[dev-core]  6: 00007FF7F3A002CC v8::internal::Heap::EphemeronKeyWriteBarrierFromCode+1516
[dev-core]  7: 00007FF7F39EAD5B v8::internal::NativeContextInferrer::Infer+59739
[dev-core]  8: 00007FF7F39D003F v8::internal::MarkingWorklists::SwitchToContextSlow+56959
[dev-core]  9: 00007FF7F39E3D1B v8::internal::NativeContextInferrer::Infer+31003
[dev-core] 10: 00007FF7F39DADFD v8::internal::MarkCompactCollector::EnsureSweepingCompleted+6285
[dev-core] 11: 00007FF7F39E2F6E v8::internal::NativeContextInferrer::Infer+27502
[dev-core] 12: 00007FF7F39E6FBB v8::internal::NativeContextInferrer::Infer+43963
[dev-core] 13: 00007FF7F39F09B2 v8::internal::ItemParallelJob::Task::RunInternal+18
[dev-core] 14: 00007FF7F39F0941 v8::internal::ItemParallelJob::Run+641
[dev-core] 15: 00007FF7F39C3FC3 v8::internal::MarkingWorklists::SwitchToContextSlow+7683
16: 00007FF7F39DB2AC v8::internal::MarkCompactCollector::EnsureSweepingCompleted+7484
[dev-core] 17: 00007FF7F39D9AE4 v8::internal::MarkCompactCollector::EnsureSweepingCompleted+1396
[dev-core] 18: 00007FF7F39D7668 v8::internal::MarkingWorklists::SwitchToContextSlow+87208
[dev-core] 19: 00007FF7F3A060B1 v8::internal::Heap::LeftTrimFixedArray+929
[dev-core] 20: 00007FF7F3A081A5 v8::internal::Heap::PageFlagsAreConsistent+789
[dev-core] 21: 00007FF7F39FD3D1 v8::internal::Heap::CollectGarbage+2049
[dev-core] 22: 00007FF7F39FB5D5 v8::internal::Heap::AllocateExternalBackingStore+1349
[dev-core] 23: 00007FF7F3A1BA3B v8::internal::Factory::NewFillerObject+203
24: 00007FF7F374A0B1 v8::internal::interpreter::JumpTableTargetOffsets::iterator::operator=+1409
[dev-core] 25: 00007FF7F3BFB27D v8::internal::SetupIsolateDelegate::SetupHeap+465325
[dev-core] 26: 0000036B0C34E05D
[dev-core] [nodemon] app crashed - waiting for file changes before starting...

Hoping that this may help others:
in our case the memory leak was caused by global Vue.mixin({...}) inside custom plugins.
The correct implementation of a global mixin is here:
https://nuxtjs.org/docs/2.x/directory-structure/plugins/#global-mixins
if (!Vue.__my_mixin__) {
  Vue.__my_mixin__ = true
  Vue.mixin({ ... }) // Set up your mixin then
}

I would like to call attention here, is this maybe something that Nuxt or Vue should do automatically?
I do not think we should trust developers to read the whole documentation of the framework before implementing a global mixin properly. I would say a run time warning in console, a build time error or a linter error could be implemented. If this causes severe memory leaks, why there is not a way of applying some kind of singleton pattern so a mixin cannot be defined more than one time. Is there a reason why it should be allowed to define a mixin more than once?

Hello all, i am having memory leak in Nuxt.js in production. It's crazy, i looked at the code and nothing that indicates, i migrated from Laravel/Vue to Nuxt.js. The Vue.js code is essentially the same. I think the problem is within Nuxt.js.

I'm facing the same issue guys, almost spent 3 days without any good luck to find a solution

After 3 days of attempting some of the solutions outlined above, the culprit for me was a watch being initiated within a composable on server side, this being initiated on every single SSG route. Wrapping the watcher with process.client condition fixed all my problems.

I don't know if it's related to your issue, but we have 2GB RAM server which has 1 GB of swap space, we've been building our application with "nuxt build" successfully for a very long time (with a very big RAM usage though + running other processes with pm2), but yesterday after updating some of our project dependencies, we've encountered a problem with build, the build was not passing caused by too much RAM usage (even the swap space was full). It was fixed by setting --max-old-space-size=2048 (with " export NODE_OPTIONS="--max-old-space-size=2048" "). We're using "nuxt build" command.

We are approaching the Nuxt 2 EOL date (June 30, 2024) - see this article for more information. This is advance warning that I'm going to close this issue then, as it's currently marked as a Nuxt 2 related bug.
If it's a critical or security issue, please do comment and let me know, in case it is possible to address it before the EOL date.
If it's a an issue you think is relevant for Nuxt 3, please feel free to open a fresh issue (or just comment here so I can update labels, etc.). 🙏
Thank you for your understanding and for your contribution to Nuxt. ❤

It's the day, at last. Nuxt 2 is now marked end-of-life.
My apologies we never got round to resolving this bug in the 2.x branch, but we do have to draw a line somewhere. Again, if you think this is still relevant for Nuxt going forward, please feel free to open a fresh issue (or just comment here so I can update labels, etc.). 🙏


Add ParallelIterator::{map_init,for_each_init,try_for_each_init}

These are like map_with and all, except using an init function for
the paired value instead of a Send + Clone value.  The returned type
doesn't have to be Send nor Sync nor anything else, which makes it
feasible for things like a thread-local RNG.

bors r+


WIP: Count method for List

So, I'm not sure how the test suite works here. The error currently raised by the Java implementation is : Caused by: java.lang.IllegalArgumentException: wrong number of arguments
This might be caused because I added the method to contain an argument variable whereas it didn't exist anywhere before. I'm not sure how to tackle this though.

@soummyaah If you look at other methods within List, you'll see that there is the args parameter you can give to the @org.python.Method annotation – that's probably what you want here, since the x argument is required. You can look at the @Method definition to see what other options are possible, like for methods where there are arguments with default values.


AVL tree in python

Have you read the Contributing Guidelines on Pull Requests?
Yes
Description
Implemented AVL tree in python.
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
Fixes : #2131

@HarshCasper Can I add code for Deleting from a BST in python under DWoC?

@HarshCasper Can I add code for Deleting from a BST in python under DWoC?

I rarely take a look at merged PRs. Please make an Issue or start a discussion thread for any communication.


Add vkShare bot - crawler for the Russian VK social media platform

See github issue: https://github.com/WhichBrowser/Parser-PHP/issues/505
Link: https://vk.com/dev/Share

Coverage increased (+0.02%) to 99.97% when pulling a10ff9b3e51a3eb2073558d5b76236760831b069 on ayumi-cloud:vkShare into 880b9fa797401d14b28956442944c3daa70240ff on WhichBrowser:master.

@NielsLeenheer Please can you merge this pr.

Fixed in e9e38511566a976539e3a84172e7f1c51450eceb

Fixed in e9e38511566a976539e3a84172e7f1c51450eceb


support for illumos systems

I have performed at least basic testing of this change in two contexts:

on a Linux system, in a Rust CI docker image, cross building an illumos compiler
on an illumos system, building a patched version of rustup for native illumos use

Resolves #51

👍


Fix CircleCI Bintray parallel uploads

Currently we upload packages to 5 Bintray repos in parallel.
Same we do for 7 Docker containers, uploaded to Docker Hub in parallel.
This saves time, the improvement is huge.
Existing problem described in stackstorm/st2-packages#74: when any of parallel jobs fail - we don't show failed exit code with current basic bash & wait implementation. That means in CI deploy task always marked as "succeeded", even if artifacts were not uploaded to Bintray.
Correct behavor is fixed with help of parallel tool, which is right way and catches exit code from all the jobs.
See: GNU Parallel Man

Researched/experimented a bit with bashing and xjobs, xargs, parallel, pexec tools.
parallel is the best fit here.
See https://github.com/StackStorm/st2-packages/pull/164

https://stackstorm.slack.com/archives/stackstorm/p1455124773006487


Reliably Focus Properties Panel on Lint Error Click

Focusing the properties panel when clicking a lint error on the canvas or in the error panel doesn't work reliably.

The reason is described in https://github.com/bpmn-io/properties-panel/pull/186. To fix this issue we need to integrate the following changes:

https://github.com/bpmn-io/properties-panel/pull/186
https://github.com/camunda/linting/pull/19

In order to avoid using timeouts this will need to be fixed properly in the near future. Solution approaches were discussed with @barmac and @nikku.

Related to https://github.com/bpmn-io/properties-panel/pull/186
Related to https://github.com/camunda/linting/pull/19

Closed by https://github.com/camunda/camunda-modeler/pull/3150.


[Feature] Limit the resource usage of containers.

Describe the solution you'd like
Enable the application to automatically configure runtime parameters based on resource quotas, ensuring that it does not consume resources beyond the allocated limits, such as CPU and memory, during normal operation.

i am willing to contribute it


replaced the use of readdir_r by readdir

However, left the old version behind a macro just in case we encounter a system that does support readdir_r instead of readdir.

Well, why don't you add a cmake check that sets this macro or on off?

because I would believe that all systems do support readdir these days and readdir_r is deprecated anyways. If the pipeline works out, I would be inclined to delete the macro and the readdir_r version as well.

And what about mktemp?:
/builds/gitlab/hans/sac2c/stdlib/src/system/src/FileSystem/mktemp.c:6: warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'
/builds/gitlab/hans/sac2c/stdlib/src/system/src/Dir/readdir.c:26:5: warning: 'readdir_r' is deprecated [-Wdeprecated-declarations]
/builds/gitlab/hans/sac2c/stdlib/src/system/src/FileSystem/mktemp.c:6: warning: the use of `mktemp' is dangerous, better use `mkstemp' or `mkdtemp'
/builds/gitlab/hans/sac2c/stdlib/src/system/src/Dir/readdir.c:26:5: warning: 'readdir_r' is deprecated [-Wdeprecated-declarations]

I am affraid that for library calls we need to check whether they are supported on the given system or not.  It is OK to exclude functions that are not there, but we'd better make sure that what we use actually works.

Given the security risk of mktemp is well known, I think all systems that use libc, have implemented/made available mkstemp.

Apple evidently supports this: https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man3/mkstemp.3.html
Implemented in GLIBC since version 2.12

available on CentOS 6 + 7,  Ubuntu 14 + 16, Archlinux, etc.

So I think its fairly safe to just rewrite the code from mktemp to mkstemp, unless we really want to support old distros.

fixed the missing write check as well as replaced mktemp by mk[s|d]temp stubs
I think the only warning missing is a warning of flex generated code. We can suppress that warning easily but it could have its origin in the .lex file. Someone with a linux system should investigate....
It would be great if Hans could run the Stdlib bot on my latest pushes.....
wouldn't it be great if I could myself?!


feature/yTime -> dev

This change is

Review status: 0 of 6 files reviewed at latest revision, 1 unresolved discussion.

a discussion (no related file):
Still need to do some testing with a user that has multiple jobs. Started the pr to review the other things before I am in at work again on thursday.

Comments from Reviewable

Reviewed 5 of 5 files at r1.
Review status: all files reviewed at latest revision, 11 unresolved discussions.

byuSuite/Apps/YTime/controller/YTimeRootViewController.swift, line 73 at r1 (raw file):

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        if indexPath.section == 0, let cell = tableView.dequeueReusableCell(for: indexPath, identifier: "jobCell") as? YTimeJobTableViewCell {
            cell.punchView.delegate = self //We added the delegate so that we could allow the view controller to handle the punch logic rather than each cell

Hmm... I think it might be better to make the delegate on the cell set the delegate on the punchView... I can be persuaded though. Why did you do it this way?

byuSuite/Apps/YTime/view/PunchView.swift, line 9 at r1 (raw file):

//

import Foundation

Remove (inferred from UIKit)

byuSuite/Apps/YTime/view/PunchView.swift, line 16 at r1 (raw file):

}

let IN = "In"

What are all these? Should they be private?

byuSuite/Apps/YTime/view/PunchView.swift, line 33 at r1 (raw file):

			foregroundButton.setTitle(job.clockedIn ? OUT : IN, for: .normal)
			backgroundButton.setTitle(job.clockedIn ? CLOCKED_IN : CLOCKED_OUT, for: .normal)
			backgroundButton.contentHorizontalAlignment = job.clockedIn ? .left : .right

Were you able to get the text centering to work with this? Does it look like the previous version?

byuSuite/Apps/YTime/view/PunchView.swift, line 50 at r1 (raw file):

	override func awakeFromNib() {
		foregroundButton.addGestureRecognizer(UIPanGestureRecognizer(target: self, action:#selector(handlePan)))
	}

Add extra space between functions

byuSuite/Apps/YTime/view/PunchView.swift, line 53 at r1 (raw file):

	@objc func handlePan(sender: UIPanGestureRecognizer) {
		if sender.state == .began || sender.state == .changed {
			let xPosition = sender.translation(in: self).x + (constraintedToLeft ? 0 : backgroundWidth)

Comments throughout this function

byuSuite/Apps/YTime/view/PunchView.swift, line 82 at r1 (raw file):

	}

	func constrainLeft() {

Can these be private? Can they be combined by passing in a boolean? Maybe something like this:
private func punch(in punchIn: Bool) {
...
}

byuSuite/Apps/YTime/view/PunchView.swift, line 82 at r1 (raw file):

	}

	func constrainLeft() {

Should this actually be called punchOut?

byuSuite/Apps/YTime/view/PunchView.swift, line 94 at r1 (raw file):

	}

	func constrainRight() {

Should this be called punchIn?

byuSuite/Apps/YTime/view/PunchView.swift, line 96 at r1 (raw file):

	func constrainRight() {
		delegate?.createPunch(punchIn: true, job: job, sender: self)
		leftConstraint.constant = self.layer.frame.width * (2/3)

Isn't this what the computer property is for?

Comments from Reviewable

Review status: all files reviewed at latest revision, 12 unresolved discussions.

byuSuite/Apps/YTime/controller/YTimeRootViewController.swift, line 73 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Hmm... I think it might be better to make the delegate on the cell set the delegate on the punchView... I can be persuaded though. Why did you do it this way?

Done.

byuSuite/Apps/YTime/view/PunchView.swift, line 9 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Remove (inferred from UIKit)

Done.

byuSuite/Apps/YTime/view/PunchView.swift, line 16 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
What are all these? Should they be private?

Did you want the text as constants or just put in line as strings?

byuSuite/Apps/YTime/view/PunchView.swift, line 33 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Were you able to get the text centering to work with this? Does it look like the previous version?

Done.

byuSuite/Apps/YTime/view/PunchView.swift, line 50 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Add extra space between functions

Done.

byuSuite/Apps/YTime/view/PunchView.swift, line 53 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Comments throughout this function

Done.

byuSuite/Apps/YTime/view/PunchView.swift, line 82 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Can these be private? Can they be combined by passing in a boolean? Maybe something like this:
private func punch(in punchIn: Bool) {
...
}

Done.

byuSuite/Apps/YTime/view/PunchView.swift, line 82 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Should this actually be called punchOut?

Done.

byuSuite/Apps/YTime/view/PunchView.swift, line 94 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Should this be called punchIn?

Done.

byuSuite/Apps/YTime/view/PunchView.swift, line 96 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Isn't this what the computer property is for?

Done.

Comments from Reviewable

Reviewed 4 of 4 files at r2.
Review status: all files reviewed at latest revision, 4 unresolved discussions.

byuSuite/Apps/YTime/view/PunchView.swift, line 16 at r1 (raw file):
Previously, alexanderboswell (bozzy) wrote…
Did you want the text as constants or just put in line as strings?

If they're only used once, feel free to inline them. I don't forsee these changing anytime soon

byuSuite/Apps/YTime/view/PunchView.swift, line 82 at r1 (raw file):
Previously, alexanderboswell (bozzy) wrote…
Done.

Good job on the punch. Create a function combining constraintLeft and constraintRight as well to remove duplicate code

byuSuite/Apps/YTime/view/YTimeJobTableViewCell.swift, line 18 at r2 (raw file):

	@IBOutlet private weak var punchView: PunchView!
    @IBOutlet private weak var errorLabel: UILabel!

Spaces -> Tabs

Comments from Reviewable

Review status: 3 of 5 files reviewed at latest revision, 5 unresolved discussions.

a discussion (no related file):
Is there a way to test it on PROD?

byuSuite/Apps/YTime/view/PunchView.swift, line 16 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
If they're only used once, feel free to inline them. I don't forsee these changing anytime soon

They are used in two places. So I will keep them?

byuSuite/Apps/YTime/view/PunchView.swift, line 82 at r1 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Good job on the punch. Create a function combining constraintLeft and constraintRight as well to remove duplicate code

Done.

byuSuite/Apps/YTime/view/YTimeJobTableViewCell.swift, line 18 at r2 (raw file):
Previously, romrell4 (Eric Romrell) wrote…
Spaces -> Tabs

Done.

Comments from Reviewable

Reviewed 2 of 2 files at r3.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

a discussion (no related file):
Previously, alexanderboswell (bozzy) wrote…
Is there a way to test it on PROD?

You can do it :) Just use it to clock out/in from here on out. Otherwise, we can do it and just have Robin nuke the punches

Comments from Reviewable

Review status: all files reviewed at latest revision, 2 unresolved discussions.

a discussion (no related file):
Previously, alexanderboswell (bozzy) wrote…
Still need to do some testing with a user that has multiple jobs. Started the pr to review the other things before I am in at work again on thursday.

Do this by adding your own test job

Comments from Reviewable

Review status: all files reviewed at latest revision, 2 unresolved discussions.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
You can do it :) Just use it to clock out/in from here on out. Otherwise, we can do it and just have Robin nuke the punches

ok.

Comments from Reviewable

Review status: all files reviewed at latest revision, 2 unresolved discussions.

a discussion (no related file):
Previously, alexanderboswell (bozzy) wrote…
ok.

Mark this as done when it's been tested a couple times

Comments from Reviewable

Reviewed 1 of 1 files at r4.
Review status: all files reviewed at latest revision, 2 unresolved discussions.

Comments from Reviewable

Review status: all files reviewed at latest revision, 2 unresolved discussions.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
Do this by adding your own test job

Done.

a discussion (no related file):
Previously, romrell4 (Eric Romrell) wrote…
Mark this as done when it's been tested a couple times

Done.

Comments from Reviewable


Client Allocation Request for: 成都二十三魔方生物科技有限公司

Client Allocation Questions
Core Information

Name: 成都二十三魔方生物科技有限公司
Website / Social Media: https://www.23mofang.com/
Region: Greater China
DataCap Requested: 20TiB
Addresses to be Notarized: f1paantyyxvw562mpaqe45dnjhxe6pypectod7rya
Notary Requested: steven004

@23MF2021 Please subscribe to notifications for this Issue to be aware of updates. Notaries may request additional information on the Issue.

Hey @23MF2021 , I remember you had applied datacap and got the grants.
As mentioned in the last application, would you please list your deal transactions first? I need to verify the deals before the new grants.

@steven004 Thanks for your quick reply.
Here are the deals.

@steven004  Thanks for your quick reply.   Here are the deals.
23魔方存储交易明细.xlsx

@23MF2021 Please share with me your wechat account (you can share with me via email for privacy).
We need to work through the list and do some validation. In the validation process, your help and support is needed. Thanks.

Hello，my wechat account: Smary623.

The data we stored in the filecoin were genetic source data and genetic reports, which are extremely private information.
We can provide example of genetic report without critical data. Is it ok?

example of genetic report.pdf

If you have anything else you need to know, my wechat account: Doraemon1943_

It says the account Doraemon1943_ does not exist, please double check. Thanks.

I'm sorry for closing query through wechat account, I have opened it now.

Since the data stored in Filecoin network by the client is highly confidential, which could not be retrieved for verification. It's really a pity that there is not another way to prove this. I am closing this issue now.
For Filecoin eco-system and Filecoin+ program, we really need to find a way to support private data saving possibly with incentives.


fix: crash caused when the port is already in use

This pull request fixes #172 , where the application crashes when the specified port is already in use. The crash is occuring cause we are using unwrap() while handling TcpListener::bind().
This commit fixes it by replacing unwrap() with match expressions for error handling.

@VanshulB ok PR looks good except, for the diff that I gave you, it needs to be applied.
In addition, go to the review that I left you, and resolve them if you think that there is nothing to do in this was it is more easy to me understand what you did

Looks good and is ready to merge, can I squash the commit in a single one? and fix the commit message in a more structured way?
If for you it is the first time to do this you can find support on the discord 😸

Looks good and is ready to merge, can I squash the commit in a single one? and fix the commit message in a more structured way?
If for you it is the first time to do this you can find support on the discord 😸

Done! 😀


Allow vertical align union pipe prefix format

Given this:
export type Input = boolean | {
  if?: boolean
  label?: string
  initialCount?: number
}

I would like:
export type Input =
  | boolean
  | {
      if?: boolean
      label?: string
      initialCount?: number
    }

There could be different heuristics for this:

I force a newline after = and the following is a union type (indicated I guess by if there are any other | present later in the line).
I force a | after an = and that forces the above formatting.

It seems idea (2) is simpler to implement and also perhaps a better expression of developer intent.

It already works. You need to add newline before or after |.
Here is playground link


BREAKING: make lintText into a sync method

Fixes: https://github.com/Flet/standard-engine/issues/156
Before: standardEngine.lintText(text, [opts], callback)
After: results = standardEngine.lintText(text, [opts])
If an error occurs, an exception is thrown. Otherwise, a results
object is returned.

Great that lands so fast!

Both of the methods are synchronous in ESLint:
http://eslint.org/docs/developer-guide/nodejs-api#executeonfiles

@mightyiam yea, i thought to mention that too.

@mightyiam We do extra work on top of what eslint does, and that work is async.

One day ESLint may be asynchronous. And then we'll be breaking again...
On Tue, Feb 21, 2017, 21:42 Feross Aboukhadijeh<EMAIL_ADDRESS>wrote:

@mightyiam https://github.com/mightyiam We do extra work on top of what
eslint does, and that work is async.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Flet/standard-engine/pull/157#issuecomment-281457159,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAmyx-guWam-z0s0ZZdw-Fl_jPBoU5pXks5rez4OgaJpZM4MG8Pc
.


How to change font-family for axis, labels and tooltips

I couldn't find a way to change font-family of text's used in NVD3 charts.
Can you point me to some documentation or link, which will help me with this.
I tried changing the font-family from css:{} inside chart:{} object, and it didn't work for me.
Please help.

Change css styles directly with !important:
.nvd3 text {
  font: normal 12px sans-serif !important;
}
.nvd3 .title {
  font: normal 12px sans-serif !important;
}
.nvtooltip {
  font-family: sans-serif !important;
}
...


Correct typo  in help text

Hey @calvinsID I saw https://github.com/Azure/azure-cli/issues/17885 and your PR, but the language wasn't quite right. The Java runtime landscape can be confusing, so don't hesitate to reach out to Joaquin or I in the future if Java questions come up.

appservice

Hey @calvinsID I saw #17885 and your PR, but the language wasn't quite right. The Java runtime landscape can be confusing, so don't hesitate to reach out to Joaquin or I in the future if Java questions come up.

Thanks for fixing this - sorry about that!


PHOENIX-6627 Remove all references to Tephra from 4.x and master

Retire Tephra.
Considerations:
Ordinals of TransactionFactory.Provider are maintained to preserve compatibility with deployed system catalogs. The enum label for the former Tephra provider is deliberately renamed to NOTAVAILABLE so any downstreams with ill-advised direct dependencies on it will fail to compile.
A coprocessor named TephraTransactionalProcessor is retained, with a no-op implementation, to prevent regionserver aborts in the worst case that a Tephra table remains deployed and the table coprocessor list has not changed. This should not happen. Users should be provided a migration runbook.
The commitDDLFence phase of MutationState is retained although it may no longer be necessary. Recommend a follow up issue.
PhoenixTransactionContext.PROPERTY_TTL is retained. It is possible a future txn engine option will have a similar design feature and will need to alter cell timestamps. Recommend a follow up issue.
storeNulls for transactional tables remains enabled for compatibility.  It is possible a future txn engine option will have a similar design feature and will need to manage tombstones in a non-default way. Recommend a follow up issue.
Requests to ALTER a table from transactional to non transactional are still rejected. It is very likely OMID has similar complex state cleanup and removal requirements, and txn engines in general are likely to have this class of problem.

The PR looks good to me. Can we trigger the pre-checkin tests for this PR? Not sure why it was not triggered automatically yet.

As of this comment, it looks like the first build run is still in progress, not completed yet: https://ci-hadoop.apache.org/job/Phoenix/job/Phoenix-PreCommit-GitHub-PR/job/PR-1486/

I did not submit until the UTs and ITs in phoenix-core all passed for me. I know that is not good enough on its own, but I submit it as a data point.

@stoty  - @apurtell is going to be unavailable for a couple of weeks, so I went ahead and fixed the NoLookbackMutableIndexExtendedIT and NoTransactionAvailableProvider nits.

I can't reproduce the test failure in TenantViewOperationsWorkloadIT either in the master branch or Andrew's feature branch. I've kicked off a new CI build to see if it recurs. If not I'll go ahead and merge.

That failure sounds like PHOENIX-6552, @gjacoby126 , which is a simple infra overload issus (though the test is also overly optimistic wrt GC pauses, etc.)


Update scroll tests to use pumpUntilNoTransientCallbacks

This ensures that both timer/microtask queues are cleared out rather
than assuming that all work is completed in a specified amount of time.

LGTM


Angular example showcase page

Changes proposed in this pull request:

added overview component as entry point with links to the demo sections
added code sample for defaultPathSegment config demo

https://github.com/kyma-project/luigi/pull/42


Upgrade jquery to 3.4.0

...to resolve the security vulnerabilities.

Coverage remained the same at 53.04% when pulling 1dc0c26b81c18cd9679326fccb59ac08b450741f on qixcheng/webportal/upgrade-jquery into 07177b18c5b780457d633be1691f34bfb7f64523 on master.


Add recursive call limit

Currently the VM uses recursion to interpret procedure calls, which means an attacker can easily write a program that will exhaust the host stack, killing it.
POC: A dyncall instruction in MASM causes the Rust program to recurse. The following program can be used to create infinite recursion:
proc.rec
  dynexec
end

begin
  procref.rec
  exec.rec
end

Running the above causes a crash:
thread 'main' has overflowed its stack
fatal runtime error: stack overflow
[1]    99618 abort      cargo run --features="executable" -- run --assembly t.masm

Another approach is to change the way the bytecode is interpreted, and rely exclusively on the max cycle counter to prevent running out of main memory. This is related to #1217

Can I start working on it?

Can I start working on it?

@bobbinth @bitwalker ping. I'm not sure what are the plans with the interpreter rewrite to remove the recursion calls.

@cyberbono3 - thank you for wanting to help with this! I would probably hold off on this issue for now as we will be refactoring how the processor runs though the program in the next couple of weeks (the Program struct will be moved to table-based description of MAST - see https://github.com/0xPolygonMiden/miden-vm/issues/1226). So, the mechanism that may apply to the current implementation may need to be different after the refactor.


Example project with hot reloading

Hi, great job with the project!
I'm trying to set up hot reloading with your example project, but without any luck so far. Have you tried getting it running?

Haven't tried with hot reloading yet, but I do want to have an example project that works with it.

Hi @tobiasandersen and @gabrielbull,
Did either of you get this working?
From what I can tell, there's an issue here with HMR preserving components' state within the component tree. Given that module is a key within Module's state, HMR is reloading the relevant code chunks but is not updating or flushing each Module component's state. This means the UI does not update to reflect the reloaded module(s).

In the meantime, I've published my fork of this with the above PR. You can access it here:
https://www.npmjs.com/package/@smarchetti/react-router-server


Unable to convert DataFrame to IDataView

I'm probably doing something wrong, but adding this just in case.
Was working on a notebook to use the DataFrame in ML.NET but it seems, when I try to cast the DataFrame to an IDataView, it gave the below error.
Cannot convert from 'Microsoft.ML.IDataView' to 'Microsoft.ML.IDataView'

The error happens when, after performing a cast on the DataFrame object to an IDataView, I use it in the ML.NET TrainTestSplit method.
context.Data.TrainTestSplit(dataView, testFraction: 0.2)

Here is the full notebook, if needed.

cc @eerhardt

Thanks @eerhardt! I forgot try upgraded to interactive. Once upgrading it all now works.


eslint-plugin-query incorrectly thinks TS generic is dependency

Describe the bug
Love that you are putting out an eslint plugin!! It already found several issues in our codebase.
However, we have a custom hook where a generic can be passed along in order to type the response of an api call. The linter is incorrectly thinking that the TS generic should be a dependency.
error  The following dependencies are missing in your queryKey: Result  @tanstack/query/exhaustive-deps

Your minimal, reproducible example
https://stackblitz.com/edit/vitejs-vite-wgscv2?file=src/useGenericHook.ts
Steps to reproduce

Open up terminal in stackblitz
Run yarn lint
Check out error in console from file useGenericHook.ts

Expected behavior
I expect that types shouldn't be a dependency for a query key
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform

OS Mac ventura M1
node 18.12.0

react-query version
v4.14.3
TypeScript version
4.8.4
Additional context
No response

@Newbie012 could you have a look?

Sure, I'll push a fix later this day.


support for engduino

Hi Ivan,
How do you usually proceed to add a library in platformio? We would like to be able to target Engduino.
https://code.google.com/p/engduino/wiki/InstallingEngduinoV3

Engduino requires the TwoWire library (http://arduino.cc/en/Reference/Wire) but I could not find it in the library repo.

We are working on it with Engduino team. Just include in your source file this line:
#include <Wire.h>

The Wire.h library is bundled with Arduino Framework by default.


Add is for boolean flags

Codecov Report

Merging #84 into master will not change coverage.
The diff coverage is n/a.

@@          Coverage Diff          @@
##           master    #84   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files           1      1
  Lines         669    674    +5
=====================================
+ Hits          669    674    +5

Impacted Files
Coverage Δ

dist/partial.lenses.cjs.js
100% <0%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


⚠ ClamAV has degraded performance

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

HTTP code: 200
Response time: 244 ms

Resolved: ClamAV performance has improved in 32fcf29.


Unable to save file after entering invalid path

Description of the problem or steps to reproduce
If I create a new file and press ctrl+s, it asks for a filepath. If I enter an invalid path, it cannot save the file but remembers the path I entered. The next time I try to save, it will try to use this path and fail again. This is particularly unfortunate due to the apparent lack of a default keybinding for 'save as'.
Specifications
Commit hash: 3d63f07
OS: Arch Linux
Terminal: Konsole

You can save as by pressing Ctrl+E which will put you in command mode.
Then type
save /pathhere/filenamehere

This should save your file with the new path and filename passed above.
Or you can set your own default key bindings by adding it to your config bindings.json file
(most likly in ~/.config/micro) if bindings.json file is not created then just create one.
Below is an example with Alt+s as the binding key.
{
"Alt-s": "SaveAs"
}

More more info go into command mode (Ctrl+E) and type
help keybindings

Hope this helps you.

That does help, but it still shouldn't remember the path if it fails to save.

The Arthur is working on a fix see github micro master commit https://github.com/zyedidia/micro/commit/dcee63771ad4a363b61108ff6ea96baaa1d1acee


why i fail to run vcpkg on userland

I want to ask why I can't execute the command
./vcpkg integrate install
Returns error
Environment variable VCPKG_FORCE_SYSTEM_BINARIES must be set on arm, s390x, and ppc64le platforms.
Saya menggunakan aarch64 android 6.0
Thank

Hi @A91K3C1l
Thanks for posting this issue.
Could you please help confirm which platform you build on your machine?
Environment variable VCPKG_FORCE_SYSTEM_BINARIES must be set on arm, s390x, and ppc64le platforms.
Please set VCPKG_FORCE_SYSTEM_BINARIES as Environment variable if your platform is one of them.

Closing this issue for now since there is no active thread for a long time. Please feel free to reopen this issue if you can provide above information.


Newest version experiencing lots of issues

WIth the latest GUI I have the following issues:

When viewing the customize allowlist/blocklist there is no way to differentiate between a tickbox that is disabled and one that is unticked.  They all look the same.
The blocklist is a modal popup which can't be expanded, and I can't see the labels on the left hanside.  It cuts off Installed AllUsers NON- and then there is some text underneath but its cut off by the label below it (I know it says REMOVABLE but I wouldn't know that in this version!)
It doesn't work with any custom block lists as default setup.  I'm running it via the Quick start and the custom-lists is saved to C:\ which has both of the whitelistedapps and bloatware empty.  When I run it nothing happens.  I had to copy a known custom-list (using an older version) to C:\ and then re-run it?  Is this a limitation of running it from the Quick start?  I am running the GUI in C:\Temp\Windows10Debloater directory.  I notice you say this issue has been fixed in other issue comments?

This is an excellent tool but a few bugs have popped up unfortunately.  I've bought you a coffee to say thanks.

Hi Adam,
My apologies for the issues that you have experienced.
I can work on making the cosmetic changes to differentiate between a checkbox that is disabled and one that is unchecked.
I will also work on fixing the form so that it is both expandable and also is formatted correctly.
Is this the version you downloaded in the last 24 hours or just before that? There was a bug where the custom lists file was not saving correctly before I had fixed it last night.
It should actually create a custom lists file from wherever you run it if it doesn’t exist (so no need to run it from a specific location). If it isn’t doing that then I will take a further look, but this could potentially be an issue with running it from the .bat file(s). I am going to take those down for now, and will either replace them with a .ps1 file or just remove altogether.
Sent from my iPhone

On Mar 20, 2021, at 5:35 PM, adamparker @.***> wrote:

WIth the latest GUI I have the following issues:
When viewing the customize allowlist/blocklist there is no way to differentiate between a tickbox that is disabled and one that is unticked. They all look the same.
The blocklist is a model popup which can't be expanded, and I can't see the labels on the left hanside. It cuts off Installed AllUsers NON- and then there is some text underneath but its cut off by the label below it (I know it says REMOVABLE but I wouldn't know that in this version!)
It doesn't work with any custom block lists as default setup. I'm running it via the Quick start and the custom-lists is saved to C:\ which has both of the whitelistedapps and bloatware empty. When I run it nothing happens. I had to copy a known custom-list (using an older version) to C:\ and then re-run it? Is this a limitation of running it from the Quick start? I am running the GUI in C:\Temp\Windows10Debloater directory.
This is an excellent tool but a few bugs have popped up unfortunately. I've bought you a coffee to say thanks.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or unsubscribe.

I went ahead and remove the .bat files since that could introduce some weirdness with creating the custom list. Can you give it another shot with the latest version available of the GUI? Please and thanks!

I appreciate the coffees by the way, thank you so much!

I tried the latest version 2 minutes ago and still doesn't save the custom list properly.
The custom-lists.ps1 contains only the below, doesn't matter what I change in the list.
$global:WhiteListedApps = @( ) $global:Bloatware = @( )

@lkakas and @adamparker  - Please try 1 more time and download the now latest version. I accidentally reintroduced the bug when adding the ability to disable Bing Search when using the Search feature in the start menu. My apologies.

@Sycnex Saving custom list works now. Thanks.

Glad to hear that! I went ahead and adjusted the formatting and font size to make it more easily readable as well.

Good job and thanks for your work.
You're welcome for the coffees, it's well deserved. Best regards, Adam.
On Sat, 20 Mar 2021, 22:55 Richard Newton, @.***> wrote:

Glad to hear that! I went ahead and adjusted the formatting and font size
to make it more easily readable as well.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/Sycnex/Windows10Debloater/issues/365#issuecomment-803475127,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACKLBQXV3OJZ2BMWTX3J63TTEURXDANCNFSM4ZQ2UPZA
.

@Sycnex  Definitely... You deserve a lot of Coffee...😂


prosody: 0.11.7 -> 0.11.8

It's a minor release, there's no major improvement/breaking change.
See https://blog.prosody.im/prosody-0.11.8-released/ for the full changelog.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[x] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 114489 at 878e12fb run on x86_64-linux 1

1 package built:

prosody


Time is not allowed in filters.

Hello Greg,
I have been busy with a few other things and wasn't able to test the previous build. During my work, while applying filters on invoices on ModifiedDate, I found that it never parses the time part from a DateTime to XML but only parses the date.
The expected date format is:
yyyy-MM-ddTHH:mm:sszzz
Currently implemented as below:

Again I have made an Extension to handle this:
using QbModels;
using System.Xml.Linq;
namespace QBSync.Extensions
{
    public static class InvoiceQueryRqExtensions
    {
        public static string ToXMLString(this InvoiceQueryRq rq)
        {
            string xml = rq.ToString();

            if (rq.ModifiedDateRangeFilter != null)
            {
                XDocument document = XDocument.Parse(xml);
                ModifiedDateRangeFilterDto filter = rq.ModifiedDateRangeFilter;
                if (filter.FromModifiedDate != null)
                {
                    document.Descendants("FromModifiedDate").First().Value = ((DateTime)filter.FromModifiedDate).ToString("yyyy-MM-ddTHH:mm:sszzz");
                }
                if (filter.ToModifiedDate != null)
                {
                    document.Descendants("ToModifiedDate").First().Value = ((DateTime)filter.ToModifiedDate).ToString("yyyy-MM-ddTHH:mm:sszzz");
                }

                xml = document.ToString();

            }
            return xml;

        }

    }
}

Thanks for the testing and feedback. Took me a second but I see what you're saying about the date/time in modified date range. Here is an updated version of the file with the correct modified date range format. I had published v1.2.5 last night so it's now v.1.2.6. I should have bumped up the version to v1.3 with the new features for the batch requests but oh well.
QbModels.1.2.6-beta03.zip

Hello Greg,
Thank you so much <3


JS Pipeline do not work for {% block javascript_footer %}

Hi,
i'm using Gantry 5, and in particles, the scripts are written in {% block javascript_footer %}...{% endblock %}. JavaScript pipeline doesn't work for footer scripts.
It works only for scripts which are in header, written in {% block javascript %}...{% endblock %}
how to make it work for footer scripts? i can't find anything about it in docs.
Best Regards,
Maksym

All the latest versions of Gantry do call {{ assets.js('bottom')|raw }}, which should automatically deal with the pipelining. The only scripts that do not get pipelined are those which you add in Page Settings > Before </body> as it accepts any tags, not just scripts.
Gantry also always sets the pipeline parameter to true in Assets::AddJs() function.
@rhukster Any idea on this one?

Just make sure the theme doesn't infact have a bottom javascript similar to this:
{% block bottom %}
    {{ assets.js('bottom') }}
{% endblock %}

The first Grav versions of Gantry didn't have this line, but it was added a long time ago. But I tested it out and it doesn't seem to use pipelining even if it should (files are added individually).

I'll double check with pipeline on a non-g5 theme today and get back to you.

I can confirm that with regular Grav (no Gantry5 enabled) JS pipeline will properly pipeline the bottom JS (if you use that example format I put above at least).
I think you need to test this with G5 specifically @mahagr


Tickets nominated for the Stable Release Candidate Epic

Track important tickets
List of Tickets

[x] #3367

New tickets from the Ziggurat Report
From:

#3278

New tickets:

[x] #3429

This ticket is being replaced with a new process.


feat: allow regexp patterns and capture group expansions

This change-set will allow users to specify host patterns as regexp patterns.
If capture groups are added to the regexp patterns, they can be expanded into the hosts HostName configuration.
Capture group expansion will not use the standard $1 format, as it collides with environment variable expansion.
Instead the expansion format is {1} for capture group 1

I can see that this does not work properly, as assh seems to be relying very much on the rendered ssh config file.
Will attempt to solve this blocker.

This did not really work as expected

This did not really work as expected


Question - GraphQL playground using generated schema

Awesome work!!!
Quick question, I used mysql sakila database to output Country and City tables, using following parameters (on Windows):
> sql2graphql --db sakila -r true -h localhost -u root -p test -t city -t country --output-dir C:\Development\Playground\app
Got this schema generated:
type City implements Node {
  id: ID!
  city: String!
  countryId: Int!
  country: Country
  lastUpdate: Int!
}

type Country implements Node {
  id: ID!
  country: String!
  lastUpdate: Int!
}

interface Node {
  id: ID!
}

type RootQueryType {
  node(id: ID!): Node
}

can't seem to query sever data on http//localhost:3000 ... tried many scenarious, but keep in running into Cannot query field "City" on "RootQueryType".  error.
Do I need to modify schema.js to nest Country and City types under RootQueryType?

It looks like you've generate the app using the --relay option.
In Relay, instead of having root-level queries for each individual type, you have a single field: node that takes an ID.
So in your case, you'd query it like this:
{
  node(id: "Q2l0eToxOA==") {
    id,
    ... on City {
      city,
      countryId
    }
  }
}

If you generate the same application without the --relay option, you should be able to query it using:
{
  City(id: 18) {
    id,
    city,
    countryId
  }
}

@rexxars Thanks!!! Just tried it with --relay option on and without - Works great!
Thanks again!


When will the paper be released

同求

https://openaccess.thecvf.com/content/CVPR2021/papers/Zhang_Learning_Temporal_Consistency_for_Low_Light_Video_Enhancement_From_Single_CVPR_2021_paper.pdf


destination database base class attribute function to get table attribute

Feature
Add function to get Mysql Migrate class to get base.classes attribute for destination table.

#17


Piped plugin architecture

What would you like to be added:
This issue is for managing the process of adopting plugin architecture to piped. The ideal result is to make all platform providers' logic independent from the piped core logic (the controller package).
Tasks pool break down 💪

[x] Revise the plugin planner interface <- @khanhtc1202 @Warashi
[ ] Implement piped plugin grpc service <- @khanhtc1202
[ ] Implement piped plugin grpc secret decryption endpoint <- @khanhtc1202
[ ] Implement piped planner which calls to the PlannerService interface instead of platforms' planner packages <- @khanhtc1202
[ ] Implement k8s plugin: PlannerService interface implementation <- @Warashi
[ ] TBD

Why is this needed:

As the current stage, the interface for the plugin of the piped as below
We have 2 services:
The PlannerService
// PlannerService defines the public APIs for remote planners.
service PlannerService {
    // BuildPlan builds plan for the given deployment.
    rpc BuildPlan(BuildPlanRequest) returns (BuildPlanResponse) {}
}

message BuildPlanRequest {
    string working_dir = 1 [(validate.rules).string.min_len = 1];
    // Last successful commit hash and config file name.
    // Use to build deployment source object for last successful deployment.
    string last_successful_commit_hash = 2;
    string last_successful_config_file_name = 3;
    // The configuration of the piped that handles the deployment.
    bytes piped_config = 4 [(validate.rules).bytes.min_len = 1];
    // The deployment to build a plan for.
    model.Deployment deployment = 5 [(validate.rules).message.required = true];
}

message BuildPlanResponse {
    // The built deployment plan.
    DeploymentPlan plan = 1;
}

message DeploymentPlan {
    model.SyncStrategy sync_strategy = 1;
    // Text summary of planned deployment.
    string summary = 2;
    repeated model.ArtifactVersion versions = 3;
    repeated model.PipelineStage stages = 4;
}

And, the ExecutorService
service ExecutorService {
    // Execute executes the given stage of the deployment plan.
    rpc ExecuteStage(ExecuteStageRequest) returns (stream ExecuteStageResponse) {}
}

message ExecuteStageRequest {
    model.PipelineStage stage = 1 [(validate.rules).message.required = true];
    bytes stage_config = 2 [(validate.rules).bytes.min_len = 1];
    bytes piped_config = 3 [(validate.rules).bytes.min_len = 1];
    model.Deployment deployment = 4 [(validate.rules).message.required = true];
}

message ExecuteStageResponse {
    model.StageStatus status = 1;
    string log = 2;
}

ref: https://github.com/pipe-cd/pipecd/blob/master/pkg/plugin/api/v1alpha1/platform/api.proto

TODO:

[ ] Revise plugin planner interface
[ ] Implement piped plugin grpc service
[ ] Implement piped plugin grpc secret decryption endpoint
[ ] Implement piped planner which calls to the PlannerService interface instead of platforms' planner packages
[ ] Implement k8s plugin: PlannerService interface implementation
[ ] TBD

Latest update of the PlannerService interface
// PlannerService defines the public APIs for remote planners.
service PlannerService {
    // DetermineStrategy determines which strategy should be used for the given deployment.
    rpc DetermineStrategy(DetermineStrategyRequest) returns (DetermineStrategyResponse) {}
    // QuickSyncPlan builds plan for the given deployment using quick sync strategy.
    rpc QuickSyncPlan(QuickSyncPlanRequest) returns (QuickSyncPlanResponse) {}
    // PipelineSyncPlan builds plan for the given deployment using pipeline sync strategy.
    rpc PipelineSyncPlan(PipelineSyncPlanRequest) returns (PipelineSyncPlanResponse) {}
}

message DetermineStrategyRequest {
    PlanPluginInput input = 1 [(validate.rules).message.required = true];
}

message DetermineStrategyResponse {
    // The determined sync strategy.
    model.SyncStrategy sync_strategy = 1;
    // Text summary of the determined strategy.
    string summary = 2;
}

message QuickSyncPlanRequest {
    PlanPluginInput input = 1 [(validate.rules).message.required = true];
}

message QuickSyncPlanResponse {
    // Stages of deployment pipeline under quick sync strategy.
    repeated model.PipelineStage stages = 1;
}

message PipelineSyncPlanRequest {
    PlanPluginInput input = 1 [(validate.rules).message.required = true];
}

message PipelineSyncPlanResponse {
    // Stages of deployment pipeline under pipeline sync strategy.
    repeated model.PipelineStage stages = 1;
}

message PlanPluginInput {
    // The deployment to build a plan for.
    model.Deployment deployment = 1 [(validate.rules).message.required = true];
    // The remote URL of the deployment source, where plugin can find the deployments sources (manifests).
    string source_remote_url = 2 [(validate.rules).string.min_len = 1];
    // Last successful commit hash and config file name.
    // Use to build deployment source object for last successful deployment.
    string last_successful_commit_hash = 3;
    string last_successful_config_file_name = 4;
    // The configuration of plugin that handles the deployment.
    bytes plugin_config = 5;
}

Note:
The stage.requires use Id of the previous stage (instead of the stage name of previous stage) and there is only the Stage UI render logic which is depended on that
ref: https://github.com/pipe-cd/pipecd/blob/master/web/src/components/deployments-detail-page/pipeline/index.tsx#L59-L80

Note:
The current stage to build model and its notes
		stage := &model.PipelineStage{
			Id:         id, // Stage config setting or defaulted by index from plugin (not usable since index is not shared between plugins) -> buildable
			Name:       s.Name.String(), // Only get from plugin
			Desc:       s.Desc, // Stage config setting
			Index:      int32(i), // Unable to use since index is not shared between plugins (important)
			Predefined: false, // Only get from plugin
			Visible:    true, // Only get from plugin
			Status:     model.StageStatus_STAGE_NOT_STARTED_YET, // Always NOT_STARTED_YET
			Metadata:   planner.MakeInitialStageMetadata(s), // Piped creates metadata store while plugin create the init metadata
			CreatedAt:  now.Unix(), // Always current time
			UpdatedAt:  now.Unix(), // Always current time
		}

Reply: https://github.com/pipe-cd/pipecd/issues/4980#issuecomment-2268492287
We will build the stages requires on the piped instead of using anything returned from the plugins since we have to wait until that time to have all stages' id.

Update: cc @Warashi
We're moving the application config marshal/unmarshal for piped from v0 to v1, and we realized it could be easier to make it by separating the config for pipedv0 and pipedv1. So we introduced the configv1 package, which is basically a copy of the config package with less type (due to the platform's specified type being moved to plugins).
Will consider how to keep changes between config and configv1 is notable later 👀

Note:
For current rollback stages, they all have the same requires, which is the last failed/run stage; thus all rollback will be triggered to run at one (at the same time) (cc @ffjlabo  to confirm later)

Note:

Check this later https://github.com/pipe-cd/pipecd/issues/3086 cc @khanhtc1202

Note:
Current executor input spec
input := executor.Input{
		Stage:               &ps, // pass this
		StageConfig:         stageConfig, // pass this
		Deployment:          s.deployment, // pass this
		Application:         app, // pass this
		PipedConfig:         s.pipedConfig, // pass plugin config
		TargetDSP:           s.targetDSP, // pass this as targetDS
		RunningDSP:          s.runningDSP, // pass this as runningDS
		GitClient:           s.gitClient, // Should not pass this
		CommandLister:       cmdLister, // Shared between stages, need controlplane apiClient, should be served via piped grpc
		LogPersister:        lp, // Should pass to plugin? based on the logging method
		MetadataStore:       s.metadataStore, // Shared between stages, need controlplane apiClient, should be served via piped grpc
		AppManifestsCache:   s.appManifestsCache, // only for k8s manifest cache, should be placed in plugin
		AnalysisResultStore: aStore, // Only for analysis plugin, need controlplane apiClient, should be served via piped grpc
		Logger:              s.logger, // Should pass to plugin
		Notifier:            s.notifier, // Only for wait-approval, should be served via piped gprc
	}

Based on the above https://github.com/pipe-cd/pipecd/issues/4980#issuecomment-2452071105 input, the PluginService of piped should contains
service PluginService {
   ...
    // FetchStageCommands fetches the stage commands.
    // Plugin can use this to fetch the commands all stage commands of handling deployment.
    rpc FetchStageCommands(FetchStageCommandsRequest) returns (FetchStageCommandsResponse) {}
    // SendStageNotification sends the notification of the stage using piped notifier.
    rpc SendStageNotification(SendStageNotificationRequest) returns (SendStageNotificationResponse) {}
}

TBD:

MetadataStore service, the current MetadataStore interface is quite complicated and had used widely across stages (1)
AnalysisResultStore service, this be used only for analysis stage plugin, but use apiClient to connect to controlplane (store value to filestore) (2)

ref:
(1)
https://github.com/pipe-cd/pipecd/blob/master/pkg/app/pipedv1/metadatastore/store.go#L46-L49
(2)
type AnalysisResultStore interface {
	GetLatestAnalysisResult(ctx context.Context) (*model.AnalysisResult, error)
	PutLatestAnalysisResult(ctx context.Context, analysisResult *model.AnalysisResult) error
}


warp-terminal: 0.2<IP_ADDRESS>.02.stable_01 -> 0.2<IP_ADDRESS>.01.stable_01

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[x] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[x] sandbox = true

[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

Builds, runs, lgtm.

Looks fine, but shouldn't we wait for the bot to automatically update this?

Looks fine, but shouldn't we wait for the bot to automatically update this?

No need to wait for the bot. The important part is to review and approve, to speed up the process.


Bug: Validation wrong behaviour - Session mixed with internal validator state

Describe the bug
The Validation class is mixing current request data and session data from previous request.
It is using the state (session stored errors) from previous request in the return of the run() method to decide if the validation was a success or not.
https://github.com/codeigniter4/CodeIgniter4/blob/8bd6644abb1687c0ef8802295688cf64b444f68d/system/Validation/Validation.php#L193
public function getErrors(): array
[....]
		if (isset($_SESSION, $_SESSION['_ci_validation_errors']))
		{
			$this->errors = unserialize($_SESSION['_ci_validation_errors']);
		}
	}

	return $this->errors ?? [];
}

This leads to false positives when running a validation after trying to validate any data with errors in the previous request.
Also a call to reset() will not clean this mixed state since is not clearing the session data as we can see:
public function reset(): ValidationInterface
{
	$this->data         = [];
	$this->rules        = [];
	$this->errors       = [];
	$this->customErrors = [];

	return $this;
}

CodeIgniter 4 version
4.0.3 (from composer install)
Affected module(s)

system/Validation/Validation.php

Expected behavior, and steps to reproduce if appropriate
The run() method should return only the errors from the current execution context, it should not mix previous errors from the session, so validate behaves as expected and the validator can be reused and executed as a standalone validator.
How to reproduce the bug:
I. e. We have a controller with 2 methods:
getForm    --> GET request. Actions: Validate some data from the request $_GET parameters and show a form to /postForm
postForm  --> POST request, Actions: Validate data from the request $_POST parameters (it should fail) and return redirect()->back()->withInput(); so the validation errors are stored in the session and available after the redirect.
The redirect() will go back to /getForm, with valid GET parameters, and fail the validation because the getErrors() call in the return of the run() method will check also the session stored data.
So if you have session errors, you cant trust the result.
Context

OS: Windows
Web server: Nginx
PHP version 7.4.2

There is a PR from time ago, where it changed: https://github.com/codeigniter4/CodeIgniter4/commit/337f29a50c2625066ccd42d4c17207c0887d7214
IMHO, we should treat session validation errors independently from the validator own errors. I.e from a method like $validation->hasOld(); or something like that.
Please let me know if any further clarification is required and if we agree, ill try to send a PR.
Br, J

@jmingov It would help a lot if you could provide an example controller and view. Thanks!

Hi,
There are 2 sample controller methods, one using controllers validate() method and $_REQUEST (/getform1) and the other using a non shared validation instance and a hardcoded array (/getform2).
Routes to be added:
// Sample1
$routes->get('/getform1', 'Users::getform1');
// Sample2
$routes->get('/getform2', 'Users::getform2');
// HELPER POST
$routes->post('/postform', 'Users::postform');

How to:
Files: CI_ValBug.zip

Drop the file Users.php in the controllers root folder and the file simpleform.php in the view 's root folder of any CI4 app.

Navigate to /getform1 or /getform2

Submit the form (with invalid data, so the /postform can redirect back with the error in the session.

Expected: To see the view again with the errors from the POST failed validation.
Reality: You see the validation error response from the GET page (both getform1 and 2).
Br,
J

If you only want to see the code and have a look here:
https://gist.github.com/jmingov/7d68056f1867221107f3f28616021699

Thank you and sorry for the delay.
Sadly this is the desired behavior. I mean... checking session for error messages is what we want. It's also the most common use case. The only thing I can suggest is using flash session variable to determine if the validation process for GET  method should be processed.

Thank you for the response, (and congrats for the framework).
No worries for the delay, but does not makes much sense (to me)...
A few questions if you don't mind:

How should we clear the state from the validator? (Not possible at the moment, only with another redirect if it contains session errors).
How can it be used to validate standalone data? And reused? (When you have errors already in the session?)
Even if we have errors in the session from prev request, we may need to perform some validation before we reach the code that validates the session errors? Whatever the desired behavior is, the documentation does not say a word about any of this, and from a security POV, its wrong since you cant validate any data but session errors after the redirect()->back()->withInput();

Returning $this->getErrors() instead $this->errors from Validation.run() is the problem, and makes the validaton class use cases pretty limited no?
Br, j

If validation errors in the session are really the only thing on your way, then just delete them:
session()->remove('_ci_validation_errors')

We use session because we want the validation errors to be available after redirect - we can't do this without session.
In general, I believe your use case is quite "specific" - but it's only my opinion.
I agree that the user guide may be lacking in information about this. But I don't really see any security issues in current implementation.

Personally, I would think for a moment if the application flow is really correct. And if it is, then maybe you should extend the current Validation class, make changes that you want, and use this version in a validation service.
If you will have more questions, please feel free to post them in our Forum. Thanks!


Enable inject_parent_image plugin

Signed-off-by: Luiz Carvalho<EMAIL_ADDRESS>

Updated release notes.


README: update introduction

For some time now, we have (to my knowledge) been able to detect all the UB that rustc actually exploits. I think it's time to advertise that.
We also haven't had the problem of "not every nightly has Miri" for a while.
@rust-lang/miri what do you think?

:pushpin: Commit abaa47f843d6c27ccfa9c06fe518a2d92bd05b6d has been approved by saethlin
It is now in the queue for this repository.

:hourglass: Testing commit abaa47f843d6c27ccfa9c06fe518a2d92bd05b6d with merge 9ecb74268050998aed1657c8eaec289e6dde1b24...

:hourglass: Testing commit abaa47f843d6c27ccfa9c06fe518a2d92bd05b6d with merge 28ab963bc9abe6999f4acd126c865ec59bf4a503...

:sunny: Test successful - checks-actions
Approved by: saethlin
Pushing 28ab963bc9abe6999f4acd126c865ec59bf4a503 to master...


Please update config-server to latest; resolve "dep ensure" panic

I'm trying to support bosh deploy --vars-store for CFCR project which requires organization on its certificates (see https://github.com/cloudfoundry-incubator/kubo-deployment/issues/334#issuecomment-408860409)
I have a PR for config-server https://github.com/cloudfoundry/config-server/pull/12 but cannot test it in bosh-cli due to dep ensure errors:
$ dep ensure -update
panic: version queue is empty, should not happen

goroutine 1 [running]:
github.com/golang/dep/gps.(*solver).findValidVersion(0xc4200d3b00, 0xc420541180, 0xc4202f7230, 0x1, 0x1, 0x0, 0xc4202f7230)
	/Users/drnic/Projects/gopath/src/github.com/golang/dep/gps/solver.go:918 +0x4d7
github.com/golang/dep/gps.(*solver).createVersionQueue(0xc4200d3b00, 0xc4206ad3c1, 0x14, 0x0, 0x0, 0xc4202f7230, 0x1, 0x1, 0x0, 0x0, ...)
	/Users/drnic/Projects/gopath/src/github.com/golang/dep/gps/solver.go:905 +0x93f
github.com/golang/dep/gps.(*solver).solve(0xc4200d3b00, 0x15e5340, 0xc420026190, 0x0, 0xc4200240a4, 0x41)
	/Users/drnic/Projects/gopath/src/github.com/golang/dep/gps/solver.go:508 +0x5b7
github.com/golang/dep/gps.(*solver).Solve(0xc4200d3b00, 0x15e5340, 0xc420026190, 0x185beb8, 0xc4200240c5, 0x20, 0xc42021c750)
	/Users/drnic/Projects/gopath/src/github.com/golang/dep/gps/solver.go:448 +0xc8
main.(*ensureCommand).runUpdate(0xc420175ac0, 0xc4200b6980, 0xc4201907d0, 0x0, 0x0, 0xc4200790e0, 0x15e8d00, 0xc420079740, 0xc4200240a4, 0x41, ...)
	/Users/drnic/Projects/gopath/src/github.com/golang/dep/cmd/dep/ensure.go:388 +0x2c0
main.(*ensureCommand).Run(0xc420175ac0, 0xc4200b6980, 0xc4201907d0, 0x0, 0x0, 0x0, 0x0)
	/Users/drnic/Projects/gopath/src/github.com/golang/dep/cmd/dep/ensure.go:217 +0x7ab
main.(*Config).Run(0xc420078fc0, 0x0)
	/Users/drnic/Projects/gopath/src/github.com/golang/dep/cmd/dep/main.go:244 +0x1150
main.main()
	/Users/drnic/Projects/gopath/src/github.com/golang/dep/cmd/dep/main.go:70 +0x52c

Hi @drnic,
This should be fixed on the develop branch as of https://github.com/cloudfoundry/bosh-cli/commit/dac8ffd782c3659c7509dd18c4080c05409cea73. The dep ensure -update panic was actually a result of https://github.com/cloudfoundry/bosh-cli/blob/master/Gopkg.toml#L37-L40.
Best,
@jfmyers9


AE2 and Flux Networks crash

Describe the bug
Basically I do something and sometimes I crash. Vanilla fix always says its Applied Energistics 2 and Flux Networks crashing. I cannot remember the last time something has crashed and it wasn't Applied Energistics 2 and Flux networks. Vanilla fix also includes Laggoggles as the cause when installed.
I am playing 1.12.2, forge verison <IP_ADDRESS>54 on a single player endgame world.
Crash report: (one of many)
https://paste.dimdev.org/getososelo.mccrash
Its clearly AE2 and flux network's problem. The flux point is trying to add energy but the acceptor is becoming weird.
I have a guess to what is the problem. The flux point is like: This is an ae2 block! lemme inject AE power. But, the energy acceptor doesn't work like that. The energy acceptor tries to get RF power or J power or something but instead gets AE power. Since AE2 quantum bridge uses 400rf/t (perfect number for me) i can use RTGs to hopefully fix the problem.
Relevant mod verisons:
FluxNetworks-1.12.2-<IP_ADDRESS>
appliedenergistics2-rv6-stable-7
ExtraCells-1.12.2-2.6.5
ae2stuff-<IP_ADDRESS>-mc1.12.2
AE2WTLib-1.12.2-1.0.34
WirelessCraftingTerminal-1.12.2-3.12.97
To Reproduce

Get a Quantum Ring from AE2
Put an energy cell, energy acceptor terminal and wireless access point.
AFK for a little and see that Flux networks and AE2 have caused a crash.
Alternatively, just play. It seems interacting with things seems to hasten the crashing, but that is my guess.

Expected behavior
Not to crash. Pretty simple.
Please note the game does not crash immediately. I noticed client restarts help.
Screenshots
N/A?

Laggoggles was probably misdiagnosed as the cause by vanillafix because it was probably checking for server lag when the game crashed


Avatar Glitch

When an user doesn't have an avatar aka default discord avatar it just dont show up

This is a custom theme, and not an official one, so it is probably a theme problem.


Use the new "CiviForm" name throughout the codebase/GitHub

Replace "UAT" with "CiviForm" wherever it appears, both in code and elsewhere in this GitHub repo.

Blocked on this until after Jake has met with legal


this addition is needed to allow for empty ENVs.  This is only applie…

Description:
Without this change, when attempting to deploy a helm chart with an empty value for OPERATOR_ID_ETH_SENDRAWTRANSACTION,OPERATOR_KEY_ETH_SENDRAWTRANSACTION, or CHAIN_ID resulted in this error
Error: UPGRADE FAILED: error validating "": error validating data: [unknown object type "nil" in Secret.data.CHAIN_ID, unknown object type "nil" in Secret.data.OPERATOR_ID_ETH_SENDRAWTRANSACTION, unknown object type "nil" in Secret.data.OPERATOR_KEY_ETH_SENDRAWTRANSACTION]
helm.go:84: [debug] error validating "": error validating data: [unknown object type "nil" in Secret.data.CHAIN_ID, unknown object type "nil" in Secret.data.OPERATOR_ID_ETH_SENDRAWTRANSACTION, unknown object type "nil" in Secret.data.OPERATOR_KEY_ETH_SENDRAWTRANSACTION]

This change corrects that error by setting a default of "" but using the printf %q to ensure the default is safely escaped.  "%q a double-quoted string safely escaped" from [https://helm.sh/docs/chart_template_guide/function_list/#printf]

Codecov Report

Merging #254 (000af1b) into main (4785a35) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 000af1b differs from pull request most recent head c23d15b. Consider uploading reports for the commit c23d15b to get more accurate results

@@           Coverage Diff           @@
##             main     #254   +/-   ##
=======================================
  Coverage   58.35%   58.35%
=======================================
  Files           9        9
  Lines         742      742
  Branches      111      111
=======================================
  Hits          433      433
  Misses        283      283
  Partials       26       26

Continue to review full report at Codecov.

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


Rewrite Convos with M::P::Webpack and Svelte

This PR covers the changes from Vue to Svelte in the frontend.
I'll try to document the change in depth, but I'm opening the PR to indicate that the branch is ready for testing.

I'm going to merge this now, because of all the improvements it has over the current "master" branch.


0.66.1 Un-recognized warehouse size prompts new apply

Provider Version

provider registry.terraform.io/aidanmelen/snowsql v1.3.3
provider registry.terraform.io/hashicorp/aws v5.0.1
provider registry.terraform.io/hashicorp/random v3.5.1
provider registry.terraform.io/hashicorp/vault v3.15.2
provider registry.terraform.io/snowflake-labs/snowflake v0.66.1

Terraform Version
Terraform v1.4.6 on darwin_arm64
Describe the bug
If you set the warehouse size to XXLARGE and apply, the next Terraform Plan will only see it as 2XLARGE on the warehouse, and will therefore want to re-apply the changes. This is a perpetual loop. Changing to 2XLARGE is not accepted by the provider
│ Error: expected warehouse_size to be one of [XSMALL SMALL MEDIUM LARGE XLARGE XXLARGE XXXLARGE X4LARGE X5LARGE X6LARGE], got 2XLARGE

Expected behavior
Provider can read 2X-Large and understand it is XXLARGE and not prompt to apply.
Code samples and commands
Terragrunt plan
  # snowflake_warehouse.this_warehouse["TRANSFORM"] will be updated in-place
  ~ resource "snowflake_warehouse" "this_warehouse" {
        id                                  = "TRANSFORM"
        name                                = "TRANSFORM"
      ~ warehouse_size                      = "2XLARGE" -> "XXLARGE"
        # (13 unchanged attributes hidden)
    }

Terragrunt state
# snowflake_warehouse.this_warehouse["TRANSFORM_PRODUCT"]:
resource "snowflake_warehouse" "this_warehouse" {
[...]
    id                                  = "TRANSFORM"
    name                                = "TRANSFORM"
[...]
    warehouse_size                      = "XXLARGE"
    warehouse_type                      = "STANDARD"
}

Snowflake SHOW WAREHOUSE
+---------+---------+--------+--------+
|name     |state    |type    |size    |
+---------+---------+--------+--------+
|TRANSFORM|SUSPENDED|STANDARD|2X-Large|
+---------+---------+--------+--------+

Seems like SHOW WAREHOUSES uses the warehouse sizes from https://docs.snowflake.com/en/user-guide/warehouses-overview, i.e. 2X-Large, 3X-Large, etc. The CREATE/ALTER WAREHOUSE on the other hand expects the sizes defined in the Terraform provider...

After upgrading to the latest version of this provider and adjusting our warehouse_sizes to fit the new required list, we ran into this issue as well:
# snowflake_warehouse.transforming will be updated in-place
  ~ resource "snowflake_warehouse" "transforming" {
        id                                  = "TRANSFORMING"
        name                                = "TRANSFORMING"
      ~ warehouse_size                      = "2XLARGE" -> "XXLARGE"
        # (12 unchanged attributes hidden)
    }

and when attempting to change to 2XLARGE, we see the following error:
│ Error: expected warehouse_size to be one of [XSMALL SMALL MEDIUM LARGE XLARGE XXLARGE XXXLARGE X4LARGE X5LARGE X6LARGE], got 2XLARGE
│
│   with snowflake_warehouse.transforming,
│   on snowflake_warehouse.tf line 29, in resource "snowflake_warehouse" "transforming":
│   29:   warehouse_size    = "2XLARGE"

i believe this is fixed with https://github.com/Snowflake-Labs/terraform-provider-snowflake/pull/1873