text:
Error in get_fillRepArrays()

When I run the simulation using the Fix_pollock_and_codGB_problems branch, The following lines of code:
https://github.com/lkerr/groundfish-MSE/blob/6549b3dcbb0b149aad98c61c0d8e47c6a929ff94/processes/runSim.R#L133-L138
produce an error message, when I try to run just a CodGOM model:
Error in `[<-`(`*tmp*`, r, m, , value = c(80886432.4078435, 80886432.4078435,  :
  subscript out of bounds
Called from: eval(substitute(expr), e)

and the traceback is:
5: eval(substitute(expr), e)
4: eval(substitute(expr), e)
3: within.list(stock, {
       omval$N[r, m, ] <- rowSums(J1N)
       omval$SSB[r, m, ] <- SSB
       omval$R[r, m, ] <- R
       omval$F_full[r, m, ] <- F_full
       omval$sumCW[r, m, ] <- sumCW
       omval$OFdStatus[r, m, ] <- OFdStatus
       omval$mxGradCAA[r, m, ] <- mxGradCAA
       omval$F_fullAdvice[r, m, ] <- F_fullAdvice
       omval$ACL[r, m, ] <- ACL
       omval$OFgStatus[r, m, ] <- OFgStatus
       omval$SSB_cur[r, m, ] <- SSB_cur
       omval$natM[r, m, ] <- natM
       omval$annPercentChange[r, m, ] <- NA
       meanSizeCN <- sapply(1:nrow(CN), function(x) laa[x, ] %*%
           paaCN[x, ])
       omval$meanSizeCN[r, m, ] <- meanSizeCN
       meanSizeIN <- sapply(1:nrow(CN), function(x) laa[x, ] %*%
           paaIN[x, ])
       omval$meanSizeIN[r, m, ] <- meanSizeIN
       omval$FPROXY[r, m, ] <- RPmat[, 1]
       omval$SSBPROXY[r, m, ] <- RPmat[, 2]
       omval$FPROXYT[r, m, ] <- RPmat[, 3]
       omval$SSBPROXYT[r, m, ] <- RPmat[, 4]
       omval$FRATIO[r, m, y] <- stock$res$F.report[length(stock$res$F.report)]/RPmat[,
           1][y]
       omval$SSBRATIO[r, m, y] <- stock$res$SSB[length(stock$res$SSB)]/RPmat[,
           2][y]
       if (mproc[m, "rhoadjust"] == "TRUE" & y > fmyearIdx & Mohns_Rho_SSB[y] >
           0.15) {
           omval$FRATIO[r, m, y] <- (stock$res$F.report[length(stock$res$F.report)]/(Mohns_Rho_F[y] +
               1))/RPmat[, 1][y]
           omval$SSBRATIO[r, m, y] <- (stock$res$SSB[length(stock$res$SSB)]/(Mohns_Rho_SSB[y] +
               1))/RPmat[, 2][y]
       }
       omval$FRATIOT[r, m, y] <- stock$F_full[y]/RPmat[, 3][y]
       omval$SSBRATIOT[r, m, y] <- stock$SSB[y]/RPmat[, 4][y]
       if (y == nyear) {
           if (nyear > length(cmip_dwn$YEAR)) {
               nprologueY <- nyear - length(cmip_dwn$YEAR)
               prologueY <- (cmip_dwn$YEAR[1] - nprologueY):(cmip_dwn$YEAR[1] -
                   1)
               yrs <- c(prologueY, cmip_dwn$YEAR)
           }
           else {
               yrs <- rev(rev(cmip_dwn$YEAR)[1:nyear])
           }
           omval$YEAR <- yrs
       }
       omval$relE_qI[r, m, ] <- relE_qI
       omval$relE_qC[r, m, ] <- relE_qC
       omval$relE_selCs0[r, m, ] <- relE_selCs0
       omval$relE_selCs1[r, m, ] <- relE_selCs1
       omval$relE_ipop_mean[r, m, ] <- relE_ipop_mean
       omval$relE_ipop_dev[r, m, ] <- relE_ipop_dev
       omval$relE_R_dev[r, m, ] <- relE_R_dev
       omval$relE_SSB[r, m, ] <- relE_SSB
       omval$relE_N[r, m, ] <- relE_N
       omval$relE_IN[r, m, ] <- relE_IN
       omval$relE_R[r, m, ] <- relE_R
       omval$relE_F[r, m, ] <- relE_F
       omval$conv_rate[r, m, ] <- conv_rate
       omval$Mohns_Rho_SSB[r, m, ] <- Mohns_Rho_SSB
       omval$Mohns_Rho_N[r, m, ] <- Mohns_Rho_N
       omval$Mohns_Rho_F[r, m, ] <- Mohns_Rho_F
       omval$Mohns_Rho_R[r, m, ] <- Mohns_Rho_R
       omval$mincatchcon[r, m, ] <- mincatchcon
       omval$SSBest[y, 1:length(stock$res$SSB)] <- stock$res$SSB
       omval$Fest[y, 1:length(stock$res$SSB)] <- stock$res$F.report
       omval$Catchest[y, 1:length(stock$res$SSB)] <- stock$res$catch.pred
       omval$Rest[y, 1:length(stock$res$SSB)] <- stock$res$N.age[,
           1]
       if (y == nyear) {
           omval$relTermE_SSB[r, m, ] <- relTermE_SSB
           omval$relTermE_CW[r, m, ] <- relTermE_CW
           omval$relTermE_CW[r, m, ] <- relTermE_CW
           omval$relTermE_IN[r, m, ] <- relTermE_IN
           omval$relTermE_qI[r, m, ] <- relTermE_qI
           omval$relTermE_R[r, m, ] <- relTermE_R
           omval$relTermE_F[r, m, ] <- relTermE_F
       }
   })
2: within(stock, {
       omval$N[r, m, ] <- rowSums(J1N)
       omval$SSB[r, m, ] <- SSB
       omval$R[r, m, ] <- R
       omval$F_full[r, m, ] <- F_full
       omval$sumCW[r, m, ] <- sumCW
       omval$OFdStatus[r, m, ] <- OFdStatus
       omval$mxGradCAA[r, m, ] <- mxGradCAA
       omval$F_fullAdvice[r, m, ] <- F_fullAdvice
       omval$ACL[r, m, ] <- ACL
       omval$OFgStatus[r, m, ] <- OFgStatus
       omval$SSB_cur[r, m, ] <- SSB_cur
       omval$natM[r, m, ] <- natM
       omval$annPercentChange[r, m, ] <- NA
       meanSizeCN <- sapply(1:nrow(CN), function(x) laa[x, ] %*%
           paaCN[x, ])
       omval$meanSizeCN[r, m, ] <- meanSizeCN
       meanSizeIN <- sapply(1:nrow(CN), function(x) laa[x, ] %*%
           paaIN[x, ])
       omval$meanSizeIN[r, m, ] <- meanSizeIN
       omval$FPROXY[r, m, ] <- RPmat[, 1]
       omval$SSBPROXY[r, m, ] <- RPmat[, 2]
       omval$FPROXYT[r, m, ] <- RPmat[, 3]
       omval$SSBPROXYT[r, m, ] <- RPmat[, 4]
       omval$FRATIO[r, m, y] <- stock$res$F.report[length(stock$res$F.report)]/RPmat[,
           1][y]
       omval$SSBRATIO[r, m, y] <- stock$res$SSB[length(stock$res$SSB)]/RPmat[,
           2][y]
       if (mproc[m, "rhoadjust"] == "TRUE" & y > fmyearIdx & Mohns_Rho_SSB[y] >
           0.15) {
           omval$FRATIO[r, m, y] <- (stock$res$F.report[length(stock$res$F.report)]/(Mohns_Rho_F[y] +
               1))/RPmat[, 1][y]
           omval$SSBRATIO[r, m, y] <- (stock$res$SSB[length(stock$res$SSB)]/(Mohns_Rho_SSB[y] +
               1))/RPmat[, 2][y]
       }
       omval$FRATIOT[r, m, y] <- stock$F_full[y]/RPmat[, 3][y]
       omval$SSBRATIOT[r, m, y] <- stock$SSB[y]/RPmat[, 4][y]
       if (y == nyear) {
           if (nyear > length(cmip_dwn$YEAR)) {
               nprologueY <- nyear - length(cmip_dwn$YEAR)
               prologueY <- (cmip_dwn$YEAR[1] - nprologueY):(cmip_dwn$YEAR[1] -
                   1)
               yrs <- c(prologueY, cmip_dwn$YEAR)
           }
           else {
               yrs <- rev(rev(cmip_dwn$YEAR)[1:nyear])
           }
           omval$YEAR <- yrs
       }
       omval$relE_qI[r, m, ] <- relE_qI
       omval$relE_qC[r, m, ] <- relE_qC
       omval$relE_selCs0[r, m, ] <- relE_selCs0
       omval$relE_selCs1[r, m, ] <- relE_selCs1
       omval$relE_ipop_mean[r, m, ] <- relE_ipop_mean
       omval$relE_ipop_dev[r, m, ] <- relE_ipop_dev
       omval$relE_R_dev[r, m, ] <- relE_R_dev
       omval$relE_SSB[r, m, ] <- relE_SSB
       omval$relE_N[r, m, ] <- relE_N
       omval$relE_IN[r, m, ] <- relE_IN
       omval$relE_R[r, m, ] <- relE_R
       omval$relE_F[r, m, ] <- relE_F
       omval$conv_rate[r, m, ] <- conv_rate
       omval$Mohns_Rho_SSB[r, m, ] <- Mohns_Rho_SSB
       omval$Mohns_Rho_N[r, m, ] <- Mohns_Rho_N
       omval$Mohns_Rho_F[r, m, ] <- Mohns_Rho_F
       omval$Mohns_Rho_R[r, m, ] <- Mohns_Rho_R
       omval$mincatchcon[r, m, ] <- mincatchcon
       omval$SSBest[y, 1:length(stock$res$SSB)] <- stock$res$SSB
       omval$Fest[y, 1:length(stock$res$SSB)] <- stock$res$F.report
       omval$Catchest[y, 1:length(stock$res$SSB)] <- stock$res$catch.pred
       omval$Rest[y, 1:length(stock$res$SSB)] <- stock$res$N.age[,
           1]
       if (y == nyear) {
           omval$relTermE_SSB[r, m, ] <- relTermE_SSB
           omval$relTermE_CW[r, m, ] <- relTermE_CW
           omval$relTermE_CW[r, m, ] <- relTermE_CW
           omval$relTermE_IN[r, m, ] <- relTermE_IN
           omval$relTermE_qI[r, m, ] <- relTermE_qI
           omval$relTermE_R[r, m, ] <- relTermE_R
           omval$relTermE_F[r, m, ] <- relTermE_F
       }
   }) at get_fillRepArrays.R#14
1: get_fillRepArrays(stock = stock[[i]])

Originally posted by @mle2718 in https://github.com/lkerr/groundfish-MSE/issues/218#issuecomment-1154257836

A couple of thoughts.

I'm running in Linux and calling ASAP3 natively (not with WINE).  I'm running inside Rstudio, usually by sourcing the "runSim.R" file. But sometimes, by just running bit of code.

It looks like the final ASAP model run may not be converging.
a. I get red colored text on the final model run about the covariance matrix not being positive definite.
b. I don't love this explanation for things going wrong because I also get this message in earlier years.

runSim.R seems to run just fine when I set nrep<-1.  However, when I set nrep<-2,  this error message appears.

Okay, this is definitely due to the me resetting the nrep after the containers are setup.

So convergence issues resolved?

@samtruesdell : I don't know. They were not the cause of the problem (it was my bad code).

repo: lkerr/groundfish-MSE


text:
Interesting feature in the reporting for middle ear events

It could be cool to report the mean ratio of power between events and (adaptive) baseline values:
in fact, one hypothesis to test is "are MEMA activity for tinnitus patients more powerful than for controls". When I inspect data of "pure" middle ear events, I think it's possible this hypothesis is true.

something like :
amplitude = rms(epoch)
num = amplitude[labels]
denum = amplitude[np.invert(labels)]
power_ratio = np.mean(num ** 2) / np.mean(denum ** 2)

option 2
amplitude = rms(epoch)
power_num = np.mean(amplitude[labels]**2)
power_denum = np.mean(amplitude**2)
power_ratio = power_num / power_denum

Better option 1

source: gharchive/issue

authors: RobinGuillard lkorczowski

repo: lkorczowski/Tinnitus-n-Sleep

license: MIT

license_type: permissive

license_source: github-api


text:
🛑 까사미아 www.guud.com is down

In 412d713, 까사미아 www.guud.com (http://www.guud.com) was down:

HTTP code: 0
Response time: 0 ms

Resolved: 까사미아 www.guud.com is back up in 9ac0658 after 9 minutes.

repo: lksjames/monitoring


text:
Create a framework to test cost vs GPT

Create a script, or integration test to compare the costs of using LLM Proxy vs purely GPT-4 (or GPT3.5)

Not full defined yet

Update: We want to use a set amount of prompts for the testing. Somewhere around 10-50 prompts. We can utilize the prompts from here:
https://luv-bansal.medium.com/benchmarking-llms-how-to-evaluate-language-model-performance-b5d061cc8679

Complete

repo: llm-proxy/llm-proxy


text:
Allow metric_kwds to be unspecified

A minor part of #65: you should be able to leave metric_kwds optional and not have to provide {}.

Pull Request Test Coverage Report for Build 85

2 of 2 (100.0%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.004%) to 92.584%

Totals

Change from base Build 84:
0.004%

Covered Lines:
1935

Relevant Lines:
2090

💛  - Coveralls

source: gharchive/pull-request

authors: coveralls jlmelville

repo: lmcinnes/pynndescent

license_source: bigquery


text:
No module named 'umap.parametric_umap'

Hi, when trying to use parametric UMAP I get the following error:
ModuleNotFoundError: No module named 'umap.parametric_umap'
I installed TensorFlow, and when I run pip install umap-learn[parametric_umap] I get the following:
Requirement already satisfied: umap-learn[parametric_umap] in /home/users/r******/anaconda3/envs/tf-gpu/lib/python3.8/site-packages (0.4.6)
Followed by some other output about the requirements already installed. Any ideas what might be wrong here?

You won't find the parametric_umap.py file in that site-packages folder. I had to download the Github code and move it into that location, then I renamed the pycache and then reran the calling script. It loads
import umap
from umap.parametric_umap import ParametricUMAP, load_ParametricUMAP
perfectly fine but I had trouble with actually running the example Jupyter notebook (see an issue I opened a few days ago). Not sure it's ready for public consumption yet.
Hope this helps.

What resolved this issue? I'm having the same problem.

authors: himaniyadav nihcompmed rggs

repo: lmcinnes/umap


text:
How does tranform function work?

Hi,
I'm using UMAP on a time-series data for ML purpose. Specifically, I'm training a reducer on the training data, and then transform the test data into the trained space. My question is, does reducer use future data (i.e., x_{>t}) during transforming sample x_t ?
Many thanks!

IIUC, yes, the entire array passed to transform() works like a 'batch' and the whole batch is optimized together.

Thanks for your help! Then there may be some information leakage when appling transform() on time-series data.

authors: Songweiping adilosa


text:
Add language to community

Allow community's admin to set the language for the published message in their channel, making it easier to read messages in a single language inside a community no matter what language their device is set to.

Hi!, I would want to get this one, could you assign it to me ?

authors: agnilondapakou grunch


text:
Observe in client is not working

Description
The client is requesting correctly with the observe option and getting an ACK from the server.
But after the first CON from the server my callback (sendRequestCB) is called and the interaction is getting deleted. (@see: coap_main.c:handleClientInteraction)
In return the client sends a RST instead of an ACK because he cannot find the previous deleted interaction. (@see: coap_main.c:CoAP_HandleIncomingPacket)
The server removes the subscriber because he received a RST (Cancel Observation).
Client code
CoAP_Result_t res = CoAP_StartNewGetObserveRequest_my("din0", mCoapSocket->Handle, &mReceiver, sendRequestCB);

CoAP_Result_t CoapClient::sendRequestCB(CoAP_Message_t* pRespMsg, NetEp_t* Sender) {
    printf("--------------------------------->>>>> sendRequestCB done\n");
    ...
}

CoAP_Result_t _rom CoapClient::CoAP_StartNewGetObserveRequest_my(char* UriString, SocketHandle_t socketHandle, NetEp_t* ServerEp, CoAP_RespHandler_fn_t cb) {
    CoAP_Message_t* pReqMsg = CoAP_CreateMessage(CON, REQ_GET, CoAP_GetNextMid(), NULL, 0, 0, CoAP_GenerateToken());
    if (pReqMsg != NULL) {
        CoAP_AppendUriOptionsFromString(&(pReqMsg->pOptionsList), UriString);
        AddObserveOptionToMsg(pReqMsg, 0);
        CoAP_blockwise_option_t blkOption;
        blkOption.Type = BLOCK_2;
        blkOption.BlockSize = BLOCK_SIZE_64;
        blkOption.MoreFlag = 0;
        blkOption.BlockNum = 0;
        AddBlkOptionToMsg(pReqMsg, &blkOption);
        return CoAP_StartNewClientInteraction(pReqMsg, socketHandle, ServerEp, cb);
    }

    INFO("- New GetRequest failed: Out of Memory\r\n");
    return COAP_ERR_OUT_OF_MEMORY;
}

Was this ever resolved? I seem to be having the same issue still today.

No not to my knowledge.
I'm using the workaround suggested by @nzfarmer .

library seems to have changed somewhat . can you tell me the workaround to this??? also i am notifying from the server end but nothing is on the client end

authors: baw-benji iavisingh srikumaresan

repo: lobaro/lobaro-coap


text:
🛑 Løbner.dk is down

In 66de694, Løbner.dk (https://www.løbner.dk) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Løbner.dk is back up in ecf7b68 after 12 minutes.

repo: lobner/status


text:
Provide an example

Provide an example , thanks U

I am curious if this is planned or not, thanks!

authors: frankcash rfyiamcool

repo: locationlabs/mockredis


text:
GEOMESA-1331 Fixing histogram out-of-bounds exception in stats estimation

Note: stacks on top of #978, please only consider last commit(s)
Signed-off-by: Emilio Lahr-Vivaz elahrvivaz@ccri.com

The final commit looks reasonable to me.

repo: locationtech/geomesa


text:
GEOMESA-1630 Tools export only requested attributes

'id' in attribute list can be used to export feature ID

Signed-off-by: Emilio Lahr-Vivaz elahrvivaz@ccri.com

@elahrvivaz do we care about ordering?
ahulbert@doubletrouble:/tmp/geomesa-accumulo_2.11-1.3.2-SNAPSHOT$ bin/geomesa export  -u root -p secret -c geomesa.local -f foobar -a name,id
id,name:String:index=true
26236,Hermione
3233,Severus
23623,Harry

yeah, id is always at the beginning - i thought about it but wasn't sure it mattered - do you care?

not really :) might be a little confusing if someone attempts to order it though. as long as it is documented i think its OK.

authors: elahrvivaz jahhulbert-ccri


text:
Task hatching in locust

Describe the bug

When we read the csv file in a task in locust, can we not predict the all rows of csv has been read from the csv.
For example, i have a csv of 10 rows and i want to pass in the locust for the performance and i am not seeing any way to see whether this all 10 rows has been hatched during the performance
Expected behavior

I want that the csv hatched once for all the rows.
Actual behavior

It hatched the csv randomly and some time it hatched the same row again and again.
Steps to reproduce

Environment

OS: Unix
Python version: 2.7
Locust version: 0.7.5
Locust command line that you ran:
Locust file contents (anonymized if necessary):

Hi! I'm afraid I dont really understand your question. Please share your locust plan. Also, you are on a very old version of locust, please update it.
You may want to have a look at https://github.com/SvenskaSpel/locust-plugins/blob/master/examples/csvreader.py

repo: locustio/locust

license: mit


text:
Can't override default values....

Since the typescript 2.4 update, it seems like the entire logic behind automapper has changed, which causes many breaking changes. The first was that while in the past, the source object was the standard, and all properties got copied, now the target comes first and only those properties you declare in your class will be copied. While I do not feel that this is the best logic for js/ts, it is easy enough to remedy. The one major shortfall in the new logic however, is that we are no longer able to set default values in our classes, because any property that has a value set will be ignored. at the vary least we should have the option to override the target. Am I missing this option, or is it in fact not implemented? Also, is there any chance of it being implemented in the future?

Hi @jphilippakos, thanks for getting in touch! I am not entirely sure I do understand what you are saying. I am not aware that I changed logic at all lately. Are you suggesting the JavaScript of the latest NPM package is behaving differently compared to other releases? Or are you using AutoMapper TypeScript source code directly in your project, resulting in any unexpected behavior? Cheers, Bert

Hi, sorry, I should have been more clear! It wasn't a recent change, we just recently ran into it since we had put off updating for a while.  The change was from 1.7.3 to 1.8.0. Before that update, all properties from the source object were copied (or ran through forMember), regardless of the structure of the target class. Ever since that update, it only copies properties that are declared in the current class, and that are not defined in the constructor. Declaring the properties, though not always ideal, is not a big deal.... However, if we are using a class that was not created solely to be used with automapper, we have to jump through hoops to set default values on the properties of the class, since automapper will now ignore any properties that have a value. I have not been able to find an option that will allow overriding existing values, my apologies if I missed something.

I think I get your point. I was not aware of this behavior at all. In other words, you were using a hidden gem ;) ... Would it be helpful to create a function like the (existing) counterpart ignoreAllNonExisting?

so an overrideExisting flag? That would definitely do the trick.... Especially if we can also make it a global setting when initializing automapper :)
Thank you!

Hi @jphilippakos, if the problem still occurs, could you please attach a small piece of sample code (a source and destination class, the mapping registration and calling code) to make this easier to reproduce for me?

I'm sorry for my delayed response. Using the latest version (1.8.3) or automapper-ts I haven't seen a difference.... Here is my sample code....
import "automapper-ts";

class SampleClass {
    propA = "class Property A";
    propB: string;
    propC: Date = null;
}

let source = {
    propA: "source Property A",
    propC: "1/10/2017",
    propD: "source Property D"
}

automapper.createMap("any", "SampleClass").convertToType(SampleClass)
    .forMember("propC", (opts: AutoMapperJs.IMemberConfigurationOptions) => {
        let val = opts.sourceObject[opts.sourcePropertyName];
        return new Date(val);
    });

let mapped = automapper.map("any", "SampleClass", source);

console.log(mapped);
import "automapper-ts";

class SampleClass {
    propA = "class Property A";
    propB: string;
    propC: Date = null;
}

let source = {
    propA: "source Property A",
    propC: "1/10/2017",
    propD: "source Property D"
}

automapper.createMap("any", "SampleClass").convertToType(SampleClass)
    .forMember("propC", (opts: AutoMapperJs.IMemberConfigurationOptions) => {
        let val = opts.sourceObject[opts.sourcePropertyName];
        return new Date(val);
    });

let mapped = automapper.map("any", "SampleClass", source);

console.log(mapped);

This is what I get....
SampleClass { propA: 'class Property A', propC: 2017-01-09T22:00:00.000Z }
However I expect to get...
SampleClass { propA: 'source Property A', propC: 2017-01-09T22:00:00.000Z }
(or even better....)
SampleClass { propA: 'class Property A', propC: 2017-01-09T22:00:00.000Z , propD: 'source Property D'}

Same issue here. I run TypeScript 2.6.1.
Default values defined in classes are kept instead of being overriden during the mapping result.

After debugging the unit test from #42, the issue is caused by this condition :
https://github.com/loedeman/AutoMapper/blob/8b3a230755814233acbd838abc5718a5636cbc46/src/ts/AutoMapperBase.ts#L88-L90
Comment seems to indicate an absuption that is wrong when using default value in classes.

The issue only occurs when property is not configured on the mapping.
Adding .forMember('prop', opts => opts.mapFrom('prop')) to the mapping configuration should help to workaround the issue.

authors: Toilal jphilippakos loedeman

repo: loedeman/AutoMapper


text:
Fix array bounds in UpdateValues

The lower limits needed an offset of +1 to avoid overwriting part of the previous results. Additionally, I have optimized the subroutine by fusing the three loops into one and computing the divisions only once.
Maybe @oscarmarino could also check if this also fixes #96 .

Seems that has been fixed the issue.

authors: Andres-MG oscarmarino


text:
ERR pkg/control/config.go:194 > invalidate pipeline configs: component code 'interceptor/transformer/' is not exists

I wrote such a configuration, and then started to report an error. Do I have a format problem, using version 1.2.0
pipelines:

name: harbor-proxy
sources:

type: file
name: demo
paths:

/var/log/harbor/proxy.log
interceptors:

type: transformer
actions:

action: regex(body)
pattern: ^(?\D+\d+.\S+.)(?\S+.)(?\S+.)(?\S+.)(-?..)(?[A-Z]+.)(?\S+.\S+.)(?\d+.)(?\d+.)(?\S+..)(?[A-z]+)(?.*)
if: equal(client, Prometheus)
then:

action: dropEvent()

看到问题了，1.2.0没有这个功能

repo: loggie-io/loggie


text:
set maxprocs error: invalid format for CGroupSubsys

What version of Loggie?
v1.4.0
Expected Behavior

2023-03-07 19:10:11 INF cmd/loggie/main.go:69 > version: v1.4.0-33d018f
2023-03-07 19:10:11 FTL cmd/loggie/main.go:76 > set maxprocs error: invalid format for CGroupSubsys: "12:pids:/system.slice/containerd.service/kubepods-pod6392e259_4635_4667_a568_3cc95ecce1eb.slice:cri-containerd:93d73b291fa5e0ec74f1c7673ab4aebb38210e8a0012227d922cba55dd614eb5"

Actual Behavior

loggie DaemonSets deploy to k8s
Steps to Reproduce the Problem

I don't know if it is a problem with the "go.uber.org/automaxprocs/maxprocs", please provide your environment information, such as the operating system version, the container runtime, the k8s version, etc.

provide

Kubernetes ： v1.21.5
OS: centos 8.2
Kernal: 4.19.0-240.23.21.el8_2
containerd: v1.5.7
loggie daemonSet yaml：
---
# Source: loggie/templates/loggie-rbac.yaml
apiVersion: v1
kind: ServiceAccount
metadata:
  name: loggie
  namespace: monitoring
---
# Source: loggie/templates/loggie-configmap.yaml
apiVersion: v1
data:
  loggie.yml: |-
    loggie:
      defaults:
        sink:
          type: loki
          url: http://loki.monitoring:3100/loki/api/v1/push
      discovery:
        enabled: true
        kubernetes:
          containerRuntime: containerd
          dynamicContainerLog: true
          parseStdout: false
          rootFsCollectionEnabled: true
          typeNodeFields:
            clusterlogconfig: ${_k8s.clusterlogconfig}
            nodename: ${_k8s.node.name}
            os: ${_k8s.node.nodeInfo.osImage}
          typePodFields:
            containername: ${_k8s.pod.container.name}
            logconfig: ${_k8s.logconfig}
            namespace: ${_k8s.pod.namespace}
            nodename: ${_k8s.node.name}
            podname: ${_k8s.pod.name}
      http:
        enabled: true
        port: 9196
      monitor:
        listeners:
          filesource:
            period: 10s
          filewatcher:
            period: 5m
          pipeline:
            period: 10s
          queue:
            period: 10s
          reload:
            period: 10s
          sink:
            period: 10s
        logger:
          enabled: true
          period: 30s
      reload:
        enabled: true
        period: 10s
kind: ConfigMap
metadata:
  name: loggie-config-loggie
  namespace: monitoring
---
# Source: loggie/templates/loggie-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: loggie-role-loggie
rules:
  - apiGroups:
    - ""
    resources:
      - pods
      - pods/log
      - nodes
    verbs:
      - get
      - watch
      - list
  - apiGroups:
    - ""
    resources:
      - events
    verbs:
      - get
      - watch
      - list
      - update
      - create
      - patch
  - apiGroups:
    - extensions
    - apps
    resources:
      - deployments
    verbs:
      - get
      - list
      - watch
  - apiGroups:
    - loggie.io
    resources:
      - logconfigs
      - logconfigs/status
      - clusterlogconfigs
      - clusterlogconfigs/status
      - sinks
      - interceptors
    verbs:
      - get
      - list
      - watch
      - update
      - patch
  - apiGroups:
    - coordination.k8s.io
    resources:
      - leases
    verbs:
      - create
      - get
      - list
      - update
  - apiGroups:
    - metrics.k8s.io
    resources:
      - pods
    verbs:
      - get
      - list
---
# Source: loggie/templates/loggie-rbac.yaml
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: loggie-rolebinding-loggie
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: loggie-role-loggie
subjects:
  - kind: ServiceAccount
    name: loggie
    namespace: monitoring
---
# Source: loggie/templates/loggie-service.yaml
apiVersion: v1
kind: Service
metadata:
  labels:
    app: loggie
    instance: loggie
  name: loggie
  namespace: monitoring
spec:
  ports:

    - name: monitor
      port: 9196
      targetPort: 9196
  selector:
    app: loggie
    instance: loggie
  type: ClusterIP
---
# Source: loggie/templates/loggie-agent-daemonset.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  labels:
    app: loggie
    instance: loggie
  name: loggie
  namespace: monitoring
spec:
  selector:
    matchLabels:
      app: loggie
      instance: loggie
  template:
    metadata:
      labels:
        app: loggie
        instance: loggie
    spec:
      containers:
        - args:
            - -meta.nodeName=$(HOST_NAME)
            - -config.system=/opt/loggie/loggie.yml
            - -config.pipeline=/opt/loggie/pipeline/*.yml
            - -log.jsonFormat=true
          env:
            - name: HOST_NAME
              valueFrom:
                fieldRef:
                  apiVersion: v1
                  fieldPath: spec.nodeName
            - name: TZ
              value: Asia/Shanghai
          image: loggieio/loggie:v1.4.0
          name: loggie
          resources:
            limits:
              cpu: 2
              memory: 2Gi
            requests:
              cpu: 100m
              memory: 100Mi
          volumeMounts:

            - mountPath: /var/log/pods
              name: podlogs
            - mountPath: /var/lib/docker/containers
              name: dockercontainers
            - mountPath: /var/lib/kubelet/pods
              name: kubelet
            - mountPath: /opt/loggie/loggie.yml
              name: loggie-config
              subPath: loggie.yml
            - mountPath: /opt/loggie/pipeline
              name: pipeline
            - mountPath: /data/
              name: registry
            - mountPath: /run/containerd/containerd.sock
              name: containerdsocket

      serviceAccountName: loggie
      nodeSelector:
        {}
      affinity:
        {}
      tolerations:
        - effect: NoSchedule
          key: node-role.kubernetes.io/master
          operator: Exists
        - effect: NoSchedule
          key: node-role.kubernetes.io/control-plane
          operator: Exists
      volumes:
        - hostPath:
            path: /var/log/pods
            type: DirectoryOrCreate
          name: podlogs
        - hostPath:
            path: /var/lib/docker/containers
            type: DirectoryOrCreate
          name: dockercontainers
        - hostPath:
            path: /var/lib/kubelet/pods
            type: DirectoryOrCreate
          name: kubelet
        - configMap:
            defaultMode: 384
            name: loggie-config-loggie
          name: loggie-config
        - hostPath:
            path: /data/loggie-loggie
            type: DirectoryOrCreate
          name: registry
        - emptyDir: {}
          name: pipeline
        - hostPath:
            path: /run/containerd/containerd.sock
            type: ""
          name: containerdsocket
      hostPID: true

  updateStrategy:
    type: RollingUpdate
---
# Source: loggie/templates/loggie-servicemonitor.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: loggie-config-loggie
  namespace: monitoring
  labels:
    app: loggie
    instance: loggie
    release: metrics
spec:
  jobLabel: jobLabel
  endpoints:
  - port: monitor
    interval: 30s
    honorLabels: true
  selector:
    matchLabels:
      app: loggie
      instance: loggie

I feel that the cgoup v2 version will cause this problem, because the lower version of automaxprocs does not support it.
refer: https://github.com/uber-go/automaxprocs/releases/tag/v1.5.0
@dongjiang1989 Could you Please change the content of the PR to upgrade the version of automaxprocs and try again?

update v1.5.1 fix bug
fixs #488

authors: dongjiang1989 ethfoo imlense


text:
BDD Kernel & Factory usage

Hi,
Just wanted to start off by saying this is a great library to work with Boolean Formula's and solvers, keep up the good work. I've been developing an algorithm using the BDD implementation provided in the LogicNG library and encountered a couple of limiting factors for both appending to the BDD & finally converting the result of the "allSat" (byte[]) method back it's input Variables.
First of all, the major issue I encountered during my use of the BDD implementation was that in order to use all the BDD functionality I am forced to use a BDDKernel class for the rest of the BDD implementation to function and therefore when some methods that I require for my algorithm to work are restricted due to being private I was forced to duplicate the entire BDDKernel source and have it extend the BDDKernel too. This resulted in duplication of all the variables found in the BDDKernel class which are all mostly private. This is not ideal and the major reason why I'm trying to reach out and request a simple fix that would help me use the BDDKernel without having to duplicate the code into my own source (including the BDDCache, BDDFactory, BDDPrime).
If the method "makeNode" was changed from a private to protected modifier, this would correct my problem and opens up the possibility for basic extensions of the Kernel allowing developers to add to the node list and construct there own methods and custom functionality.
Secondly, I identified that the BDDFactory already contains a mapping by Variable Ordering to index which matches exactly to the byte[] output you receive from calling the allSat (1) method from the BDD, obviously because we are actually talking about the "level" the variable is on. If a simple method was providing in the factory to retrieve the Variable based on the index it would make everything much easier for developers to construct a result from the byte array.
/**
 * Returns a Variable object matching to the index according to the Variable Ordering.
 *
 * @param index - The expected index of the Variable
 * @return Variable - the Variable to which the specified index is mapped, otherwise null if the index contains no mapping
 */
public Variable getVariableByIndex(int index) {
    return this.idx2var.get(index);
}

Here is an example of how I converted a byte array into it a list of Variables:
return cutSet -> IntStreamEx.range(cutSet.length)
                    .filter(index -> cutSet[index] == 1)
                    .mapToObj(factory::getVariableByIndex)
                    .toImmutableList();

Thanks

Hi,
thank you very much for your kind words. In the upcoming release of LogicNG 2.0 which is currently under development and which is expected in June 2020, most of the private modifiers of LogicNG (including the ones you want) will be protected therefore allowing other developers to overwrite them in their own subclasses.
Also the additional method for retrieving variables by their index is no problem to include.
So the question is: is a productive release in June 2020 enough for your project, or would you require a release 1.6.3 - since we use the library quite heavily in many business critical applications, we always want to do proper releases of new functionality.

Thanks for your response, at this stage we can continue with our current implementation until the release in June. I understand that many business critical applications are using the library and you can now add our application to that list, it is significantly important that the result we get back from the library is correct and accurate (as a matter of safety & criticality) therefore we are happy to wait if you can assure everything is tested and correct.
Thanks!

Thanks LogicNG Team, I updated to the latest version of the library and was able to refactor my code to how it needed to be. I was able to easily extend the Kernel and add my custom code without any issue. The adjustments to the BDDFactory and the introduction of BDDOperations was fine, it was easy to instantiate a new BDDOperations instance to help derive the 1 solutions. Keep up the good work.
One last thing that we discovered when exercising the BDD Kernel with a large Formula input was that the the code used to expand the size of the nodes array was hitting an IndexOutOfBoundsException because it didn't seem to grow big enough after resize. It then became necessary for us to scale the initial node array size to about 100 times the size of our known node count to avoid the condition where the node array would be resized. If the issue still persists in this version I'll open a new ticket to see if you guys can find a fix. Ideally if the node array could be replaced with a Collection implementation (i.e. a Map) it could grow more dynamically and maintain the requirement of finding nodes by a hash.

authors: PHMT-CW czengler

repo: logic-ng/LogicNG


text:
🛑 Gestión de Proyectos is down

In 57b39da, Gestión de Proyectos (https://p.potus.ar) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Gestión de Proyectos is back up in 69e28db after 7 minutes.


text:
Outdir: Save in timestamped subfolder?

Overview
The current behavior is that there is a configured default outdir, and within that, it saves the name of the recipe being run, and an optional inner subdir if running w/ fast-run. This setup isn't bad. I'm just wondering if we want to have a further DATE or DATETIME so that files don't get overwritten.
There is an advantage to files getting overwritten though; it reduces clutter.
Advantage to DATE over DATETIME is less clutter, and if it errors out, you can continue where you left off and it will put in the same folder.
I do like the idea of saving to a DATETIME subfolder.

Yes, this would be useful. I had such an option in the previous implementation where outputs were placed in a timestamped subfolder of the output directory (to represent a specific run) and then also copied to the output directory. That way the output directory is the latest files of the various runs since not each run produced all the needed files. The timestamps on the files in the overall output directory helped tell which run produced them, and to know when an update of the other files might be needed.

I like that option as well.

repo: loinc/comp-loinc


text:
Incorrectly setting fixed height on add reviews div causing error

Using a fixed height, even with relative units, is dangerous; fixed height should rarely be used. Here, the div's contents will make it the correct height anyway. If you need to use a height, often you should only be setting ''min height'.

done

authors: SunnyAnter TobyDS

repo: london-codeworks-thesis/spot


text:
Fix issue with overlay for shop

The .overlay class was overriding some things in Rizzo and covering the page on shop.

global CSS fun! 👍

indeed

repo: lonelyplanet/rizzo-next


text:
Change Language at run time from other Screen

My question is similar to https://github.com/long1eu/flutter_i18n/issues/15. But have an issue understanding it as it's not similar to the class generated by the plugin.
The gist shows changing the language from the Main/Home screen. In my I have a settings screen and user can change their language. When a language is selected, the new language should be reflected.
I am using the below code in my Settings page, when the user changes the language. But it does not have any effect.

S.delegate.load(new Locale(value));

what I am doing wrong? What is the right approach? Thanks in advance.

This is my main app code. Any help would be useful.
runApp(
    DesignsBlocProvider(
      child: AuthBlocProvider(
        child: UserBlocProvider(
          child: MaterialApp(
            onGenerateTitle: (BuildContext context) => S.of(context).app_title_name,
            theme: ThemeData(
              primarySwatch: Colors.pink,
            ),
            home: BlouseDesignApp(),
            localizationsDelegates: [
              S.delegate,
              GlobalMaterialLocalizations.delegate,
              GlobalWidgetsLocalizations.delegate
            ],
            supportedLocales: S.delegate.supportedLocales,
            localeResolutionCallback:
            S.delegate.resolution(fallback: const Locale('en', '')),
          ),
        ),
      ),
    ),
  );

Same problem. Anyone can help? Thanks

I am holding my app release just for this issue. If someone can help it
would be of great help. Thanks in advance.
Thanks,
Purusothaman Ramanujam
On Fri, 10 May, 2019, 11:37 PM mis0025033, notifications@github.com wrote:

Same problem. Anyone can help? Thanks
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/long1eu/flutter_i18n/issues/65#issuecomment-491381081,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAIHDZ6DYQKTVR24AX567KLPUW2V3ANCNFSM4HK3TDKA
.

Refer to https://medium.com/saugo360/managing-locale-in-flutter-7693a9d4d6ac
Section: Allowing the user to change the locale
I can now switch to different language in app setting page for whole app
Hope this example can help you

I have seen this before. But isn't different than what this plugin
generates as a code?
Your are using this plugin? Thanks for your time.
Thanks,
Purusothaman Ramanujam
On Sat, 11 May, 2019, 12:42 PM mis0025033, notifications@github.com wrote:

Refer to
https://medium.com/saugo360/managing-locale-in-flutter-7693a9d4d6ac
http://url
Section: Allowing the user to change the locale
I can now switch to different language in app setting page for whole app
Hope this example can help you
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/long1eu/flutter_i18n/issues/65#issuecomment-491486648,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAIHDZ5I6U24Q356DBOZ6XTPUZWUDANCNFSM4HK3TDKA
.

I am using flutter_i18n plugin, but when i use load function, it can't update the locale for the app.
So, I think S.delegate may not work well or there is some kind of information hasn't been mentioned in the document.
So, I try to find out is there any other approach can only update the locale for whole app from any page, and i found this example. And just implement this for updating locale and the rest i am still using flutter_i18n
static void setLocale(BuildContext context, Locale newLocale){
  _MyAppState state = context.ancestorStateOfType(TypeMatcher<_MyAppState>());
  state.setState(() {
    state.locale = newLocale;
  });
}

I don't think this is a very good solution, but it can solve my problem at this moment, and i hope flutter_i18n can provide a detail document to explain how to implement updating locale by user

Wow. Thanks a lot. You saved my day. Thanks again for your help.
I am sure this should be somewhere documented in the wiki.
Thanks,
R.Purusothaman
On Sat, May 11, 2019 at 3:35 PM mis0025033 notifications@github.com wrote:

I am using flutter_i18n plugin, but when i use load function, it can't
update the locale for the app.
So, I think S.delegate may not work well or there is some kind of
information hasn't been mentioned in the document.
So, I try to find out is there any other approach can only update the
locale for whole app from any page, and i found this example. And just
implement this for updating locale and the rest i am still using
flutter_i18n
static void setLocale(BuildContext context, Locale newLocale){
_MyAppState state = context.ancestorStateOfType(TypeMatcher<_MyAppState>());
state.setState(() {
state.locale = newLocale;
});
}
I don't think this is a very good solution, but it can solve my problem at
this moment, and i hope flutter_i18n can provide a detail document to
explain how to implement updating locale by user
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/long1eu/flutter_i18n/issues/65#issuecomment-491497852,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAIHDZ4PZEIJPQPFRNTD6KDPU2K6JANCNFSM4HK3TDKA
.

Please confirm on the best approach. I am not sure if this is the only
approach which is best.
Thanks,
Purusothaman Ramanujam
On Mon, 13 May, 2019, 3:16 PM Noor Dawod, notifications@github.com wrote:

Closed #65 https://github.com/long1eu/flutter_i18n/issues/65.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/long1eu/flutter_i18n/issues/65#event-2336372907, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAIHDZYPGGD3NLCYSLPLA5TPVE2G5ANCNFSM4HK3TDKA
.

This is beyond the scope of this plugin, @Purus, maybe you can check StackOverflow instead?

I think it is in the scope of this plugin because the i18n file is generated by the plugin.
I've created a pull request to address this issue.
Check #97 .

authors: Purus mis0025033 noordawod rmkpatchaa


text:
🛑 LongPort Web - 资讯阅读页面 is down

In b24b2fa, LongPort Web - 资讯阅读页面 (https://longportapp.com/news/75979678) was down:

HTTP code: 404
Response time: 406 ms

Resolved: LongPort Web - 个人主页 - 原创列表 is back up in 8187570.

repo: longbridgeapp/uptime


text:
🛑 Posie is down

In 45bc919, Posie (https://posie.jau.co.jp) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Posie is back up in ac1df48.

repo: longforme/longforme-uptime-monitor


text:
🛑 MAHO is down

In 88bd7e7, MAHO (https://maho.jau.co.jp) was down:

HTTP code: 0
Response time: 0 ms

Resolved: MAHO is back up in 058f9c7.


text:
feat(setting): add tolerate node disk empty selector volume setting

ref: longhorn/longhorn#4826

@ChanYiLin Also, the chart manifests need to update.

authors: ChanYiLin innobead

repo: longhorn/longhorn-manager


text:
controller: mark replica failed when we detect a bad replica while doing SnapshotPurge

For the error during the SnapshotPurge progress, it will be recorded by
the engine/replica process automatically. Then once there is an error
in the engine's purgeStatus, the volume controller will mark the replica
as failed.
longhorn/longhorn#1895

Running E2E core tests

Running E2E core tests

Is there any purge error that can be ignored?
@shuo-wu I think no error can be ignored in e.Status.PurgeStatus. The error replica is already purging snapshots already caught in the start snapshot purge command, and it is not recorded to e.Status.PurgeStatus, it is just recorded in the volume's event.

Is there any purge error that can be ignored?
@shuo-wu I think no error can be ignored in e.Status.PurgeStatus. The error replica is already purging snapshots already caught in the start snapshot purge command, and it is not recorded to e.Status.PurgeStatus, it is just recorded in the volume's event.

There is one E2E test that failed. It is because of the test's logic and it is tracked at https://github.com/longhorn/longhorn/issues/2167

There is one E2E test that failed. It is because of the test's logic and it is tracked at https://github.com/longhorn/longhorn/issues/2167

This PR is ready to be review

This PR is ready to be review


text:
test(manual): Sync up with backup target during DR volume activation

longhorn/longhorn#5292
longhorn/longhorn#7945
Which issue(s) this PR fixes:
longhorn/longhorn#5292
longhorn/longhorn#7945
What this PR does / why we need it:
Add the manual test case to check synchronization with the backup target during DR volume activation.
Special notes for your reviewer:
@shuo-wu
@jillian-maroket
Additional documentation or context

Hi @innobead,
Sorry, I deleted the branch longhorn:issue7945 because my PR is not from a branch of my forked repo but instead a branch directly on the upstream repo.

repo: longhorn/longhorn-tests


text:
[FEATURE] Longhorn snapshot space management

Is your feature request related to a problem? Please describe (👍 if you like this request)
Currently, when creating a longhorn snapshot (in-cluster) of a volume will not respect any provision factors except the fixed upper limit of the number of volume snapshots, so it would cause unexpected disk space exhaustion which means it's unable to prevent this beforehand by having a better space plan.
The goal is to introduce a mechanism to manage snapshot space usage when creating snapshots.
Describe the solution you'd like
When creating a snapshot, should respect the below factors. All factors should be considered together.

A customized max number of snapshots allowed globally or volume-specific setting.
A quote for snapshot usage global, node, or disk specific. This will be another factor to impact replica scheduling.
Introduce snapshot scheduling like replica scheduling to determine if the disk space is enough for creating a snapshot next to the replica. (cross disks allowed). This should be similar to creating a volume by respecting disk usage first.

Describe alternatives you've considered

Additional context
cc @longhorn/dev

My proposal to this feature is that:

[ ] 1. Add a setting snapshot-max-count. The default value is 250. This complies with the current fixed limit.
[ ] 2. Add snapshotMaxCount and snapshotMaxSize to Volume spec. The default snapshotMaxCount is from the snapshot-max-count setting. The default snapshotMaxSize is 0, which means no limit on size.
[ ] 3. Enforce the limit in the engine controller. If either count/size reaches the limit, the system doesn't allow to create a snapshot.

As discussed with @FrankYang0529 , we will focus on the first item below to introduce the fundamental limitation for snapshot creation. About the intelligent part for snapshot scheduling (item 2 and 3), they will be planned in the future depending on user feedback.

A customized max number of snapshots allowed globally or volume-specific setting.
A quote for snapshot usage global, node, or disk specific. This will be another factor to impact replica scheduling.
Introduce snapshot scheduling like replica scheduling to determine if the disk space is enough for creating a snapshot next to the replica. (cross disks allowed). This should be similar to creating a volume by respecting disk usage first.

@derekbit @FrankYang0529 do we need to reduce the current default number snapshot 250? What's the common number in other solutions?
It seems decreasing the number is also helpful to prevent potential disk exhaustion. WDYT?

I'm fine with the number, but we can reduce the default value to a smaller number
Maximum snapshot numbers in some products

OpenEBS: no limit for cstor and 512 for jiva
Rook/Ceph: 400

@FrankYang0529 need to update chart manifests at https://github.com/longhorn/longhorn/pull/7479/files, also deploy/longhorn.yaml which is generated by https://github.com/longhorn/longhorn/blob/master/scripts/generate-longhorn-yaml.sh

@FrankYang0529 Are these settings available on Longhorn UI? I can't find related settings when creating a volume from Longhorn UI.
If using API to create a volume, when I called the create action with snapshotMaxCount and snapshotMaxSize fields:
$ curl --header "Content-Type: application/json"   --request POST   --data '{"size": "1073741824", "name": "test-7", "snapshotMaxCount": 250, "snapshotMaxSize": 2357198848}'   http://34.199.50.114:30000/v1/volumes?action=create

It seems take no effects:
$ kubectl get volumes test-7 -n longhorn-system -oyaml | grep snapshot
  snapshotDataIntegrity: ignored
  snapshotMaxCount: 250
  snapshotMaxSize: "0"
    snapshot: ""

Could you help to elaborate more on how to create a volume with specific snapshotMaxCount and snapshotMaxSize? Thank you!

Hi @yangchiu, thanks for testing the feature. Unfortunately, UI is not ready currently. @innobead, do we want to move to ready for testing after UI is ready?
My test steps is using YAML directly.
volume-with-max-count
# volume-with-max-count.yaml
apiVersion: longhorn.io/v1beta2
kind: Volume
metadata:
  name: test-vol-with-max-count
  namespace: longhorn-system
spec:
  frontend: blockdev
  numberOfReplicas: 2
  size: "2147483648"
  snapshotDataIntegrity: ignored
  snapshotMaxCount: 3
  snapshotMaxSize: "0"

k apply -f volume-with-max-count.yaml
Attach with maintenance mode.
Take 2 snapshots.
Revert to the first snapshot.
Take 1 snapshot.
Revert to the first snapshot.
Take 1 snapshot. (should be failed)
Delete 1 snapshot.
Take 1 snapshot again.

volume-with-max-size
# volume-with-max-size.yaml
apiVersion: longhorn.io/v1beta2
kind: Volume
metadata:
  name: test-vol-with-max-size
  namespace: longhorn-system
spec:
  engineImage: frankyang/longhorn-engine:arm64-latest
  frontend: blockdev
  numberOfReplicas: 2
  size: "1073741824" # 1G
  snapshotDataIntegrity: ignored
  snapshotMaxCount: 250
  snapshotMaxSize: "2357198848" # 2.2G

# pod-with-max-size.yaml
apiVersion: v1
kind: Pod
metadata:
  name: test-volume-with-max-size
  namespace: default
spec:
  restartPolicy: Always
  containers:
  - name: volume-test
    image: nginx:stable-alpine
    imagePullPolicy: IfNotPresent
    livenessProbe:
      exec:
        command:
          - ls
          - /data/lost+found
      initialDelaySeconds: 5
      periodSeconds: 5
    volumeMounts:
    - name: volv
      mountPath: /data
    ports:
    - containerPort: 80
  volumes:
  - name: volv
    persistentVolumeClaim:
      claimName: test-vol-with-max-size

k apply -f volume-with-max-size.yaml
Create PV/PVC.
k apply -f pod-with-max-size.yaml
Get into pod shell.
cd /data
dd if=/dev/urandom of=file1 bs=100M count=10
Take a snapshot.
rm file1
dd if=/dev/urandom of=file2 bs=100M count=10
Take a snapshot.
rm file2
dd if=/dev/urandom of=file3 bs=100M count=10
Take a snapshot. (should be failed)

UI can be later but please ensure we have an UI ticket for this feature.
cc @scures

Related to https://github.com/longhorn/longhorn/issues/7555#issuecomment-1878120572

@FrankYang0529 :point_up: Please provide the UI change need for @scures in https://github.com/longhorn/longhorn/issues/7522.

@FrankYang0529
Tested on master-head (longhorn-manager 7a56d71). If I use updateSnapshotMaxCount action to update snapshot max count, It seems take no effect:

Create volume with snapshot max count = 3:

cat << EOF > volume-with-max-count.yaml
apiVersion: longhorn.io/v1beta2
kind: Volume
metadata:
  name: test-vol-with-max-count
  namespace: longhorn-system
spec:
  frontend: blockdev
  numberOfReplicas: 2
  size: "2147483648"
  snapshotDataIntegrity: ignored
  snapshotMaxCount: 3
  snapshotMaxSize: "0"
EOF
kubectl apply -f volume-with-max-count.yaml

Create 3 snapshots from UI
Try to create 4th snapshot from UI, error message shown:

failed to create snapshot: proxyServer=10.42.2.8:8501 destination=10.42.2.8:10010:
failed to snapshot volume: rpc error: code = Unknown desc = failed to create snapshot for volume 10.42.2.8:10010:
rpc error: code = Unknown desc = snapshot count usage 3 is equal or larger than snapshotMaxCount 3

Call API to update snapshot max count:

curl --header "Content-Type: application/json" \
>   --request POST \
>   --data '{"snapshotMaxCount": 4}' \
>   http://54.221.209.46:30000/v1/volumes/test-vol-with-max-count?action=updateSnapshotMaxCount

Look up volume test-vol-with-max-count, the snapshotMaxCount value has been updated to 4:

$ kubectl get volumes -n longhorn-system test-vol-with-max-count -oyaml | grep snapshot
      {"apiVersion":"longhorn.io/v1beta2","kind":"Volume","metadata":{"annotations":{},"name":"test-vol-with-max-count","namespace":"longhorn-system"},"spec":{"frontend":"blockdev","numberOfReplicas":2,"size":"2147483648","snapshotDataIntegrity":"ignored","snapshotMaxCount":3,"snapshotMaxSize":"0"}}
    setting.longhorn.io/remove-snapshots-during-filesystem-trim: ignored
    setting.longhorn.io/snapshot-data-integrity: ignored
  snapshotDataIntegrity: ignored
  snapshotMaxCount: 4
  snapshotMaxSize: "0"
    snapshot: ""

Try to create 4th snapshot from UI again, error message still shown:

Could you help to confirm this? Thank you!

Could you help to confirm this? Thank you!

Hi @yangchiu, thanks for testing the feature. There is some update in https://github.com/longhorn/longhorn/issues/7480 and I didn't address in snapshot APIs. I create to PRs to fix it.

https://github.com/longhorn/longhorn-manager/pull/2441
https://github.com/longhorn/longhorn-instance-manager/pull/362

Verified passed on master-head (longhorn-manager 1cb5e25) following test steps https://github.com/longhorn/longhorn/issues/6563#issuecomment-1878095903 and https://github.com/longhorn/longhorn-manager/pull/2140#issue-1892082860.

@FrankYang0529
If using API to create a volume, when I called the create action with snapshotMaxCount and snapshotMaxSize >>fields:
$ curl --header "Content-Type: application/json"   --request POST   --data '{"size": "1073741824", "name": "test-11", >>"snapshotMaxCount": 16, "snapshotMaxSize": "3430940672"}'   http://34.199.50.114:30000/v1/volumes?action=create

It seems take no effects:
$ kubectl get volumes test-11 -n longhorn-system -oyaml | grep snapshot
 snapshotDataIntegrity: ignored
 snapshotMaxCount: 250
 snapshotMaxSize: "0"
   snapshot: ""

Hi @yangchiu, thanks for testing the feature. Unfortunately, UI is not ready currently. @innobead, do we want to move >to ready for testing after UI is ready?
My test steps is using YAML directly.

Hi @FrankYang0529, besides UI, is (the above) API call for creating volume with customized snapshotMaxCount and snapshotMaxSize also not ready?
It would cause @scures not able to implement the UI part.
Could you help to check this? Thank you!

My request looks like this:
snapshotMaxCount: 10
snapshotMaxSize: "200"
size: "1Gi"

which should pass the validation?

Hi @scures, the snapshotMaxSize is not enough to take at least 2 snapshot, so you can try following:
snapshotMaxCount: 10
snapshotMaxSize: "3Gi"
size: "1Gi"

My request looks like this:
snapshotMaxCount: 10
snapshotMaxSize: "200"
size: "1Gi"

which should pass the validation?

Hi @scures, the snapshotMaxSize is not enough to take at least 2 snapshot, so you can try following:
snapshotMaxCount: 10
snapshotMaxSize: "3Gi"
size: "1Gi"

If it's not 0, it's always expected to receive the string with Gi or Mbi (instead of 3 -> 3Gi) ? @FrankYang0529

The field is like size. Users can also give a number with string format like:
snapshotMaxCount: 10
snapshotMaxSize: "3221225472"
size: "1Gi"

Retest after https://github.com/longhorn/longhorn/issues/7522 completed.

@FrankYang0529 Are these settings supported in v2 volume?
Tested on master-head (longhorn-ui f865934). Created a v2 volume, I can find snapshotMaxCount and snapshotMaxSize fields in the volume:
$ kubectl get volumes test-1 -n longhorn-system -oyaml | grep snapshot
    setting.longhorn.io/remove-snapshots-during-filesystem-trim: ignored
    setting.longhorn.io/snapshot-data-integrity: ignored
  snapshotDataIntegrity: disabled
  snapshotMaxCount: 3
  snapshotMaxSize: "2362232013"
    snapshot: ""

But they seem to have no effect. I can randomly create snapshots that violate the rules:

No, that is not supported in v2.
Currently, what v2 can support are white list listed in https://longhorn.io/docs/1.6.0/v2-data-engine/features/. However, we should do the following items later after 1.6.

Mention what features are supported in v1 or v2 in the existing feature pages by reviewing all existing feature pages later
Prevent unsupported volume operations in the validator webhook instead of handling in controller or IM proxy calls, as when an unsupported operation happens, users would not notice that unless we will update the impacted resources (volume, engine, replica) with extra conditions.

cc @longhorn/dev-data-plane

Verified passed on master-head (longhorn-ui 418c7d6) and v1.6.x-head (longhorn-ui 63e29e8) following the test plan.

authors: FrankYang0529 derekbit innobead yangchiu

repo: longhorn/longhorn


text:
node down scenario: pod stuck at ContainerCreating state

related to #635
Steps to reproduce:

Create a Deployment with one pod attached to longhorn volume mount to /data

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: longhorn-volv-pvc
spec:
  accessModes:
    - ReadWriteOnce
  storageClassName: longhorn
  resources:
    requests:
      storage: 2Gi
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: volume-test
  labels:
    name: volume-test
spec:
  replicas: 1
  selector:
    matchLabels:
      name: volume-test
  template:
    metadata:
      labels:
        name: volume-test
    spec:
      containers:
      - name: volume-test
        image: nginx:stable-alpine
        volumeMounts:
        - name: volv
          mountPath: /data
      tolerations:
      - key: "node.kubernetes.io/unreachable"
        operator: "Exists"
        effect: "NoExecute"
        tolerationSeconds: 20
      volumes:
      - name: volv
        persistentVolumeClaim:
          claimName: longhorn-volv-pvc

Shutdown the node which the pod scheduled to.

Monitor the pods, as soon node is detected to be down, the old pod will be in terminating state.

Force delete the terminating pod.
kubectl delete pod TERMINATING_POD_NAME --force --grace-period=0

New pod will be stuck in ContainerCreating state

Inspect stuck pod using kubectl describe pod STUCK_POD_NAME
you should see the following error:

  Warning  FailedAttachVolume  39s   attachdetach-controller  Multi-Attach error for volume "pvc-9b68216f-fcd9-11e9-8054-26db997fc043" Volume is already used by pod(s) TERMINATED_POD_NAME

Due to #820 , now we need to wait longer for the volume to be detached by Kubernetes. Did the volume ultimately detach?

No, the volume still in Attached state
Also, In volume details page, Pod Name field value is the name of the stuck pod.

@meldafrawi Just merged a fix.

@yasker will check it again.

Fixed.
Volume now get detached after pod deleted.

authors: meldafrawi yasker


text:
[BUG] - Longhorn instance-manager only uses max 2 CPU

Describe the bug
There is an app with rather high IO (500-1000 IOPS). If there is a Longhorn background task (like replica rebuild or snapshot deletion), then the instance-manager pod running at the relevant worker node is under heavy load and consumes 1-2 CPU.
There are 2 issues:

The background task is quite slow. E.g. snapshot deletion (merge 250GB into 1.8TB) takes 15hrs. For the same snapshot deletion on another node without IO intense applications only 1hr is needed
IO intense application suffers due to overloaded instance-manager, IO utilization for the logical Longhorn /dev/sdm device shows nearly 100%.

The instance-manager pod seems to be the bottleneck. The actual node disk doesn't seem to be the bottleneck (about 20% utilization).
The worker node provides 16 CPU overall. Max 2 CPUs are used by the instance-manager, max 1 CPU by other pods, 13 CPU are mostly free.
Now the bug:
If the instance-manager seems to be so busy (leading to over utilization of the logical sdm device and quite slow background tasks), why doesn't the instance-manager pod use more than 2 CPU? The CPU request value (danger zone) is kept as default (1.92 CPU), no K8S limit configured.
Is there any limitation within the instance-manager software not being able to scale to use more CPU?
Screenshot shows the CPU graph of the instance-manager pod.
Increased CPU load starts at about 05:00 when the snapshot merge started. No more than 2 CPU is used

This screenshot shows the disk utilization over time:
logical "sdm" device nearly 100%
"physical" node device "vdc" about 20%

To Reproduce

Deploy an IO-intense application
Start a Longhorn background task
Watch the instance-manager pod metrics
Watch the slow progress of background tasks

Expected behavior
instance-manager should use more than 2 CPU when required and if available on the worker node
Support bundle for troubleshooting

Environment

Longhorn version: 1.5.5
Impacted volume (PV):
Installation method (e.g. Rancher Catalog App/Helm/Kubectl): Helm
Kubernetes distro (e.g. RKE/K3s/EKS/OpenShift) and version: RKE

Number of control plane nodes in the cluster: 3
Number of worker nodes in the cluster: 6

Node config

OS type and version: AlmaLinux 8.10 (Cerulean Leopard)
Kernel version: 4.18.0-553.22.1.el8_10.x86_64
CPU per node: 16
Memory per node: 64GB
Disk type (e.g. SSD/NVMe/HDD): SSD
Network bandwidth between the nodes (Gbps): 10Gbps

Underlying Infrastructure (e.g. on AWS/GCE, EKS/GKE, VMWare/KVM, Baremetal): Cloud
Number of Longhorn volumes in the cluster: 49

Have you tried to change this setting? https://longhorn.io/docs/1.7.2/references/settings/#guaranteed-instance-manager-cpu
Here you can also find some references: https://github.com/longhorn/longhorn/blob/v1.7.2/scalability/reference-setup-performance-scalability-and-sizing-guidelines/public-cloud/medium-node-spec.md

@DamiaSan
No, I didn't change the "Guaranteed Instance Manager CPU" setting, because it only defines the K8S request value. So this should not have a direct influence how many CPUs are actually used. A K8S limit is not defined. There is also no K8S CPU throttling.
So, if a pod has only a request specified and no limit, it could theoretically use more CPU.
Or is there any internal magic function within the instance-manager software which uses the request value to define how many CPU the software shall use or influences the internal thread logic?
The 2nd link doesn't give configuration advice.

cc @PhanLe1010

Additional observation:

Very slow replica rebuild of a 2TB volume, already lasting for 20hrs, only 35% achieved
Node has 16 CPU, load is at 5
No IOWait, no higher disk device utilization, no network saturation
Very little network and IO activity
instance-manager pod on the source node constantly consumes 2CPU
instance-manager on target node is mostly idle
Questions:
What does the instance-manager do over such long time, using so much CPU, if there is fairly no progress for rebuild
If the instance-manager does anything useful, why doesn't it consume more than 2 CPU?

It's helpful to continue investigating this issue with @pwurbs to clarify the context. removed the stale label.
cc @shuo-wu @derekbit

Thank you for the feedback. Typically users will complain that longhorn manager or instance manager consumes too many CPUs. The case you are reporting is relatively rare. I am not sure if there can be any default limitations/configurations in your k8s cluster or linux (like cgroup). For now, I have two questions about the issue:

Is the logical sdm device a Longhorn volume? Or the Longhorn data path on this worker node is based on this logical device.
Have you tried to directly put a heavy IO load to a Longhorn volume without any Longhorn background task (like rebuilding, snapshot deletion, etc)?

authors: DamiaSan innobead pwurbs shuo-wu


text:
scripts下的vaccine.py需要判断是文件还是文件夹

我们使用手动建立文件夹的方式来免疫病毒，这个工具扫描到后会报PermissionError
// Error: line 0: PermissionError: file C:\maya_umbrella\scripts\maya_umbrella\filesystem.py line 39: [Errno 13] Permission denied: 'C:/Users/yuping.fan/Documents/maya/scripts\vaccine.py' //
判断一下是文件夹还是文件应该就能解决问题，不排除其他人或公司用类似的方法免疫病毒

        """Collect all bad userSetup.py files related to the virus."""
        for usersetup_py in [
            os.path.join(self.api.local_script_path, "vaccine.py"),
            os.path.join(self.api.user_script_path, "vaccine.py"),
            os.path.join(self.api.local_script_path, "userSetup.py"),
            os.path.join(self.api.user_script_path, "userSetup.py"),
        ]:
            print(os.path.isfile(usersetup_py))
            if os.path.exists(usersetup_py):
                data = read_file(usersetup_py)
                if "petri_dish_path = cmds.internalVar(userAppDir=True) + 'scripts/userSetup.py" in data:
                    self.report_issue("vaccine.py")
                    self.api.add_bad_file(rename(usersetup_py))

                if (
                    "cmds.evalDeferred('leukocyte = vaccine.phage()')" in data
                    and "cmds.evalDeferred('leukocyte.occupation()')" in data
                ):
                    self.report_issue("userSetup.py")
                    self.api.add_bad_file(rename(usersetup_py))

vaccine.py这个其实不需要调用read_file，直接删除即可，我现在把列表里相关的两行删除后工作正常了，或者判断一下为文件夹的时候就不删除了

@fyplclfkr 你能提供一个符合这个特征的userSetup.py给我么？我添加到代码的单元测试中

@fyplclfkr
当前发布了新版本，可以解决这个问题
https://github.com/loonghao/maya_umbrella/releases/tag/v0.5.0

authors: fyplclfkr loonghao


text:
🛑 Minecraft Main Server is down

In 867bb80, Minecraft Main Server ($MC_MAIN_URL) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Minecraft Main Server is back up in e06be95.

repo: loongwork/status


text:
Could not locate Gemfile or .bundle/ directory

Having this error when doing a fresh clone of slate and creating the .dockerignore, Dockerfile and docker-compose.yml.
Please advise on possible solutions. I'm using Windows 10 with Linux containers.
PS D:\Temp\slate> docker-compose up
Building app
Step 1/6 : FROM ruby:2.5.1
---> 34d1c6024e99
Step 2/6 : MAINTAINER Adrian Perez adrian@adrianperez.org
---> Using cache
---> 059fb3e1607f
Step 3/6 : VOLUME /usr/src/app/source
---> Using cache
---> cf616e940654
Step 4/6 : EXPOSE 4567
---> Using cache
---> 2bee9d3b72dc
Step 5/6 : RUN apt-get update && apt-get install -y nodejs && apt-get clean && rm -rf /var/lib/apt/lists/*
---> Using cache
---> f6ceabf36889
Step 6/6 : CMD ["bundle", "exec", "middleman", "server", "--watcher-force-polling"]
---> Using cache
---> 11ad0b62be97
Successfully built 11ad0b62be97
Successfully tagged slate_app:latest
WARNING: Image for service app was built because it did not already exist. To rebuild this image you must use docker-co mpose build or docker-compose up --build.
Creating slate_app_1 ... done
Attaching to slate_app_1
app_1  | Could not locate Gemfile or .bundle/ directory
slate_app_1 exited with code 10
PS D:\Temp\slate> docker-compose up
Starting slate_app_1 ... done
Attaching to slate_app_1
app_1  | Could not locate Gemfile or .bundle/ directory
slate_app_1 exited with code 10
PS D:\Temp\slate>

Try clicking the "Reset credentials" link on the Docker "Shared Drives" tab.

@gimmesomecandy I have been experiencing a similar issue running on a mac.
I added the .dockerignore, Dockerfile and docker-compose.yml files to my slate project as suggested on https://github.com/lord/slate/wiki/Docker.
When running docker-compose up, I get the following output:
Creating slate_app_1 ...
Creating slate_app_1 ... done
Attaching to slate_app_1
app_1 | Could not locate Gemfile or .bundle/ directory
slate_app_1 exited with code 10

My Gemfile is present. What can I do to fix this issue?

@idealizm
I tried using your Dockerfile and docker-compose.yml file using docker-compose up --build and got the following error:
...
Recreating slate_app_1 ...
Recreating slate_app_1 ... done
Attaching to slate_app_1
app_1  | bundler: failed to load command: middleman (/usr/local/bundle/bin/middleman)
app_1  | LoadError: cannot load such file -- opal
app_1  |   /usr/local/bundle/gems/tilt-2.0.6/lib/tilt/mapping.rb:243:in `require'
app_1  |   /usr/local/bundle/gems/tilt-2.0.6/lib/tilt/mapping.rb:243:in `block in lazy_load'
app_1  |   /usr/local/bundle/gems/tilt-2.0.6/lib/tilt/mapping.rb:241:in `each'
app_1  |   /usr/local/bundle/gems/tilt-2.0.6/lib/tilt/mapping.rb:241:in `lazy_load'
app_1  |   /usr/local/bundle/gems/tilt-2.0.6/lib/tilt/mapping.rb:216:in `lookup'
app_1  |   /usr/local/bundle/gems/tilt-2.0.6/lib/tilt/mapping.rb:154:in `[]'
app_1  |   /usr/local/bundle/gems/tilt-2.0.6/lib/tilt.rb:48:in `[]'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/sources/source_watcher.rb:338:in `strip_extensions'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/sources/source_watcher.rb:326:in `record_file_change'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/sources/source_watcher.rb:265:in `block in update'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/sources/source_watcher.rb:264:in `each'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/sources/source_watcher.rb:264:in `update'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/sources/source_watcher.rb:212:in `poll_once!'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/sources.rb:241:in `block in poll_once!'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/sources.rb:241:in `each'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/sources.rb:241:in `reduce'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/sources.rb:241:in `poll_once!'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/core_extensions/file_watcher.rb:47:in `before_configuration'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:57:in `instance_exec'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:57:in `block in execute'
app_1  |   /usr/local/bundle/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `each'
app_1  |   /usr/local/bundle/gems/hamster-3.0.0/lib/hamster/vector.rb:1316:in `traverse_depth_first'
app_1  |   /usr/local/bundle/gems/hamster-3.0.0/lib/hamster/vector.rb:431:in `each'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:57:in `execute'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_reference.rb:43:in `send_to'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/call_with.rb:76:in `call_with'
app_1  |   /usr/local/bundle/gems/contracts-0.13.0/lib/contracts/method_handler.rb:138:in `block in redefine_method'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/callback_manager.rb:28:in `block in install_methods!'
app_1  |   /usr/local/bundle/gems/middleman-core-4.2.1/lib/middleman-core/application.rb:283:in `initialize'
app_1  |   /usr/local/bundle/gems/middleman-cli-4.2.1/bin/middleman:49:in `new'
app_1  |   /usr/local/bundle/gems/middleman-cli-4.2.1/bin/middleman:49:in `<top (required)>'
app_1  |   /usr/local/bundle/bin/middleman:23:in `load'
app_1  |   /usr/local/bundle/bin/middleman:23:in `<top (required)>'
slate_app_1 exited with code 1

I then came across the issue: https://github.com/lord/slate/issues/959 and after downgrading the version in the Dockerfile to 2.4.1 it worked!
Updated Dockerfile used in conjunction with your docker-compose.yml file:
FROM ruby:2.4.1
COPY . /usr/src/app
VOLUME /usr/src/app
EXPOSE 4567

WORKDIR /usr/src/app

RUN apt-get update && apt-get install -y nodejs \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN bundle install

CMD ["bundle", "exec", "middleman", "server", "--watcher-force-polling"]

Thanks for the help!

Glad you were able to resolve it! 😊

tjg37 solution works for us!

authors: arrkaye gimmesomecandy lord redtailsingh tjg37

repo: lord/slate


text:
Harmony/HEIT uk projects

Updated Harmony and Harmony Energy Income Trust projects based on research including annual reports.

Note: I have modified rows with 'overwrite=1' set. I could not determine the purpose of this field, so did not modify it.
If this is incorrect, please update these rows with an alternative value.

Hi, thanks for submitting so many changes :)

authors: lorenz-g rbirkby

repo: lorenz-g/tesla-megapack-tracker


text:
Feature: OCPP 1.6j security extension

Proposed changes

Implemented OCPP 1.6 security extension messages
Added implementation examples
Added tests for extension implementation

Types of changes
What types of changes does your code introduce?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[x] Documentation Update (if none of the other choices apply)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of
them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before
merging your code.

[ ] I have signed the CLA
[x] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[x] I have added necessary documentation (if appropriate)
[x] Any dependent changes have been merged and published in downstream modules

Further comments

Code isn't unit tested

@lorenzodonini requesting review, as per issue #262.

Hey @lorenzodonini, I'm working on tests for the extension. Will you be able to review it and let me know your thoughts regarding this PR?

@lorenzodonini to be honest, I need this feature ASAP.
Is there a way that I can help to accelerate merging the security extension feature?

Hi @xBlaz3kx,
I've been working on fixes required by @lorenzodonini to speed things up.
Changes can be found in this PR: https://github.com/xBlaz3kx/ocpp-go/pull/1

Hey @lorenzodonini @AhmedAbouelkher,
thank you for reviewing and catching all these details!
I guess I need to read the specification a bit better next time :)
I've merged @AhmedAbouelkher's PR to this branch and I think all of these issues were addressed.
I'll contribute the tests shortly, hopefully in a week or two.

Should I wait for the tests or merge this one right away? Test coverage drop is obviously expected, so don't mind the CI error

I think you should merge, since @AhmedAbouelkher needs it asap. I'll contribute/fix the tests in a separate PR.

@lorenzodonini Since this is a major update to the library, I think it would be best to create a new release :1st_place_medal:

@lorenzodonini Since this is a major update to the library, I think it would be best to create a new release 🎊

There's a train of other small discussions/PRs I want to include. Will try to create a release in the next couple of days

authors: AhmedAbouelkher lorenzodonini xBlaz3kx

repo: lorenzodonini/ocpp-go


text:
How do I update the product?

Say I'd like to change the product's name from 'Roarrr Shape Women T-Shirt' to 'Roarrr Shape Men T-Shirt'? What else do I need to do?
const defaultProduct = {
  name: 'Roarrr Shape Women T-Shirt',
  caption: 'caption',
  description: 'description',
  images: [skus[0].image],
  metadata: {
    categoryId: categories.WOMEN.id,
    defaultColor: colors.NAVY.id,
    defaultSize: sizes.WOMEN.MEDIUM.id,
  },
}

yarn catalog:update doesn't update it at all.

Hi @yansusanto!
https://github.com/lorenzogm/gatsby-ecommerce-starter/blob/main/scripts/lib/generateProductsAndSkus.js#L16
The product ID is generated from the product name, maybe that's the reason. But the script is just using the API from stripe, try to debug what exactly you are sending when update the product.
FYI, this project is abandoned. I have been working in a better solution with Next.js, instead of Gatsby, Prismic as CMS (so no products in a script) and Stripe just for the payments. And in my option everything is just easier and you can have something running earlier. This is the link: https://github.com/lorenzogm/ecommerce

Hi @lorenzogm
Thank you for your response. If it is not too much to ask, do you have a demo of Next.js project you're working on?

I don’t have a demo yet for that repo. I’ll do it soon.
But, this repo is with nextjs and crystallize (an older approach than the previous link): https://github.com/lorenzogm/ecommerce-nextjs-crystallize
The demo is dindim.es

And this is the demo from this repo: https://ecommerce-umber-ten.vercel.app/

Awesome. I have never touched Next.js before so this is a new territory for me but I really like what you've done. Thanks for taking the time to setup the demo, @lorenzogm. Appreciate it!

Hi @lorenzogm,
Mind if I ask how do you install the repo? Thanks!

I wrote some info in the README.md. It's not very detailed and maybe it's not enough. But it's something 😄
I close this issue, feel free to ask in the other repo if you have questions.
And feel free to submit a PR if you want with more details about your experience getting started with the repo.

authors: lorenzogm yansusanto

repo: lorenzogm/gatsby-ecommerce-starter


text:
Build failed on lost-pixel-update.yml

Github workflow shows build unsuccessful, used the same file as mentioned in this link https://blog.logrocket.com/storybook-visual-regression-testing-lost-pixel-react/#what-is-lost-pixel

lost-pixel/lost-pixel@v3.4.0
My config file looks like:-
import { CustomProjectConfig } from 'lost-pixel';
export const config: CustomProjectConfig = {
storybookShots: {
storybookUrl: './storybook-static',
},
// OSS mode
generateOnly: true,
failOnDifference: true
// Lost Pixel Platform (to use in Platform mode, comment out the OSS mode and uncomment this part )
// lostPixelProjectId: "xxxx",
// process.env.LOST_PIXEL_API_KEY,
};

Now I'm facing this another weird issue

I am not able to update my baseline images, can you let me know why this is happening

It was resolved thanks for your time

repo: lost-pixel/lost-pixel


text:
Update NetworkObject to sync objects into SceneTree

Sync objects not already in SceneTree
Currently, nodes not saved to the tilemap (such as dropped collectables) will not appear for players who enters into the map after the spawn of the node. Update NetworkObject to make peers send this data to new peers who enter a map.

duplicate of #248

repo: loudsmilestudios/TetraForce


text:
my improvements

Hi, I'm using clippy to format the code and it seems it affected some of the files I touched, hope it's not a big problem.

respect building:colour and roof:colour - get_block_for_color
fix parsing height for values containing m suffix
raise height calculation from levels * 3 to levels * 4
offset floors by 2 to match with the windows
simple information=board implementation

Hi there, thank you so much for your contribution! I really appreciate it.
Looks good to me, I'll merge it! I'm currently working on a more memory efficient handling of the chunks in world_editor.rs, as soon as this is finished I'll create a new release including your changes.

authors: louis-e vfosnar

repo: louis-e/arnis