[flash_ctrl] mp_error Status - Potential Issue

Hi @tjaychen
I have been working on the error_mp test, which looks to trap mp violations, and deal with them.
I see some behaviour which may be incorrect.  I will explain what I am doing and seeing here.
The test does this: -
// Pseudo Code
// Initialize Random Flash MP Regions, Enable Default Regions
// Loop (x)
//   Randomize a Flash Program Operation (any Partition)
//   Predict if the selected operation will cause an MP violation, or not
//   Set scoreboard to accept alert, if predicted
//   Perform selected Flash Operation
//   If no violation is expected, check data integrity (via backdoor)
//   Check Status Registers
// End
I am seeing some issues with 'Check Status Registers'.
I have simplified the randomization, using only the data patitions and Read Ops.  Also rather than 'handle' the status bits individually, after every cycle, violation expected or not, I reset all the status registers.  This is to see what the RTL is actually doing, with minimal TB interaction.
Here is a problem transaction: -
UVM_INFO @  56758439 ps: Iteration : 26 : 194
UVM_INFO @  56758439 ps: MP REGION INFORMATION (DATA PARTITIONS)
UVM_INFO @  56758439 ps: flash_op : '{partition:FlashPartData, erase_type:FlashErasePage, op:FlashOpRead, num_words:'ha, addr:'h69817}
UVM_INFO @  56758439 ps: MPR0 : From : 0x122, To : 0x123 : From : 0x00091000, To : 0x00091800
UVM_INFO @  56758439 ps: MPR1 : From : 0x03b, To : 0x050 : From : 0x0001d800, To : 0x00028000
UVM_INFO @  56758439 ps: MPR2 : From : 0x1b4, To : 0x1c9 : From : 0x000da000, To : 0x000e4800
UVM_INFO @  56758439 ps: MPR3 : From : 0x15c, To : 0x175 : From : 0x000ae000, To : 0x000ba800
UVM_INFO @  56758439 ps: MPR4 : From : 0x0d1, To : 0x0f1 : From : 0x00068800, To : 0x00078800
UVM_INFO @  56758439 ps: MPR5 : From : 0x064, To : 0x065 : From : 0x00032000, To : 0x00032800
UVM_INFO @  56758439 ps: MPR6 : From : 0x059, To : 0x060 : From : 0x0002c800, To : 0x00030000
UVM_INFO @  56758439 ps: MPR7 : From : 0x1e7, To : 0x1e8 : From : 0x000f3800, To : 0x000f4000
UVM_INFO @  56758439 ps: Read : MP Region : Address : MISS : MPR0
UVM_INFO @  56758439 ps: Read : MP Region : Address : MISS : MPR1
UVM_INFO @  56758439 ps: Read : MP Region : Address : MISS : MPR2
UVM_INFO @  56758439 ps: Read : MP Region : Address : MISS : MPR3
UVM_INFO @  56758439 ps: Read : MP Region : Address :  HIT : MPR4
UVM_INFO @  56758439 ps: Read : MP Region : Address : MISS : MPR5
UVM_INFO @  56758439 ps: Read : MP Region : Address : MISS : MPR6
UVM_INFO @  56758439 ps: Read : MP Region : Address : MISS : MPR7
UVM_INFO @  56758439 ps: Expect : VIOLATION
The MPR0-7 lines show the chosen mp address regions from the randomization of the mp regions.  Which are set at the start of the test.
The MISS/HIT shows if the given flash op, HITs or MISSes an mp area.
In this instance .. flash op is address 'h69817, which its the address range of MPR4.
Ok the next thing we need to look at is the settings for this region.  This is randomly set at the start of the test, and with this seed is: -
UVM_INFO @   2075204 ps: TEST : error_mp
UVM_INFO @   2422139 ps: MP DATA Region [0] : '{en:MuBi4False, read_en:MuBi4True, program_en:MuBi4False, erase_en:MuBi4True, scramble_en:MuBi4False, ecc_en:MuBi4False, he_en:MuBi4True, num_pages:'h1, start_page:'h122}
UVM_INFO @   2554791 ps: MP DATA Region [1] : '{en:MuBi4True, read_en:MuBi4True, program_en:MuBi4True, erase_en:MuBi4False, scramble_en:MuBi4False, ecc_en:MuBi4False, he_en:MuBi4False, num_pages:'h15, start_page:'h3b}
UVM_INFO @   2728259 ps: MP DATA Region [2] : '{en:MuBi4False, read_en:MuBi4False, program_en:MuBi4False, erase_en:MuBi4False, scramble_en:MuBi4False, ecc_en:MuBi4False, he_en:MuBi4True, num_pages:'h15, start_page:'h1b4}
UVM_INFO @   2840503 ps: MP DATA Region [3] : '{en:MuBi4True, read_en:MuBi4False, program_en:MuBi4False, erase_en:MuBi4False, scramble_en:MuBi4False, ecc_en:MuBi4False, he_en:MuBi4True, num_pages:'h19, start_page:'h15c}
UVM_INFO @   2922135 ps: MP DATA Region [4] : '{en:MuBi4False, read_en:MuBi4True, program_en:MuBi4False, erase_en:MuBi4False, scramble_en:MuBi4False, ecc_en:MuBi4False, he_en:MuBi4False, num_pages:'h20, start_page:'hd1}
UVM_INFO @   3064991 ps: MP DATA Region [5] : '{en:MuBi4True, read_en:MuBi4True, program_en:MuBi4False, erase_en:MuBi4True, scramble_en:MuBi4False, ecc_en:MuBi4False, he_en:MuBi4True, num_pages:'h1, start_page:'h64}
UVM_INFO @   3116011 ps: MP DATA Region [6] : '{en:MuBi4True, read_en:MuBi4True, program_en:MuBi4False, erase_en:MuBi4True, scramble_en:MuBi4False, ecc_en:MuBi4False, he_en:MuBi4False, num_pages:'h7, start_page:'h59}
UVM_INFO @   3279275 ps: MP DATA Region [7] : '{en:MuBi4True, read_en:MuBi4False, program_en:MuBi4True, erase_en:MuBi4True, scramble_en:MuBi4False, ecc_en:MuBi4False, he_en:MuBi4False, num_pages:'h1, start_page:'h1e7}
MP Region 4 has en:MuBi4False, so this area is disabled, so we would expect an mp violation, and the TB predicts this (above)
BUT if we look at the waves, the DUT has not registered an error.  So the Status bits are not set as predicted? (look at timestamp, and TimeD.

This gives problems, and looks incorrect.
Interestingly othe areas are correctly handled, as can be seen in the waves.
I have pushed branch that recreates this ..
https://github.com/TimEwins/opentitan/tree/flash_ctrl_error_mp
If you have time to look the run command is
./util/dvsim/dvsim.py hw/ip/flash_ctrl/dv/flash_ctrl_sim_cfg.hjson -i flash_ctrl_error_mp --tool xcelium -v h --verbosity m --purge --max-parallel 1 --fixed-seed 1 --gui
Note the test passes, because the TB is not checking the Status bits at the moment, to show the potential issue.
What do you think, or have we missed something here?
Regards
TimE
Note there are quite a few TB file changes in this branch, which are all temporary and for debug.  I was trying to see if the Status Reg issues were TB related, but now I think it might be elsewhere.

@TimEwins let me pull this and have a look.
Based on your description, this sounds like a bug, but I'll have to see the waves to be sure.
So you're saying it's not just the status, you're not getting an error at all?

hmmm... when i pull down the test and run, it actually fails. But I can start debugging from there.

@TimEwins i took a look at this, and I know what the issue is.
This part isn't described very clearly in the spec, so I'll make sure to do that.
The way your predict is written, is that it first matches the region by address, then it matches the enables. So in the failing case, the address falls into the region, then discovers read is not allowed.
However, this is not how the hardware behaves. The enable really tells the hardware whether that region should even be matched.  So if en is 0, it does not matter if the address falls into the region, it is NOT matched. So what happens is that the address actually matches no region, and falls into "default", which in case allows all access.  That's why the hardware doesn't generate an error.

@tjaychen Hi, That makes sense then.  Nikola has done this check in the scoreboard already, but I was looking at the issue from an independant viewpoint, which is always a good idea.
Thanks for clarifying ...... I will amend the code, and retest.
Then I will close this issue.

This test issue is resolved.  The Test is now working as expected.

Closed


Update/enrich Feature List with Screencasts

Hackday December results can be posted here.

@Schille please define 2-3 priority features which should be recorded in a screen cast. Also if there is already a feature list in place, please drop the link here.
Useful CLI-recording-tool: https://asciinema.org/


use explicit code splitting

Codecov Report
Patch coverage: 89.18% and project coverage change: +0.05 :tada:

Comparison is base (e265ba5) 73.58% compared to head (5a0f489) 73.63%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #17      +/-   ##
==========================================
+ Coverage   73.58%   73.63%   +0.05%
==========================================
  Files           8        8
  Lines        1938     1942       +4
  Branches      198      200       +2
==========================================
+ Hits         1426     1430       +4
  Misses        503      503
  Partials        9        9

Impacted Files
Coverage Δ

src/index.ts
89.18% <73.33%> (+0.07%)
:arrow_up:

src/sqlite-worker.ts
100.00% <100.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Influxdb slowly uses more memory overnight until 100% (64GB) with ~3MB of data

Hi, this is rather a question, as I don't know if this is a bug or not.
My InfluxDBs (v2.1) memory usage went insane overnight. Can someone explain me possible causes?

The data folder of InfluxDB is ~3 MB.
I am using it inside a docker container.
Is this a memory leak, or am I doing something wrong? Thanks!
influxdb.cardinality(bucket: "system", start: -1y) = 66
influxdb.cardinality(bucket: "instl_metrics", start: -1y) = 3
influxdb.cardinality(bucket: "appwrite_metrics", start: -1y) = 40
influxdb.cardinality(bucket: "traefik_metrics", start: -1y) = 269

Would you be able to attach profiles so we can see where your memory is being used?
https://docs.influxdata.com/influxdb/v2.1/reference/internals/runtime/#get-all-runtime-profiles

Also we have seen some issues with scrapers, that are fixed in the upcoming version. Do you have any scrapers configured?

Hi @lesam, I have InfluxDB unfortunately reset since then, but I did not use any scraper. I guess a query had hung up, because I was experimenting a bit with the dashboards at the time it started going up. After a restart of the container there were no more problems.

Thanks @MarvinJWendt, glad it is working for you now. Unfortunately I don't think this is enough to reproduce / identify the issue, so I'm going to close it. But if you see the issue again we'd really appreciate info about how to reproduce and/or profiles.

Hi @lesam, I have the same issue with around 33MB of data.
influxdb.cardinality(bucket: "primoco", start: -1y) = 173
influxdb.cardinality(bucket: "primoco", start: -5y) = 348
After a restart of my influx docker container around 500MB of RAM are used. Last restart was at 18:35. Now 4h later at 22:20 around 1GB more is used
Here are the profiles:
all.gz
Regarding reproduction of the issue: the data is confidential, I'm currently not able to provide it to you, to test it. But if absolutely necessary I'll anonymize everything and provide you data + code to reproduce it. But as this will be probably a few hours of work for me, I'd prefer not to, if not necessary.
But here's additional information I can give you:

I have around 4000 data points. So quite less data.
Every 2 minutes (same issue existed when I did it with every 15 minutes) the following happens:

I load all the data into influx into a new bucket "new", rename the "active" one to "old", rename "new" to "active", delete "old". So basically import all ~4000 datapoints again. The renaming happens, so that there is a minimum of downtime, as the longest part is the importing, which is done in the background that way.
This is necessary and can't be done differently.
After the new data is imported a script runs to process the data and saves it in an own measurement. I first did this with a task every 5 minutes, but changed it now, that it's done once after importing the data. Same issue existed when I did it as a task. This processing task takes around 10s - 15s. After that all extensive calculation is over.

The processing script
Quick description of what happens here: The data is financial data of 30 accounts. ~4000 Entries in total. It's calculating the cumulative sum of each account for any point in time + 3 more series which add up these cumulative sums of these accounts (once all negative accounts, once all positive and once the total sum of all accounts).
import "strings"

escape = (v) => {
  v1 = strings.replace(v: v, t: " ", u: "\\ ", i: 99999)
  v2 = strings.replace(v: v1, t: ",", u: "\\,", i: 99999)
  v3 = strings.replace(v: v2, t: "=", u: "\\=", i: 99999)
  return v3
}

negateOutgoingTransfers = (r, account) => ({
  r with
  _value: if r["Entry Type"] == "Transfer" and r["Account"] == escape(v:account) then (r["_value"] * -1.0) else r["_value"]
})

getAccountValues = (tables=<-, account) =>
  tables
    |> filter(fn: (r) => r["Account"] == escape(v:account) or r["Counter Account"] == escape(v:account))
	|> map(fn: (r) => ({r with name: account}))
    |> map(fn: (r) => negateOutgoingTransfers(r, account))
	|> group(columns: ["name"])
	|> sort(columns: ["_time"], desc: false)

data = from(bucket: "primoco")
  |> range(start: 1970-01-01T00:00:00Z)
  |> drop(columns: ["_start", "_stop"])
  |> filter(fn: (r) => r["_measurement"] == "bookings")
  |> filter(fn: (r) => r["_field"] == "Value")

accountNames = [
  "Account a0",
  "Account a1",
  "Account a2",
  "Account a3",
  "Account a4",
  "Account a5",
  "Account a6",
  "Account a7",
  "Account a8",
  "Account a9",
  "Account a10",
  "Account a11",
  "Account a12",
  "Account a13",
  "Account a14",
  "Account a15",
  "Account a16",
  "Account a17",
  "Account a18",
  "Account a19",
  "Account a20",
  "Account a21",
  "Account a22",
  "Account a23",
  "Account a24",
  "Account a25",
  "Account a26",
  "Account a27",
  "Account a28",
  "Account a29"
]

a0  = data |> getAccountValues(account: accountNames[0])
a1  = data |> getAccountValues(account: accountNames[1])
a2  = data |> getAccountValues(account: accountNames[2])
a3  = data |> getAccountValues(account: accountNames[3])
a4  = data |> getAccountValues(account: accountNames[4])
a5  = data |> getAccountValues(account: accountNames[5])
a6  = data |> getAccountValues(account: accountNames[6])
a7  = data |> getAccountValues(account: accountNames[7])
a8  = data |> getAccountValues(account: accountNames[8])
a9  = data |> getAccountValues(account: accountNames[9])
a10 = data |> getAccountValues(account: accountNames[10])
a11 = data |> getAccountValues(account: accountNames[11])
a12 = data |> getAccountValues(account: accountNames[12])
a13 = data |> getAccountValues(account: accountNames[13])
a14 = data |> getAccountValues(account: accountNames[14])
a15 = data |> getAccountValues(account: accountNames[15])
a16 = data |> getAccountValues(account: accountNames[16])
a17 = data |> getAccountValues(account: accountNames[17])
a18 = data |> getAccountValues(account: accountNames[18])
a19 = data |> getAccountValues(account: accountNames[19])
a20 = data |> getAccountValues(account: accountNames[20])
a21 = data |> getAccountValues(account: accountNames[21])
a22 = data |> getAccountValues(account: accountNames[22])
a23 = data |> getAccountValues(account: accountNames[23])
a24 = data |> getAccountValues(account: accountNames[24])
a25 = data |> getAccountValues(account: accountNames[25])
a26 = data |> getAccountValues(account: accountNames[26])
a27 = data |> getAccountValues(account: accountNames[27])
a28 = data |> getAccountValues(account: accountNames[28])
a29 = data |> getAccountValues(account: accountNames[29])

accounts = [a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29]

saveBalance = (tables=<-) => tables
  |> cumulativeSum()
  |> map(fn: (r) => ({
    r with _measurement: "account-balance",
	_field: r.name
  }))
  |> keep(columns: ["_time", "_value", "_measurement", "_field"])
  |> to(bucket: "primoco")

a0 |> saveBalance()
a1 |> saveBalance()
a2 |> saveBalance()
a3 |> saveBalance()
a4 |> saveBalance()
a5 |> saveBalance()
a6 |> saveBalance()
a7 |> saveBalance()
a8 |> saveBalance()
a9 |> saveBalance()
a10 |> saveBalance()
a11 |> saveBalance()
a12 |> saveBalance()
a13 |> saveBalance()
a14 |> saveBalance()
a15 |> saveBalance()
a16 |> saveBalance()
a17 |> saveBalance()
a18 |> saveBalance()
a19 |> saveBalance()
a20 |> saveBalance()
a21 |> saveBalance()
a22 |> saveBalance()
a23 |> saveBalance()
a24 |> saveBalance()
a25 |> saveBalance()
a26 |> saveBalance()
a27 |> saveBalance()
a28 |> saveBalance()
a29 |> saveBalance()

calcTotal = (v) => if exists v then v else 0.0
calcAsset = (v) => if exists v then (if v > 0 then v else 0.0) else 0.0
calcLiability = (v) => if exists v then (if v < 0 then v else 0.0) else 0.0

accountSums = union(tables: accounts)
  |> pivot(
    rowKey:["_time"],
    columnKey: ["name"],
    valueColumn: "_value"
  )
  |> sort(columns: ["_time"], desc: false)
  |> cumulativeSum(columns: accountNames)

  |> map(fn: (r) => ({
    r with _measurement: "account-balance",
	_field: "Total",
    _value: 0.0 +
    calcTotal(v:r["Account a0"]) +
    calcTotal(v:r["Account a1"]) +
    calcTotal(v:r["Account a2"]) +
    calcTotal(v:r["Account a3"]) +
    calcTotal(v:r["Account a4"]) +
    calcTotal(v:r["Account a5"]) +
    calcTotal(v:r["Account a6"]) +
    calcTotal(v:r["Account a7"]) +
    calcTotal(v:r["Account a8"]) +
    calcTotal(v:r["Account a9"]) +
    calcTotal(v:r["Account a10"]) +
    calcTotal(v:r["Account a11"]) +
    calcTotal(v:r["Account a12"]) +
    calcTotal(v:r["Account a13"]) +
    calcTotal(v:r["Account a14"]) +
    calcTotal(v:r["Account a15"]) +
    calcTotal(v:r["Account a16"]) +
    calcTotal(v:r["Account a17"]) +
    calcTotal(v:r["Account a18"]) +
    calcTotal(v:r["Account a19"]) +
    calcTotal(v:r["Account a20"]) +
    calcTotal(v:r["Account a21"]) +
    calcTotal(v:r["Account a22"]) +
    calcTotal(v:r["Account a23"]) +
    calcTotal(v:r["Account a24"]) +
    calcTotal(v:r["Account a25"]) +
    calcTotal(v:r["Account a26"]) +
    calcTotal(v:r["Account a27"]) +
    calcTotal(v:r["Account a28"]) +
    calcTotal(v:r["Account a29"]) +
	0.0
  }))
  |> yield(name:"Total") // net worth
  |> to(bucket: "primoco")

  |> map(fn: (r) => ({
	r with  _field: "Assets",
    _value: 0.0 +
    calcAsset(v:r["Account a0"]) +
    calcAsset(v:r["Account a1"]) +
    calcAsset(v:r["Account a2"]) +
    calcAsset(v:r["Account a3"]) +
    calcAsset(v:r["Account a4"]) +
    calcAsset(v:r["Account a5"]) +
    calcAsset(v:r["Account a6"]) +
    calcAsset(v:r["Account a7"]) +
    calcAsset(v:r["Account a8"]) +
    calcAsset(v:r["Account a9"]) +
    calcAsset(v:r["Account a10"]) +
    calcAsset(v:r["Account a11"]) +
    calcAsset(v:r["Account a12"]) +
    calcAsset(v:r["Account a13"]) +
    calcAsset(v:r["Account a14"]) +
    calcAsset(v:r["Account a15"]) +
    calcAsset(v:r["Account a16"]) +
    calcAsset(v:r["Account a17"]) +
    calcAsset(v:r["Account a18"]) +
    calcAsset(v:r["Account a19"]) +
    calcAsset(v:r["Account a20"]) +
    calcAsset(v:r["Account a21"]) +
    calcAsset(v:r["Account a22"]) +
    calcAsset(v:r["Account a23"]) +
    calcAsset(v:r["Account a24"]) +
    calcAsset(v:r["Account a25"]) +
    calcAsset(v:r["Account a26"]) +
    calcAsset(v:r["Account a27"]) +
    calcAsset(v:r["Account a28"]) +
    calcAsset(v:r["Account a29"]) +
	0.0
  }))
  |> yield(name:"Assets")
  |> to(bucket: "primoco")

  |> map(fn: (r) => ({
	r with _field: "Liabilities",
    _value: 0.0 +
    calcLiability(v:r["Account a0"]) +
    calcLiability(v:r["Account a1"]) +
    calcLiability(v:r["Account a2"]) +
    calcLiability(v:r["Account a3"]) +
    calcLiability(v:r["Account a4"]) +
    calcLiability(v:r["Account a5"]) +
    calcLiability(v:r["Account a6"]) +
    calcLiability(v:r["Account a7"]) +
    calcLiability(v:r["Account a8"]) +
    calcLiability(v:r["Account a9"]) +
    calcLiability(v:r["Account a10"]) +
    calcLiability(v:r["Account a11"]) +
    calcLiability(v:r["Account a12"]) +
    calcLiability(v:r["Account a13"]) +
    calcLiability(v:r["Account a14"]) +
    calcLiability(v:r["Account a15"]) +
    calcLiability(v:r["Account a16"]) +
    calcLiability(v:r["Account a17"]) +
    calcLiability(v:r["Account a18"]) +
    calcLiability(v:r["Account a19"]) +
    calcLiability(v:r["Account a20"]) +
    calcLiability(v:r["Account a21"]) +
    calcLiability(v:r["Account a22"]) +
    calcLiability(v:r["Account a23"]) +
    calcLiability(v:r["Account a24"]) +
    calcLiability(v:r["Account a25"]) +
    calcLiability(v:r["Account a26"]) +
    calcLiability(v:r["Account a27"]) +
    calcLiability(v:r["Account a28"]) +
    calcLiability(v:r["Account a29"]) +
	0.0
  }))
  |> yield(name:"Liabilities")
  |> to(bucket: "primoco")

There is very less accessing of the data. Maybe twice a day. So there's no correlation between accessing the data and the issue.

I'm currently running on influx 2.3, but issue existed also with earlier versions.

I limited the RAM usage of my docker container to 4GB, so that the host doesn't run out of memory.

Let me know if you need further information from my side or how I can help to debug this issue.
Current workaround is to restart influx on a regular basis.

@SimonMayerhofer - from the profile, the major source of memory usage you have is the prometheus metrics system.
You could try disabling metrics ( https://docs.influxdata.com/influxdb/v2.4/reference/config-options/#metrics-disabled ) but I think this just disables the endpoint that allows scraping metrics, and not the overhead that is causing you problems.
In any case, I doubt this is related to the original issues you cite as it seems closely related to creating and deleting buckets so often.

Hi @lesam thanks for your help!

You could try disabling metrics ( https://docs.influxdata.com/influxdb/v2.4/reference/config-options/#metrics-disabled ) but I think this just disables the endpoint that allows scraping metrics, and not the overhead that is causing you problems.

I tried it and you're right. Same issue exists.

In any case, I doubt this is related to the original issues you cite as it seems closely related to creating and deleting buckets so often.

Okay thanks. How to proceed? Should I open a separate issue?

You can open a separate issue, but I don't think this use case of having so much bucket churn is very common, so it likely will not be addressed quickly.
I'd recommend re-examining whether you need to create so many 'new' buckets.


frr: update to 8.3

update to frr 8.3
apply upstream changes to our support_bundle_commands.conf

New features:

Notification Message support for BGP Graceful Restart
(http://docs.frrouting.org/en/latest/bgp.html#clicmd-bgp-graceful-restart-notification)
BGP Cease Notification Subcode For BFD
Send Hold Timer for BGP
RFC5424 syslog support
(http://docs.frrouting.org/en/latest/extlog.html?#clicmd-destination-syslog-supports-rfc5424)
PIM passive command
(http://docs.frrouting.org/en/latest/pim.html#clicmd-ip-pim-passive)

Detailed changelog:

https://github.com/FRRouting/frr/releases/tag/frr-8.3

Signed-off-by: Jonas Gorski<EMAIL_ADDRESS>

lgtm


[WIP] CNF-6147: Initiate backup when enable is true

This is in WIP commit

precaching is done before backup
backup is initiated when enabled is true
if backup is true, remediation plan is rebuild again

Signed-off-by: Sabbir Hasan<EMAIL_ADDRESS>

/hold


Mystical Index Transfer API Issue

Describe the bug
When trying to use my library block it crashes the server.
Steps to reproduce

Spawn Book Of Storage. Add item to book of storage by shift right clicking any block and dropping the block.
Spawn library and put a hopper under it. Try to open inventory.

If there is a way to fix this on my side please let me know. The library uses some custom logic to hopper items out of the books instead of the book themselves using the transfer api. Other than this, the mod works fine!
...
crash-2023-10-31_20.44.57-server.txt
Logs
No response
Additional context
No response

Besides not making FFAPI crash when nothing is extracted, I've tried out using the Book of Storage on the latest version of Mystical Index, yet it doesn't seem to work on neither Forge nor Fabric.
On Fabric loader, I've got Mystical Index 1.20.1-1.3 and MidnightLib 1.4.1 installed. Shift-right-clicking a block seems to write it to the book, but it's not removed from the world. Does this happen on your side, too?

The crash has now been fixed in FFAPI 0.90.7+1.9.30+1.20.1


Code reorganization in order to better support more flows

I found some of the modules having inconsistent or unfitting names, or being a sort of a grab bag.
Therefore -- sorry for this big change, but I think it simplifies finding things either me or users are looking for, as well as future extensions like the ServiceAccountFlow I'm working on :-)
The public interface is unchanged except for two new helper methods that users of the library used to have to implement themselves although they are the same for everyone.

Thank you so much for contributing once again!
Please excuse the delay, but I would like to take a moment to look at the code, but won't make it this weekend.
Thanks for your understanding.

No worries, I think I still need to fix the build anyways :D

nightly is broken, but at first glance it doesn't seem my fault.

Hi @dermesser , thanks a lot for the great work !
I hope you won't mind me adding you to the 'authors' variable, so you show up in the authors field on crates.io.  When I tried it by pasting the code into my terminal, it wouldn't detect the end of line and thus never proceed. What made it work for me is something like this : echo <code-obtained-previously> | <google-cli>. To my mind, this would be the last thing to get right before the CLIs are ready for general consumption.

It works on my machine :) (aside from the fact that I deleted the client ID I'm using)
Please direct your browser to https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/drive.metadata.readonly&redirect_uri=urn:ietf:wg:oauth:2.0:oob&response_type=code&client_id=812031924520-3oiu1sr8m44ja90i3vqddl1tks95g9dh.apps.googleusercontent.com, follow the instructions and enter the code displayed here:
abcdefg
Token retrieval failed with error: Token API error: deleted_client The OAuth client was deleted.

The binary I'm using has the following dependencies:
hyper = "^ 0.9.0"
google-drive3 = "0.1.15"
serde = "0.6.0"
serde_json = "0.6.0"
yup-oauth2 = "0.6.3"

and it doesn't do anything special. According to the documentation on read_line, that line should work, and most shells flush stdin to the process when Enter is pressed. Have you tried a different terminal? Or is the binary itself maybe hanging at some point after?

@dermesser Interestingly, I just tried it with the new example application (thanks :)), and it did indeed work ! Last time I tried it was with one of the google command-line tools (youtube, possibly). I will review that one, maybe the err is somewhere in my setup.

@dermesser Cannot reproduce - after all, all google-cli agents are now using the flow that basically does everything automatically. That works just fine and is totally awesome !


for release - [closed]

In GitLab by @liyanq528 on Sep 28, 2018, 09:21
Merges 20180913 -> dev

In GitLab by @wknet123 on Nov 13, 2019, 11:26
closed


[WIP] changing the react lib logic to add each block - experimenting

Please always provide the GitHub issue(s) your PR is for, as well as test URLs where your change can be observed (before and after):
Fix #276
Test URLs:

Before: https://main--sling--aemsites.aem.live/whatson/sports/general-sports/live-sports-schedules-sling-tv
After: https://276-gamefinder--sling--aemsites.aem.page/whatson/sports/general-sports/live-sports-schedules-sling-tv

I will continue to experiment on this , switched to work in progress

@helms-charity - could you please review the PR one more time ?
Changes -

Rendering all Game Finders Lazily to improve the performance
The gamefinder react script will load all gamefinder results on the occurance of first game finder

Some Mobile notes

Some Mobile notes

turning off the game finder header floating (in all media sizes), which is similar to the live site
letting the result rows take height as "auto" so that they are completely visible


ncp: Allow underspecification of remove command for IPV6_ADDRESS_TABLE.

For removal operations, Spinel allows you to underspecify the entry in question by omitting any fields after the "key" field, since they would be ignored anyway. Without this change, underspecified IPV6 address removals will fail.

Current coverage is 73.18% (diff: 100%)

Merging #875 into master will decrease coverage by 0.27%

@@             master       #875   diff @@
==========================================
  Files           111        111
  Lines         16529      16529
  Methods        2286       2285     -1
  Messages          0          0
  Branches       1999       1999
==========================================
- Hits          12142      12097    -45
- Misses         3725       3761    +36
- Partials        662        671     +9

Powered by Codecov. Last update d6fa21e...22630bd


matogro: image inclusion should be relative to markdown file

Currently, the path for image inclusion is interpreted relatively:
![View of the Rätikon Group approximately two thirds along the way.](mato/samples/groff/images/IMG_4025.pdf)

which expects matogro to be run in the top-level repository directory.

closed by a9e0940


Increase the RAM for your game.


add verb specific latest symlink

Beside the latest symlinkthis patch introduces alatest_{verb}symlink to easily get the latestbuild/test` logs.

Codecov Report

Merging #31 into master will decrease coverage by 0.04%.
The diff coverage is 78.94%.

@@            Coverage Diff             @@
##           master      #31      +/-   ##
==========================================
- Coverage   77.59%   77.54%   -0.05%
==========================================
  Files          48       48
  Lines        2517     2521       +4
  Branches      400      401       +1
==========================================
+ Hits         1953     1955       +2
- Misses        550      551       +1
- Partials       14       15       +1

Impacted Files
Coverage Δ

colcon_core/command.py
100% <100%> (ø)
:arrow_up:

colcon_core/location.py
94.2% <77.77%> (-2.73%)
:arrow_down:

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 9c2691a...5a7b6ad. Read the comment docs.


Create Internet_Access_Function_Calling.py

Adding internet access to Gemini via the Function Calling API.

Thanks for sharing this cool demo from AGI house.

Hi, if i use your code the model always answer saying: "I apologize, but I'm unable to access real-time information at the moment."
Why does it not searching on internet?

Are you able to convert this into a IPython notebook? You can use the template we have here.


[BUG]: Can' use views with relations API

What version of drizzle-orm are you using?
0.26.5
What version of drizzle-kit are you using?
No response
Describe the Bug
I can't use a pgView with the relations API. Example:
export const user = pgTable("user", {
    id: text("id").notNull(),
});

export const test = pgView("test", {
    userId: text("user_id"),
});

export const userRelation = relations(user, ({ one }) => ({
    test: one(test),
}));

Expected behavior
Code compiles.
Insted I get this type error: Property [IsDrizzleTable]   is missing in type:
When I replace pgView with pgTable, everything works fine.
Environment & setup

Potential related Issues / PRs:

relational query doesn't work - This issue is similar to the current issue and describes a bug where the user is unable to perform a relational query in drizzle-orm. The user provides their schema files and an API route code snippet. The issue returns an error stating "Relation tables not found". This link might be helpful in understanding and resolving the issue with using views in the relations API.

This message was generated by AI from https://www.triagefeedback.com

Same issue here. Is it a bug or a requirement of relational queries to join tables and not views?

I've found a trick. If you create the view manually in the db (I'm using sqlite) and and the you define the view as table in the schema (sqliteTable) , the relation works.!
Problem: I guess drizzle-kit will try to generate the table you define in the scheme as a table in the db when a view already exists. So you need to change it (disable the table/view in the schema before running migrations)
But I guess it would be nice if views would be enabled natively in drizzle-orm!

@rodbs I'm using the same workaround. My hack was to put the fake "views" into a separate ts file. When creating drizzle I can use
export const drizzle = createDrizzle(pool, { schema: { ...schema, ...relations, ...views } });

but for migrations, I only use the schema file.

@johanneskares did you just duplicate the fields for the original table when defining the view as a "fake table"? Or is there a way to pass the original schema in that definition so the types are set correctly?

@miskander  No, you'll have to set the types manually on the views table.

Is this planned to be supported in the future? We always want to use Views for our queries to hide the soft deleted rows but we also want to use the realtional query api.

Amazing to see that the PR is there!


Groups in content endpoints

Description
Groups in content endpoints
Fixes https://issues.redhat.com/browse/CCXDEV-5096
Type of change

New feature (non-breaking change which adds functionality)
Documentation update

Testing steps
N/A, will be checked by unified (tm) Insights Advisor
Checklist

[ ] make before_commit passes
[ ] updated documentation wherever necessary
[ ] added or modified tests if necessary
[ ] updated schemas and validators in insights-data-schemas in case of input/output change

Codecov Report

Merging #605 (21b95cc) into master (8edcf6d) will decrease coverage by 2.24%.
The diff coverage is 11.11%.

@@            Coverage Diff             @@
##           master     #605      +/-   ##
==========================================
- Coverage   59.70%   57.46%   -2.25%
==========================================
  Files          13       14       +1
  Lines        1288     1340      +52
==========================================
+ Hits          769      770       +1
- Misses        423      474      +51
  Partials       96       96

Impacted Files
Coverage Δ

server/handlers_v1.go
52.27% <0.00%> (+0.78%)
:arrow_up:

server/handlers_v2.go
0.00% <0.00%> (ø)

server/server.go
54.94% <0.00%> (-0.86%)
:arrow_down:

content/parsing.go
87.09% <100.00%> (ø)

server/endpoints_v2.go
100.00% <100.00%> (ø)

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 ae759b6...21b95cc. Read the comment docs.


add MCP server badge

This PR adds a badge for the MCP Server Neurolorap server listing in Glama MCP server directory.

Glama performs regular codebase and documentation scans to:

Confirm that the MCP server is working as expected
Confirm that there are no obvious security issues with dependencies of the server
Extract server characteristics such as tools, resources, prompts, and required parameters.

This badge helps your users to quickly asses that the MCP server is safe, server capabilities, and instructions for installing the server.

Thanks! are you on the MCP Discord?
Let me know your Discord username and I will give you a special flair that's only for MCP server authors.


Create smoke tests

This PR addresses issue https://github.com/amarlearning/github-sectory/issues/9 and adds system smoke tests.

Thanks, @fstavela for this contribution 💜
But I plan to make this repository archive since it requires a good amount of effort to update (design and testing) this repository. And this tool has a pip dependency in using it.
I am planning to rewrite it in Go with go-github client which will make it easier to understand and test the code.
If you are planning to work on this repository, I would suggest you maintain a separate fork.

@amarlearning When you do that, could you please share a link to your new repo in the README, or here? I would like to learn Go and it would be great if I could follow that repo and maybe make some contribution there.

@fstavela I am currently working on the main branch of this repo (WIP) https://github.com/amarlearning/github-sectory/tree/main


iPad 点击崩溃

'Your application has presented a UIAlertController (<UIAlertController: 0x10105a200>) of style UIAlertControllerStyleActionSheet. The modalPresentationStyle of a UIAlertController with this style is UIModalPresentationPopover. You must provide location information for this popover through the alert controller's popoverPresentationController. You must provide either a sourceView and sourceRect or a barButtonItem.  If this information is not known when you present the alert controller, you may provide it in the UIPopoverPresentationControllerDelegate method -prepareForPopoverPresentation.'
当在iPad上如果没有设置如下两个属性
alertController.popoverPresentationController.sourceView
alertController.popoverPresentationController.sourceRect
会导致程序crash。

了解👌


Test new Feature Toggles

Investigate how we can create e2e tests for testing new feature toggles
Can have an overall one
And can have it per feature? For eg, when ASM will be implemented?

Features already implemented with toggle (Need to investigate the testing part - Test both toggle on and off?)

Configuration Endpoint

So basically, we'll test the feature

with feature flag set to the current version (so, toggle on)
with feature flag set to the last major version (so, toggle off)

In order for this to be feasible, we need to find a way to change the config at runtime. Ticket #4086 will tackle this. And ticket #4087 will tackle the cypress side, so we can run the E2E tests with different feature flags.
Question: After 2.0 release, will we still need to test the features with toggle on and off?

This has been completed in the respective tickets.


HTML/View Template is rendered twice

Gitea version (or commit ref): v1.15.0
Git version: not relevant
Operating system: Ubuntu (Gitee docker via mailcow setup)

Database (use [x]):

[ ] PostgreSQL
[x] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[x] No -- the gitea server did not send me the activation link.

Log gist: not relevant

Description

I'm not sure if this issue has been reported already, but after researching the existing issues in this repo, seems like this is a new one.
Anyways... here's a bug that I found:
I'm using the latest release of Gitea (v1.15.0) and created a new empty repository. I opened the repository Settings and clicked on the "Add Push Mirror" button without any change to the other fields and somehow the webpage just reloads and renders two copies of the same template. Attached is the fullpage screenshot.
Screenshots
Fullpage PDF Screenshot: screencapture-mail-aspac-io-gitea-phoenix-testing-settings-2021-08-22-23_09_30.pdf
Fullpage PNG Screenshot
screencapture-mail-aspac-io-gitea-phoenix-testing-settings-2021-08-22-23_09_30.pdf

I would like to mention that these are not two exactly equal copies:
Copy one has as error message
You are not allowed to import local repositories, and copy two has
the provided url is invalid. You must escape all components of the URL correctly.
So, could it be that the copy behavior is triggered by two different error messages being present at once, and for each error message the site is created again?


fix IRIS image, Dockerfile, dockercompose, Readme

Hi @rcemper! Thank you for your pack of fixes!! :)


Reference link field without additional API call

Description
Creating a reference field always makes another API call to get the referenced entity. This call adds unnecessary overhead if we just want to create a link from the ID (stored in parent entity) to the referenced entity. This has significant impact using a reference field in a list view.
Steps to Reproduce

In a list view, create a reference field with the target field id or whatever the field you already have in the parent entity is.
Navigate to the list view
Observe the unnecessary extra calls to the referenced entities

Expected behavior:
Removing the targetField method should just use the id field already present in the parent entity, when displaying with link/read widgets, and thus no other API call be made.
Actual behavior: [What actually happened]
Extra call is unavoidable using the existing reference field type.
My initial naive thoughts are this could be achieved with an additional slightly altered version of the reference field type or even better with the existing reference field type when no targetField is specified.

Why don't you use a simple string or numeric field, and override the template to include the hyperlink?

I was initially re-using the reference field from the create view in the list, but replacing this with a simple string field + template is a good idea. Thanks!


Improving the styling of the Vision cards

@gdscsmit @girish0120  Can I work on styling this vision and goal section.

It would be great if you could you just drop a sample of the UI. 😄
@DannyK05

I believe that I can make a meaningful contribution by addressing this issue. I have experience in Frontend development and I have worked on various projects. I am eager to work on this specific problem.
Kindly assign this to me !!
THANKS for your consideration.

@pooranjoyb
I want to make them like a card UI.
Something like this 👇

I'll put a preview of it in the pull request so you know what I did.

I'll put suitable images for each heading or you can send images taken at your club that reflects the headings so I would include them.

I'll put suitable images for each heading or you can send images taken at your club that reflects the headings so I would include them.

Go for it and make sure it's responsive!

I'll put suitable images for each heading or you can send images taken at your club that reflects the headings so I would include them.

Go for it and make sure it's responsive!

Yeah, I will

Hi, Could you please assign this task to me?


Allowing R4 and R6 objects for connection types

Another thing I might add is accomodating connection objects created with other methods other than pool.
My company's infrastructure is built around an S4 object type.
Shouldn't be too much.
Starting with the timezone functions.

I've been really busy and haven't my account. I'm delighted that someone
found this useful. Thank you for writing and submitting issues! I can't
work on this project for a week or so, but I'll go work on the issues. :)
On Wed, Apr 19, 2023 at 8:16 AM beevabeeva @.***> wrote:

Another thing I might add is accomodating connection objects created with
other methods other than pool.
My company's infrastructure is built around an S4 object type.
Shouldn't be too much.
Starting with the timezone functions.
—
Reply to this email directly, view it on GitHub
https://github.com/eauleaf/crudr/issues/3, or unsubscribe
https://github.com/notifications/unsubscribe-auth/ATNMFBJGW7MJNL6LPSSRXP3XB76VNANCNFSM6AAAAAAXEHI7S4
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

Thanks! Also been busy but now I actually have company time to spend on it.
I'll keep updating the issues if I make progress, so do check before starting in case we start working on the same thing (I guess there's nothing really wrong with that though).

I made progress on this but it's very hacky - just wanted to get the example code to run using my DB/connection package.
The code below is from cdr_adj_timezone.R.  I did a similar hack in cdr_update_db_deltas_tbl.R.
  #Handle S4 connection object
  # NOTE: just ham-fisting this in like this for now. It is terrible, redundant etc.
  # But want to see what eauleaf will say/how they'd do it.
  if (isS4(conn_pool)) {
    pg_tz <- paste(pool::dbGetQuery(conn_pool, "SELECT current_setting('TIMEZONE')"))

    # can't really get a fool-proof way to do this with S4 at the moment.
    # dplyr::case_when(
    # stringr::str_detect(conn_pool@timezone,"(?i)Snowflake") ~ 'UTC',
    # stringr::str_detect(conn_pool@timezone,"(?i)sqlite") ~ '',
    # stringr::str_detect(conn_pool@timezone,"(?i)postgres") ~ pg_tz,
    # T ~ Sys.timezone()
    # )

  } else{
      if(stringr::str_detect(conn_pool$objClass[[1]],"(?i)postgres")){
          pg_tz <- paste(pool::dbGetQuery(conn_pool, "SELECT current_setting('TIMEZONE')"))
      } else {
          pg_tz <- "UTC"
      }

      dplyr::case_when(
      stringr::str_detect(conn_pool$objClass[[1]],"(?i)Snowflake") ~ 'UTC',
      stringr::str_detect(conn_pool$objClass[[1]],"(?i)sqlite") ~ '',
      stringr::str_detect(conn_pool$objClass[[1]],"(?i)postgres") ~ pg_tz,
      T ~ Sys.timezone()
      )

I think the package will work with S4 object connections now. Let me know if it fails or succeeds with your setup.


Cannot read property 'length' of undefined

My conclusion
This seems to be an issue with deep network of dependencies: globby -> fast-glob -> micromatch. At the top of the stack trace, fast-glob calls a function from micromatch:
const info = micromatch.scan(pattern, Object.assign(Object.assign({}, options), { parts: true }));
// See micromatch/picomatch#58 for more details
if (info.parts.length === 0) {
    return [pattern];
}

If you console.log(info), it has no parts property:
{
  prefix: '',
  input: 'src/umd-exchange/gql/*.graphql',
  base: 'src/umd-exchange/gql',
  glob: '*.graphql',
  negated: false,
  isGlob: true
}

The micromatch version that causes the bug is 4.0.2.
The fast-glob version that causes the bug is 3.2.0.
The globby version that causes the bug is 11.0.0.
So basically, this problem happens when everything is on their latest version.
Describe the bug
$ graphql-codegen
  ✔ Parse configuration
  ❯ Generate outputs
    ❯ Generate src/umd-exchange/gql.ts
      ✔ Load GraphQL schemas
      ✖ Load GraphQL documents
        → Cannot read property 'length' of undefined

  ✖ src/umd-exchange/gql.ts
    TypeError: Cannot read property 'length' of undefined
        at Object.getPatternParts (<omitted>/node_modules/globby/node_modules/fast-glob/out/utils/p
attern.js:94:20)
        ...

To Reproduce
Steps to reproduce the behavior:
https://codesandbox.io/s/vibrant-fire-f0x5p

My GraphQL schema:

type Subscription {
  newMessage(conversationId: Int!): String!
}
schema {
  subscription: Subscription
}

My GraphQL operations:

subscription onNewMessage($id: Int!) {
  newMessage(conversationId: $id)
}

My codegen.yml config file:

overwrite: true
generates:
  src/umd-exchange/gql.ts:
    schema: src/umd-exchange/schema.graphql
    documents: src/umd-exchange/gql/*.graphql
    plugins:
      - typescript
      - typescript-resolvers
      - typescript-operators
      - typescript-graphql-files-modules

Expected behavior
No error.
Environment:

OS: MacOS
"@graphql-codegen/cli": "1.12.2"
"@graphql-codegen/introspection": "1.12.2"
"@graphql-codegen/typescript": "1.12.2"
"@graphql-codegen/typescript-document-nodes": "1.12.2"
"@graphql-codegen/typescript-graphql-files-modules": "1.12.2"
"@graphql-codegen/typescript-resolvers": "1.12.1"
NodeJS: 12.14.0

Additional context

I tried locking fast-glob to 3.1.1:
  "resolutions": {
    "fast-glob": "3.1.1"
  }

Error has gone.

Reported upstream: https://github.com/mrmlnc/fast-glob/issues/253

@anilanar Thank you. You saved me a lot of time

@anilanar Thank you for reporting and finding a workaround!
I tried to run the reproduction sandbox - but it seems to work, can you please verify that?

@anilanar thank you, you saved my day. For those who use npm, I found this plugin to use "resolutions" as workaround: https://www.npmjs.com/package/npm-force-resolutions

TL;DR
We are waiting for a fix by micromatch, then fast-glob and globby needs to release a new version too.
@dotansimha It's kind of hard to reproduce. I had to copy my own yarn.lock and then run yarn, which updates yarn.lock again.
The specific problem is described in https://github.com/micromatch/micromatch/issues/196 and in  https://github.com/mrmlnc/fast-glob/issues/253. So the problem only happens if node_modules had a version of picomatch between 2.0.5 and 2.2.0 before installing a dependency that requires micromatch 4.0.2.

It seems like fast-glob solved it in v3.2.1. Keeping open until fully solved.
Thanks @anilanar


changing name of deprecated react lifecycle methods

https://github.com/airbnb/react-dates/issues/1748

Instead of switching to getDerivedStateFromProps, I figured using the UNSAFE versions of the functions was less disruptive. Perhaps the lib will move to a functional/hooks-based implementation some day.
The UNSAFE prefix on the function names upset eslint's camelcase rule. I copied the config from here but added the allow property

@ljharb just removed < 16 from .travis.yml. I also removed react 17 from the dependencies; we can add that in later when enzyme et al. are updated.

Is this still blocked? Any way a contributor could help? react-dates is preventing migration to React 17 for me.

Is this still blocked? Any way a contributor could help? react-dates is preventing migration to React 17 for me.

Yes; this still needs rebasing, but also would still be a breaking change.

Hello! We still need this issue to be fixed to migrate to React 17. Any news?


Update changelog from 0.12-rc1 to 0.12.0

Draft for GoReleaser. This can be closed if included in the release.
Signed-off-by: GuessWhoSamFoo<EMAIL_ADDRESS>

Pull Request Test Coverage Report for Build 1259

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 71.34%

Totals

Change from base Build 1258:
0.0%

Covered Lines:
12040

Relevant Lines:
16877

💛  - Coveralls


check that binned images are treated correctly by calibration algorithms

Works fine now when linearisation is commented out.

works fine for lineariation as well now


role template should not use "role:" block

Role template should not use "role:" block because is harder to maintain than the newer task include_role.
Note: patches welcomed, this should be a easy to implement first time contribution.
Use UP/DOWN thumbs to vote for this change.

I've made a new label for that, good idea to make this clear. Perhaps we can also advertise this on the README or somewhere useful for people who want to get started with helping.

I'd be happy to help submit a pull request - I'm pretty new here, but I've been using molecule for a while. To be clear, we would like to update the 'role:' blocks in the cookiecutter roles?

Hey, cool @mjlshen! Sounds like it. If you want, just take a shot at the PR and we'll give it a review for sure. More hands on deck around here would be pretty nice.


cloud-init + google COS image

This simplifies deployment to Google by using their container-optimized OS (COS) and dockerized funnel. This removes the steps needed to build and deploy a Funnel VM image.
I'm leaving the existing VM-image deployment as is for now, in case it's actually useful to someone, some day. I'll revisit down the road to clean it up if it's not used.

Could you add a README to the deployments section that describes the two sets of GCE scripts?


Content-Length header set to 0 in HEAD requests

Hi,
I g-have a problem with HEAD requests : mitmproxy override Content-Length header and set it to 0.
Without mitmproxy:
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=86400
Connection: keep-alive
Content-Length: 1488324
Content-Type: application/epub+zip
Date: Mon, 29 Jun 2015 09:20:54 GMT
ETag: "559103d3-16b5c4"
Expires: Tue, 30 Jun 2015 09:20:54 GMT
Last-Modified: Mon, 29 Jun 2015 08:37:39 GMT
Server: nginx

With mitmproxy:
Accept-Ranges: bytes
Cache-Control: max-age=86400
Connection: keep-alive
Content-Length: 0
Content-Type: application/epub+zip
Date: Mon, 29 Jun 2015 09:48:54 GMT
Etag: "559103d3-16b5c4"
Expires: Tue, 30 Jun 2015 09:48:54 GMT
Last-Modified: Mon, 29 Jun 2015 08:37:39 GMT
Server: nginx

I looked in the code and I saw that the Content-Length is computed from the length of the body of the request. Or HEAD requests have no body but can have a Content-Length > 0.
I don't know how to fix the bug but if anyone has a solution, I would be happy.

Thanks for the report - I think we don't consider yet that there are responses whose actual content length is not equal to Content-Length.
https://tools.ietf.org/html/rfc7230#section-3.3

Responses to the HEAD request method (Section 4.3.2 of [RFC7231]) never include a message body because the associated response header fields (e.g., Transfer-Encoding, Content-Length, etc.), if present, indicate only what their values would have been if the request method had been GET

We currently always set the content-length to the correct value http.py#L803-L806. I'm afraid we need to get rid of that, which should be done very carefully as quite a few features depend on that.

This should be fixed on master now, thanks!

On 0.15 I am still getting 0 as Content-Lenght on HEAD requests.
Without Proxy:
curl -i -X HEAD http://vid.applovin.com/1428106347_x.mp4
HTTP/1.1 200 OK
X-Trans-Id: tx4577952af96b4ea88804c-00562d1eb2ord1
Last-Modified: Sat, 04 Apr 2015 00:12:29 GMT
ETag: 2940aaa3e549ad144d762bb184b3f557
Content-Length: 3223986
Accept-Ranges: bytes
X-Timestamp:<PHONE_NUMBER>.10108
Content-Type: video/mp4
Cache-Control: public, max-age=604800
Expires: Thu, 17 Dec 2015 18:30:29 GMT
Date: Thu, 10 Dec 2015 18:30:29 GMT
With Proxy:
X-Trans-Id: tx4577952af96b4ea88804c-00562d1eb2ord1
Last-Modified: Sat, 04 Apr 2015 00:12:29 GMT
ETag: 2940aaa3e549ad144d762bb184b3f557
content-length: 0
Accept-Ranges: bytes
X-Timestamp:<PHONE_NUMBER>.10108
Content-Type: video/mp4
Cache-Control: public, max-age=604800
Expires: Thu, 17 Dec 2015 18:32:47 GMT
Date: Thu, 10 Dec 2015 18:32:47 GMT

Looks like you "currently always set the content-length to the correct value" again but now its at message.py#L69-L70.  I have no idea what the right way to fix it is but for my testing, I don't need those two lines and so I removed them.

Looks like you "currently always set the content-length to the correct value" again but now its at message.py#L69-L70.  I have no idea what the right way to fix it is but for my testing, I don't need those two lines and so I removed them.

Fixed this one and added a regression test. Thanks!


Process Return Codes and Output Parameters

Call Stored Procedures not modify Output Parameters and Return and not fn get
https://docs.microsoft.com/en-us/sql/relational-databases/native-client-odbc-how-to/running-stored-procedures-process-return-codes-and-output-parameters?view=sql-server-ver15

Hello @yangweng . Thanks for testing this library during this early stage and giving it a try. Neither Output Parameters, nor Return values of stored procedures are implemented yet. Thanks for providing the link to the documentation. Outputparameters will be supported eventually, but currently I am the sole maintainer of this crate and I develop it exclusivly in my spare time. I am currently working on a general purpose buffer class which allows users to consume the results of a row wise bulk cursor in safe code (other than with the already supported TextBuffer).
Which serves as a neat segway to the second issue you mention. If I understand your request for an fn get correctly it is some desire for a wrapper around SQLGetData. I do not intend to wrap this function soonish, as applications should prefer to bind buffers beforehand, which is more efficient. They'll do so automatically by utilizing the RowSetBuffer and ParameterCollection traits which are already present in this library, but currently require unsafe implementations from the user, if the cases are not covered yet.
I dropped the error from the issue title. As this is simply a feature not implemented.
I'll leave this open until Output parameters are implmented, tested and documented.

Output and input/output parameters are now supported starting with version 0.13.0.

Output and input/output parameters are now supported starting with version 0.13.0.


chore: Try remove base64 entirely [DO NOT MERGE]

Please provide a paragraph or two giving a summary of the change, including relevant motivation and context.
Checklist:
Remove the checklist to signal you've completed it. Enable auto-merge if the PR is ready to merge.

[ ] If the pull request requires a cryptography review (e.g. cryptographic algorithm implementations) I have added the 'crypto' tag.
[ ] I have reviewed my diff in github, line by line and removed unexpected formatting changes, testing logs, or commented-out code.
[ ] Every change is related to the PR description.
[ ] I have linked this pull request to relevant issues (if any exist).

Leaving the base64 encoded versions of artifacts in the browser packages because thats how they will be extracted from the abi.json


Post with list doesn’t open — TypeError: e.get is not a function

- Do you want to request a feature or report a bug?
Bug
- What is the current behavior?
After logging in, everything seems to work fine, except when you try to open a post from a collection (well I only have one) that it throws a “Sorry!” error.
- If the current behavior is a bug, please provide the steps to reproduce.

Use this config file.
Source code here

- What is the expected behavior?
That the post opens, whereas now it doesn’t.

The list widget supports two formats:

field with a single list (like you are wanting)
fields (plural) with an object for each list item

Unfortunately, single-item lists are broken right now (https://github.com/netlify/netlify-cms/issues/1139). There is a fix in progress, but it is not merged yet.
For now, you could use the alternative multi-field format. You would need to add a name to the system list item, and it would show up in your issue files like this:

Affected:
  - system: tmw.media API
  - system: test
  - system: system 3

I can't change a core part of the frontmatter for a project nearing its last release candidate, though.

Closed in #1395.


div II feedback

Passes install_github: ✅
Documentation builds: ✅
Passes R CMD check: ✅

@beanumber

What is the Pokédex? Can you include some links to it in your README?

Let's make sure that all members of the group are pushing commits to the repo.


fix (forking): fixes bugs required for Ganache UI forking to work, adds ws support

Coverage decreased (-0.08%) to 82.096% when pulling 3164f057bf6da54d2f073877e2d7a5648d7e539a on fix/forking into 34cdd8aed94b0bb642e9806ce44cd750c6bc6b4b on develop.


Require Sign In View doesnt work

Gitea version (or commit ref):

1.2.0+rc1-3-g1cbe502

Git version:

2.11.0

Operating system:

Debian GNU/Linux 9 (stretch)
Linux 4.9.0-3-amd64

Database (use [x]):

[ ] PostgreSQL
[x] MySQL
[ ] MSSQL
[ ] SQLite

Can you reproduce the bug at https://try.gitea.io:

[ ] Yes (provide example URL)
[ ] No
[x] Not relevant

Log gist:

Description
If I set up Require Sign In View to true, then I can still view public repos, orgs and users from incognito browser window

have you restart your gitea service?

No :sweat_smile:
Thaaanks @lunny, it works after restart!
Could be this requirement documented?

Maybe we need to add some word on https://docs.gitea.io/en-us/config-cheat-sheet/


Allays become invulnerable* under certain circumstances when mindflayed

running 0.11.0-pre-559 on fabric
this is a particular quirk with the allay.
when a player gives an item to an allay, the player is marked as its "owner".
allays are incapable of receiving any damage from their owner. apparently this is vanilla behavior.
with an allay mindflaying recipe, it's therefore possible to have an allay in a state where you cannot retrieve the item from it without killing it, but you cannot directly deal damage to it either. not invulnerable, but certainly a pain in the ass.
technically speaking, none of this is a bug, but it is strange behavior. perhaps the allay could forget its "owner" when brainswept?

Good reason to implement custom brainsweeping hooks a la the custom velocity hooks

OH, no it's that the InteractionResult variants mean different things on different platforms, I think...

This issue still exists. The item can sometimes be retrieved (inconsistent) but it won't update ownership since they're brainswept.


Remove abstract definition for Guard JWTokenAuthenticator

Guard JWTokenAuthenticator class is not abstract but in service.xml is defined as abstract.

Hi @santakadev,
I'm not sure to understand the motivation of this PR.
Making a service definition abstract doesn't involve to have the corresponding class abstract, it is two different concepts.
The purpose of making this definition abstract is to allow extending the service without having to repeat all of the arguments. Plus, this service will be removed from the container at compile time so nobody can neither inject it nor get it.
See https://github.com/lexik/LexikJWTAuthenticationBundle/blob/master/Resources/doc/6-extending-jwt-authenticator.md#creating-your-own-token-authenticator for an example and http://symfony.com/doc/current/service_container/parent_services.html
However, we are setting the class on this service, making the abstract attribute quite useless. If we would make a change, it would be to move the class from the abstract lexik_jwt_authentication.guard.jwt_token_authenticator to the concrete lexik_jwt_authentication.jwt_token_authenticator. Would you consider changing the scope of this PR for doing that?
Thank you.

Hi @chalasr,
The motivation for this PR is that I was trying to use the first service definition of the guard authenticator in security.yml lexik_jwt_authentication.guard.jwt_token_authenticator.
I don't realize that there was another service definition extending the first. Using lexik_jwt_authentication.jwt_token_authenticator all works as expected.
Anyway, I don't understand why to make the service abstract, and then create another definition for the same class. We can extend the first definition without repeat the arguments, and an instance of the class is keeping in the container, because the second definition. Probably I am missing something.
Thanks for all.


Feature/better error checking

Fixes to the importer to take account of some found issues

These changes look good to me! 👍


Data race in Raft transport

TEST 146 '3-node server integration:GRANT ALL PRIVILEGES TO jdoe'
==================
WARNING: DATA RACE
Write by goroutine 267:
  net/http.(*persistConn).readLoop()
      /usr/local/go/src/net/http/transport.go:929 +0xdb8

Previous read by goroutine 82:
  net/http.funcÂ·024()
      /usr/local/go/src/net/http/transport.go:910 +0x4c
  net/http.(*bodyEOFSignal).condfn()
      /usr/local/go/src/net/http/transport.go:1228 +0x105
  net/http.(*bodyEOFSignal).Read()
      /usr/local/go/src/net/http/transport.go:1200 +0x41c
  io.ReadAtLeast()
      /usr/local/go/src/io/io.go:298 +0x128
  io.ReadFull()
      /usr/local/go/src/io/io.go:316 +0x7d
  github.com/influxdb/influxdb/raft.(*LogEntryDecoder).Decode()
      /home/ubuntu/influxdb-build/src/github.com/influxdb/influxdb/raft/encoder.go:48 +0xfa
  github.com/influxdb/influxdb/raft.(*Log).ReadFrom()
      /home/ubuntu/influxdb-build/src/github.com/influxdb/influxdb/raft/log.go:1920 +0x450
  github.com/influxdb/influxdb/raft.(*Log).readFromLeader()
      /home/ubuntu/influxdb-build/src/github.com/influxdb/influxdb/raft/log.go:969 +0x752

Goroutine 267 (running) created at:
  net/http.(*Transport).dialConn()
      /usr/local/go/src/net/http/transport.go:660 +0x10d4
  net/http.funcÂ·019()
      /usr/local/go/src/net/http/transport.go:520 +0x8d

Goroutine 82 (running) created at:
  github.com/influxdb/influxdb/raft.(*Log).followerLoop()
      /home/ubuntu/influxdb-build/src/github.com/influxdb/influxdb/raft/log.go:893 +0x1dc
  github.com/influxdb/influxdb/raft.(*Log).stateLoop()
      /home/ubuntu/influxdb-build/src/github.com/influxdb/influxdb/raft/log.go:872 +0x13d
==================
FAIL	github.com/influxdb/influxdb/cmd/influxd	123.489s

@benbjohnson

Hit this again today.

Closing this because it will likely be remedied by clustering changes int the next two weeks. Nothing actionable right now.


Scheme validation to check MAC address duplication?

At the moment, I can apply the same MAC address to GSE of different IED's and OpenSCD does not complain. Can we have a check function so someone does not do something stupid? This is not a big deal for a new project, but can be an issue where you add an IED to an existing project.

I do think this would be a nice to have but at the moment it is somewhat trivial to select everything, sort by MAC address and eyeball it for duplications.
Ultimately being able to write validators to check the design is as we expect would be a nice improvement to make.


Add checklinks build plugin

This is currently held up by an issue that I don't quite understand. I'm going to check with the maintainer of the plugin.

Okay, this plugin seems kind of half baked at the moment. I'm going to close this and see how it develops.


fixed typo in glossary.md

corrected the word "persistent"

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

Thank you!


False advertisement, Needle will (NOT) automagically prepend it.

needle.get('google.com/search?q=syd+barrett', function(err, resp) {
  // if no http:// is found, Needle will automagically prepend it.
});

needle.get('google.com/search?q=http+status+codes', function(err, resp) {
  // Needle does NOT automagically prepend it, OUCH!!
});

Seems like false advertisement to me, owner refuses to fix bug whilst maintaining his cute internet boy-charm and smiley-faces. Since the owner does not care about his logical errors within his code, I request that this snippet be pulled from the README as it is clearly false advertisement, OUCH!!

OUCH indeed. I'm surprised that this was ignored even with perfectly valid examples of it being a bug.

@sw0o0sh Ouch, so now it's personal? Looks like you had a rough week.  It's friday night.

Sorry, I am not a neglectful alcoholic tomas. Please stop advertising broken features, and take responsibility.

How you feel about sw0o0sh or whatever mishap you two have gotten yourselves into doesn't affect the validity of the bug. Please just fix it one way or another :(

@misterhat I certainly will.  :)

Everyone is welcome to use my patched version @
https://www.npmjs.com/package/thorn

Everyone is welcome to use my patched version @
https://www.npmjs.com/package/thorn


Added functionality to search for changesets through merging and branching changesets.

Hello Team,
I have added changes to allow search for changesets through merging and branching changesets.
Request you to review my changes and consider for merge.
Regards,
Shikhar Jain

Could you please describe the use case when this feature is required?
What is the expected result, what is the current result?


A read limit of 0 should not imply eof

Consider
extern crate ssh2;

fn main() {
        use std::io::prelude::*;
        use std::net::TcpStream;
        use ssh2::Session;

        let tcp = TcpStream::connect("<IP_ADDRESS>:22").unwrap();
        let mut sess = Session::new().unwrap();
        sess.handshake(&tcp).unwrap();
        sess.userauth_password("aidanhs", "password").unwrap();
        assert!(sess.authenticated());

        let mut channel = sess.channel_session().unwrap();
        channel.limit_read(0);
        channel.exec("sleep 1; ls").unwrap();
        let mut s = String::new();
        channel.read_to_string(&mut s).unwrap();
        println!("{}", s);
        println!("{}", channel.exit_status().unwrap());
        channel.send_eof().unwrap();
        channel.wait_eof().unwrap();
        channel.close().unwrap();
        println!("eof: {}", channel.eof());
        channel.wait_close().unwrap();

}

Output:
 $ cargo run
   Compiling test v0.1.0 (file:///home/aidanhs/Desktop/hadean/test)
     Running `target/debug/test`

0
eof: true
thread '<main>' panicked at 'called `Result::unwrap()` on an `Err` value: Error { code: -34, msg: "libssh2_channel_wait_closed() invoked when channel is not in EOF state" }', ../src/libcore/result.rs:746
note: Run with `RUST_BACKTRACE=1` for a backtrace.
Process didn't exit successfully: `target/debug/test` (exit code: 101)

There are a couple of things worth noting here:

The important one, eof() returns true but wait_close() complains it's not eof. I've looked at the code and I'm not sure what the correct solution here is, but the current behaviour feels subideal. Comment out limit_read() to make it work.
exit_status() returned 0 even though the command hadn't finished - it should probably be documented that a return code of 0 may mean success or an unfinished process.

Oh gah the limit_read function isn't really intended to be used publicly, it's just a hack to work around weird behavior in scp_recv. I suspect that it may be more prudent to fix the underlying bug, however?

Ah yeah it looks like in the libssh2 examples you have to just read up to the size listed in the stat returned, rather than testing for eof and returning after that...
If you avoid the limit_read API, does it work out otherwise? I may try to remove that or hide it and document it as a hack.

Yeah it's fine without limit_read. I assume you'll just make it private?
In other news, wait_eof appears to be documented very misleadingly in libssh2 - http://www.libssh2.org/libssh2_channel_wait_eof.html (and therefore in this library).
Although it says "Wait for the remote end to acknowledge an EOF request", which (to my reading) means the remote end is saying "yes, I got your send_eof". However:

it waits for remote.eof in https://github.com/libssh2/libssh2/blob/d441da3086dcc49989b7c5b9bf3043c4a6a98211/src/channel.c#L2233
remote.eof is set in response to a SSH_MSG_CHANNEL_EOF message https://github.com/libssh2/libssh2/blob/d441da3086dcc49989b7c5b9bf3043c4a6a98211/src/packet.c#L744
"When a party will no longer send more data to a channel, it SHOULD send SSH_MSG_CHANNEL_EOF." per section 5.3/page 8 of https://www.ietf.org/rfc/rfc4254.txt

So what it actually means is "wait for the remote end to have nothing more to send", which sounds a bit different!

Thanks for checking! I think yeah I'll try to make it private and not exposed at all (or at least doc(hidden) and documented as deprecated for now).
Want to make a PR for the doc fixes though?

I think I'll try and get the doc fixes upstream.


seagl-reprovision borks rpm-ostree

This is because /sysroot gets unmounted somehow. Low priority because a reboot fixes this.

Turns out this is an upstream bug. Plain systemctl soft-reboot borks rpm-ostreed, actually.


Fix description is ignore when installed with upgrade

What this PR does / why we need it:
Fix #8264
Special notes for your reviewer:
Fix description is ignore when installed with upgrade
/assign @mattfarina

@wawa0210 Do you mind signing the dco: https://helm.sh/blog/helm-dco/index.html ?

Thank you for your reminder,done .


Unable to get data in topic /filter/positionlla , /filter/quaternion and other topics beginning with name /filter/...

hi i am currently using the xsens MTi-630R on my Jetson Xavier on Ubuntu 22 / ROS Humble. I am unable to see any data on topics such as /filter/positionlla, /filter/quaternion, /filter/free_acceleration, /filter_twist, /filter_velocity. How do i activate or get data in this topics? in the xsens_mti_node.yaml all my message publisher options are set to True. Kindly help

for me it didn't work with humble it worked only with foxy, and you first need to configure your device, to output filtered data, if yours does have this feature, mine mti 100 doesn't :(, to configure the imu you need to install mti manager.


sh is borked on 2.0.0

Upstream: https://github.com/rmyorston/busybox-w32/issues/447
~/scoop/apps/w64devkit/current $ which ls
sh: unable to spawn shell
~/scoop/apps/w64devkit/current $ bash
sh: unable to spawn shell
~/scoop/apps/w64devkit/current $ cd ..\..
sh: cd: can't cd to ....: Invalid argument
~/scoop/apps/w64devkit/current $ cd ..\
> /
sh: cd: can't cd to ../: Invalid argument
~/scoop/apps/w64devkit/current $ cd ..
sh: cd: can't cd to ..: Invalid argument
~/scoop/apps/w64devkit/current $ cd ../..
sh: cd: can't cd to ../..: Invalid argument
~/scoop/apps/w64devkit/current $ env
sh: unable to spawn shell
~/scoop/apps/w64devkit/current $  cd
sh: cd: can't cd to C:/Users/????: Invalid argument
~/scoop/apps/w64devkit/current $
~/scoop/apps/w64devkit/current $ cd
sh: cd: can't cd to C:/Users/????: Invalid argument

If it helps, I'm running Windows 11 21H2.

You probably need the unicode variant of busybox-w32 for that, but w64dk distributes a non-unicode build, because the unicode build doesn't run on windows XP.
You probably can't use the unicode variant (from https://frippery.org/busybox/) as a drop-in replacement for your existing busybox.exe, because w64dk uses a custom build which disables some utilities in busybox (like make).
But with some effort, you can replace busybox.exe with the unicode busybox variant, and exclude those utilities using the env var:
BB_OVERRIDE_APPLETS=";ar make strings xxd"

I'm not entirely sure which applets w64dk disables in busybox, but whatever they are, you should be able to add them to BB_OVERRIDE_APPLETS and then it should work in w64dk.

@avih
Has anyone experimented with an external manifest?

I believe @avih is correct. Alternatively extract w64devkit to an ASCII-only real path. Even with Unicode-aware busybox-w32, other tools in the kit (e.g. Binutils) aren't wide-path capable and still may not work correctly on non-ASCII paths.

@ale5000-git, see the discussion on 4f201b21f7d66eb328f027cd104e6a05fcf35f6f. An external manifest works (with the usual SxS caching caveats), as does injecting it into the binary later, but I currently don't enable Unicode editing in the build, so you'll still have trouble editing non-ASCII commands. My comment on the MR that "interactive UTF-8 editing is still too broken" was incorrect, and addressed in the discussion. I just needed to enable an additional option to get the correct behavior.

@skeeto maybe you should build a binary which is closer to upstream, at least as far as disabling applets go, and then exclude them using env vars as suggested above, so that it's easier for user to use different or newer busybox.exe binary?
For instance if some critical issue is detected and upstream releases a new binary which fixes it - users can't use it as drop-in replacement for their current busybox.exe in w64dk, but it would be nice if they could.

Why not provide an external UTF-8 manifest for a separate manual download?

Why not provide an external UTF-8 manifest for a separate manual download?

skeeto already replied to that, and additionally currently the busybox-w32 code needs to enable unicode at build time. I.e it doesn't support adding/removing the manifest with the same binary (though it should be possible, but currently the code doesn't do that).
However, it should still be possible to distribute an additional unicode build. True that it's not fun, but it would be the simplest. Or just ensure that upstream unicode busybox.exe binary can be used as a drop-in replacement, and instruct users to do that if they need.

skeeto already replied to that, and additionally currently the busybox-w32 code needs to enable unicode at build time. I.e it doesn't support adding/removing the manifest with the same binary

I have only talked about an external manifest file, not to be merged but just placed near the exe.
In most cases the user doesn't need to input UTF-8 in the interactive shell so it will fix most issues  (together with chcp 65001).

@skeeto maybe you should build a binary which is closer to upstream, at least as far as disabling applets go, and then exclude them using env vars as suggested above, so that it's easier for user to use different or newer busybox.exe binary?

Having w64devkit define a suitable BB_OVERRIDE_APPLETS so an alternative binary could be a drop-in replacement would be neat, but it wouldn't require any change to the w64devkit build of busybox-w32.

it wouldn't require any change to the w64devkit build of busybox-w32.

Sure, and I mentioned how to do that with existing setup. But it would need less patches in w64dk, which I consider to be better.

I'm not entirely sure which applets w64dk disables in busybox

Running something like this from an upstream busybox.exe will show the excluded applets:
comm -2 -3 <(busybox --list) <(w64devkit/bin/busybox --list)

Using that information we can make w64devkit/bin/etc/profile like so:
export BB_OVERRIDE_APPLETS='[[ ar ascii dpkg dpkg-deb ftpget ftpput link make ma
n pdpmake rpm rpm2cpio strings tsort unlink vi xxd'

. "$W64DEVKIT_HOME/src/profile"

Then replacing the w64devkit busybox.exe with an upstream one (PRE-5404 or above) should work. The new profile script will only be run by an upstream busybox.exe (hence the requirement for PRE-5404).
The overridden applets are unconditionally excluded to avoid unexpected surprises. They remain present, so if we want to use pdpmake it can be done either as busybox pdpmake or by copying the w64devkit BusyBox alias executable to pdpmake.exe.
If @skeeto could be prevailed upon to set BB_OVERRIDE_APPLETS in w64devkit/src/profile and I could be prevailed upon to support w64devkit/src/profile in the upstream shell, the additional profile script would be unnecessary and replacing busybox.exe would be about as seamless as possible.
I'd certainly find that useful for testing purposes.

I could be prevailed upon to support w64devkit/src/profile in the upstream shell

What upstream support would be needed? to support a build-time embedded profile file?
If yes, how would such upstream support help to use an upstream binary as a drop-in replacement?
If no, do you mean w64dk-specific things in upstream busybox.exe? FWIW, I don't think that's appropriate.
But mainly, w64dk already sets some env vars without any help of busybox-w32 that I know of (via the launcher), which I think would also work with upstream binary, so I don't think I'm seeing the need for any upstream suppport to add one more env var.

What upstream support would be needed?

To run w64devkit/src/profile.

If yes, how would such upstream support help to use an upstream binary as a drop-in replacement?

It wouldn't be necessary to provide a w64devkit/bin/etc/profile.

But mainly, w64dk already sets some env vars without any help of busybox-w32 that I know of (via the launcher)

Yes, and it sets some more via w64devkit/src/profile. Having a profile script that's relative to the binary allows the user to apply customisations without having to use an absolute path, thus making the installation self-contained.

What upstream support would be needed?

To run w64devkit/src/profile.

You mean to add an additional default relative path like this?
$(dirname `which busybox.exe`)/../src/profile

If relative etc/profile already works in upstream, then why can't that be used instead? I.e. why would upstream need to add a w64dk-specific path rather than w64dk using a supported generic relative path?
I'd think both are equally simple to implement, but one of them keeps bb-w32 more generic than the other approach.

As things stand w64devkit and busybox-w32 use different paths for their binary-relative profile scripts: ../src/profile and ./etc/profile respectively.

I'd think both are equally simple to implement, but one of them keeps bb-w32 more generic than the other approach.

And the other requires w64devkit to put its script in a different place than it does now.
Since I've already volunteered Chris to add the BB_OVERRIDE_APPLETS environment variable, I'm volunteering to make the change to profile support in busybox-w32.

And the other requires w64devkit to put its script in a different place than it does now.

I don't think ../src/ is a good generic place to put init scripts, and even more so to have upstream bb-w32 look there by default only because w64dk looks there.
To me it looks like w64devkit/src/ is abused to hold the runtime profile file only because this dir happens to exist during build time. All other files there are the source files of w64dk itself, and unrelated to runtime usage.
I'd think that If anything, you two should agree on a good generic relative path which w64dk can be comfortable to place init scripts, e.g. maybe ../etc/profile in addition to the currently-supported ./etc/profile, and then everyone can be happy.

I would prefer to set the profile variables in w64devkit.exe, but the names are case sensitive (ac_executable_extensions, build_alias). The busybox-w32 shell capitalizes all incoming variable names on start so these particular variables cannot be set external to the shell. The new "system" profile is merely a workaround for this behavior, and I don't plan to use it generally to configure the shell. PATH_SEPARATOR could be set in w64devkit.exe since it's capitalized, but I kept it with the others for organizational purposes, and because it's useless by itself.
If I switch to BB_OVERRIDE_APPLETS I'd set it in w64devkit.exe, not in profile. I'm considering doing so, except that it wouldn't cover all the cases I care about. If someone uses the shell, e.g. to run a shell script, without passing through w64devkit.exe — or sh -l in the profile case — they won't get the variable, and the shell will override tools like ar and make. (It's acceptable that such shells cannot run Autoconf builds out of the box — a special feature of the w64devkit.exe entrypoint, not the shell itself.)
Regarding style and convention, I agree that ../etc/profile makes the most sense for a system-level profile, especially upstream, more so than etc/profile and ../src/profile. If busybox-w32 already did this when I wrote my patch, I probably would have just used it instead. However, the new w64dk profile is just a workaround for otherwise setting variables in src/w64devkit.c, and putting it in src/ saves a Docker layer (I only get 127 of them! And each additional layer slows the others.).

I would prefer to set the profile variables in w64devkit.exe, but the names are case sensitive (ac_executable_extensions, build_alias). The busybox-w32 shell capitalizes all incoming variable names on start so these particular variables cannot be set external to the shell. The new "system" profile is merely a workaround for this behavior, and I don't plan to use it generally to configure the shell. PATH_SEPARATOR could be set in w64devkit.exe since it's capitalized, but I kept it with the others for organizational purposes, and because it's useless by itself.

Just an idea but it is also possible to create a shell file that set variables and load it from both w64devkit.exe and etc/profile, so it will work in every case.

Bit late of an update: the shell can run commands when this checkbox is ticked

Bit late of an update: the shell can run commands when this checkbox is ticked

This will maybe fix one problem and generate 100 more, since it is global and the UTF-8 codepage doesn't work properly in many cases.

Today I realized a one-liner busybox-w32 patch would improve Unicode support without downsides: 3cacd962. On x64, GCC has had a UTF-8 manifest since w64dk 1.19 (first release with GCC 13), and this hasn't been a problem for Windows 7, the oldest target the x64 build supports. Unlike XP, Windows 7 (and earlier versions of Windows 10, and presumably Windows 8) loads the EXE but ignores the manifest. That's fine because ignoring the manifest means it gracefully degrades to the prior behavior (i.e. nothing lost). I can get the same from busybox-w32 by disabling the UTF-8 code page check.
(However, I must again emphasize that parts of w64dk still do not understand Unicode paths and arguments: Binutils, GDB, Make, and Ctags.)

Today I realized a one-liner busybox-w32 patch would improve Unicode support without downsides

IIRC not quite.
While such mode is considered (utf8 manifest which falls back to ansi where the manifest is no-op, e.g. win7/8), the current code needs few changes before this can work, beyond the test to explicitly exit which you patched, because IIRC there's some code which hardcodes dependency on runtime manifest. IIRC related to utf8 input/output (i.e. KB input, and unicode console output).
So I expect this would not behave entirely correctly in ANSI mode on win7/8, mainly related to KB input and console output, but without recalling the specifics currently.

Thanks for the heads up, @avih! I'll keep an eye out for issues. I didn't catch anything in the source, and the original commit (https://github.com/rmyorston/busybox-w32/commit/9e2c3594) indicates the check is to "avoid raising false hopes." For me personally, mostly working beats flat refusal, and quiet is better than nagging, e.g. a hypothetical "warning: UTF8 is disabled!" on every start. (I've already accumulated four anti-nagging patches, and Cppcheck used to have the fifth.)

mostly working beats flat refusal, and quiet is better than nagging, e.g. a hypothetical "warning: UTF8 is disabled!"

I don't disagree, but as I mentioned, I think this will be broken for non-ascii chars I/O, which supposedly work correctly in the non-unicode build.
It should not be too hard to fix, and I think we should do that (upstream) to support auto-unicode mode, but for now it's not yet supported fully.
"supposedly" because IMO the non-unicode build is not perfect in this regard, but it still should be better than your patch.
Also, without looking closely at the patch context, I think the unicode support report at the output of busybox might be misleading in some cases.

FYI current upstream discussion about "auto-unicode" starts here https://github.com/rmyorston/busybox-w32/issues/423#issuecomment-2342044684


Bug: Management endpoints require Content-Type header even if no request body needed

Describe the bug
All your endpoint require Content-Type to be set to 'application/json'. While swagger does this implicitely, you have to create a workaround for programmatic HttpClients (e.g. in C#, I have to add an empty StringContent to the body).
Normally, get and delete requests, don't need a body or this type of header.
To reproduce
Steps to reproduce the behavior:

Use the app
Access GET/DELETE endpoints of the management API

Expected behavior
Content-Type headers are not necessary when there is no required request body
Actual behavior
Content-Type headers are enforced to be set
The command you used
N/A
A minimal project that can be used to reproduce the issue
N/A
Environment

OS: Any
Version: <=2.4.42
Java version Any

Additional context
Reported by @JoeS-Bosch

Hi @JoeS-Bosch,
I think it should be fixed now. Please try with v2.4.54 and let me know how it went!
Thank you in advance!

Hi,
I assume, that this fix should resolve the original issue, so I am closing it. Please feel free to reopen in case it is still not working as intended!
Thank you again and best of luck!

Hi,
I was on vacation and could not check earlier.
I pulled the latest version (2.4.66) and the issue is fixed! Thanks for the quick response and action.

Hi,
thank you for letting me know! I am glad it works!


Now we can test the emitted issues during tests. We can both expect an issue to be raised (eg, module resolution fails because node_modules isn't installed, etc), and assert that no unexpected issues are emitted.
Oh, and I'm stubbing out all the node_modules that are dependencies of our snapshot tests. Before, if you forgot to run pnpm install, your output would be different than CI, and that's just annoying. Not to mention if any of these packages got reverted from npm, everything would just break.

Actually you are removing a lot of snapshots node_modules, so this is probably net positive. Also snapshotting these issues is great.

Typo nit: the stub files for emotion have things<EMAIL_ADDRESS>
That's correct (look at the file path). I included it so that we could tell the correct module was being imported.


Create LICENSE

Haven't found a license at the forked repository and my "work" is rather minor. This is just to state that I don't claim any copyright.

Haven't found a license at the forked repository and my "work" is rather minor. This is just to state that I don't claim any copyright.


Quarkus 3 - consumer tests cannot directly access pact MockServer in test methods in dev mode

With the switch to Quarkus 3, we've moved to running more of the Pact infrastructure in the Quarkus classloader, rather than the system one. One side effect of this is that direct access to the pact MockServer gives classloading conversion errors (on Java 17 and higher):
---- Debugging information ----
message             : No converter available
type                : java.util.concurrent.CopyOnWriteArrayList
converter           : com.thoughtworks.xstream.converters.reflection.SerializableConverter
message[1]          : Unable to make private void java.util.concurrent.CopyOnWriteArrayList.readObject(java.io.ObjectInputStream) throws java.io.IOException,java.lang.ClassNotFoundException accessible: module java.base does not "opens java.util.concurrent" to unnamed module @5eff30f4
converter[1]        : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
message[2]          : Unable to make field private static final long java.util.concurrent.CopyOnWriteArrayList.serialVersionUID accessible: module java.base does not "opens java.util.concurrent" to unnamed module @5eff30f4
-------------------------------

Here is an example of a problematic access:
    public void testPortIsCorrect(MockServer mockServer) {

In general, test code should have no reason to access the mockServer directly, because the consumer tests should be testing the consumer, not the mock. The access here was to actually try and test the pact extension.
Because of that, I believe this is a low priority issue.

Hi! I'm facing this problem also. Probably because I'm following an outdated tutorial... would anybody be so gentle to tell me how can I do something like this:

@Test
    @PactTestFor(providerName = "content-store-service")
    public void verifyFindDepartmentPact(MockServer mockServer) {
        SampleNorsuRestClient client = RestClientBuilder.newBuilder()
                .baseUri(URI.create(mockServer.getUrl()))
                .build(SampleNorsuRestClient.class);
        Node node = client.getNode("test", "draft", ID);
        assertNotNull(node);
    }

Without facing the error mentioned in this issue?
Thank you so much in advance!

Using @MockServerConfig annotation perhaps?

Ah, there goes my hope that hardly anyone would hit this. :)
It's a bit inelegant, but you can hand-craft the equivalent of .baseUri(URI.create(mockServer.getUrl())) if you don't use random ports.
For example, if you have
@PactTestFor(providerName = "provider", port = "8096")

then you know your base URL will be something like http://localhost:8096.
It's not mentioned in the Pact docs that I can see, but my IDE is showing port as deprecated. Certainly, hardcoding the port isn't as elegant as using a random one. It does create a risk of interference between test instances and real instances if you choose the same port, or between pact and 'normal' mocks in a test run.
On the other hand, one advantage of hardcoding the port is it means you could do something like this instead of using the rest client builder
@ExtendWith(PactConsumerTestExt.class)
@PactTestFor(providerName = "content-store-service", port = "8096")
@QuarkusTest // Needed to enable dependency injection of the rest client
public class MyTest {

    @RestClient
    @Inject
    SampleNorsuRestClient client;

    @Test
    public void verifyFindDepartmentPact() {
        Node node = client.getNode("test", "draft", ID);
        assertNotNull(node);
    }

You would also need something like this in your application.properties
quarkus.rest-client.norsu-api.url=http://localhost:8096/

and this on the actual SampleNorsuRestClient
@RegisterRestClient(configKey = "norsu-api")

A final note is to be careful of spending too much energy testing your RestClient; it will just be a pass-through to the mock you defined using Pact. So it's good to check what you think you defined the mock to do is actually what the mock is doing, and it's good to check the types broadly match up with the endpoints on the other end ... but it's testing a mock.

Wow! Thank you so much for your suggestion, @holly-cummins !! I'll give a try in a shortwhile!!
BTW, I've changed my original message a little bit, just to remove the "Norsu" name (it's some kind of a keyword in my company).
I know it's asking too much, but could you also modify your answer to not include that name, if you please?
Thank you very much again and sorry for the inconvenience :(

Hi @holly-cummins,
we also ran into this issue during our Quarkus 3 migration. I disagree regarding your assessment on the priority - I think injecting the MockServer can be a valid requirement sometimes. For example, in our project we are using a custom Wiremock server that is started as part of Dev Services and acts as a proxy to the Pact Mock Server. This accomplishes two things for us:

We can point our application's REST Client to Wiremock, where we have more control due to Dev Services integration, so we also get rid of the programmatic RestClientBuilder.
Additionally, Wiremock is a little more verbose regarding its requests and responses than the Pact MockServer, so it's easier to spot mismatched requests (maybe an idea for #60?).

That aside, the workaround of setting a hard-coded port and avoiding to inject the MockServer does work, but it's still problematic, especially when using Pact in multiple services that run on the same CI.
Is there anything we can do here to get this fixed? I saw that there were similar issues with Quarkus Testing in the past that have been worked around (see for example https://github.com/quarkusio/quarkus/pull/24872), maybe something similar could be done here? Or do we have to wait for JUnit 5.10 to drop so we can fix the classloader stuff (as mentioned in https://github.com/quarkusio/quarkus/issues/22611)?

Thanks for the great analysis, @markusdlugi. I love that idea about the Wiremock proxy. I agree, adding an extra proxy does sound like a good way forward for #60. Do you have any sample code you can share?  I can't totally picture what you mean about the RestClientBuilder (but I agree it sounds good).
I also agree that I guessed wrong about the priority! My assumption has been that it needs JUnit 5.10 for a fix, and I'm planning to prepare a PR for that, so that it's ready to drop as soon as 5.10 GAs. However, it's been a while since I've looked at the issue, so I'll try again. I did try extending the approach from https://github.com/quarkusio/quarkus/issues/22611 but I stopped after adding support about ten more classes, because it seemed like I was never going to get to the end of the list.

On the bright side, whether we fix it or not, we get to call the issue "The Clone Wars."

I'm no expert here and probably don't know what I'm talking about, but if obtaining the URL from the MockServer is the most common thing one needs, perhaps this Quarkus extension (or rather the JUnit extension this Quarkus extension provides) could allow "injecting" the URL into the test directly?

I think that's definitely where we want to go, @Ladicek. At the moment, any Quarkus-driven injection doesn't work because of classloader problems (the tests run from the un-instrumented test class, not the one updated with Quarkus magic). Once that's sorted out (which I hope will be possible once we move to JUnit 5.10), all sort of developer experience improvements should be possible.

It looks like this may be fixed by https://github.com/quarkusio/quarkus/pull/40601 (although some other scenarios are broken by that same change!). That change will hopefully be available in Quarkus 3.11, if a needed JUnit upgrade releases in time.

This is fixed with Quarkus 3.12, but leaving this open to track enabling the test in a branch.

I believe this is fixed in Quarkus 3.12, but leaving this open to track making a new branch with that level of Quarkus as the minimum version and enabling tests.

#224 moves the minimum version to Quarkus 3.13.0, and with the serialization changes which come with that version of Quarkus, this scenario works properly. I've enabled the tests in #225, and we should be good going forward. Thanks, @dmlloyd!


Fix namespace again

Fixes #4
@supernova23 can you see if it uses the correct namespace now

another problem

I think regenerating the application using phoenix 1.3 will be the best solution

Yeah I just did that

it works fine now

Great.


DO NOT MERGE - testing Tweak ci

Coverage increased (+0.03%) to 92.488% when pulling 1be06855859a18200ee9daf7883391989ae28315 on bmihelac:tweak-ci into 4b4bcfdb75befa7f272df9dc93ac9c32cbc4e04e on django-import-export:master.


There is no option for only Year Selection

Hello..!
In this Repository there were no option of only selection of year. there were option for year and month both combine but in my project i required only year selection than i post this issue. please provide solution of it.

⛔ ⛔ ⛔    WARNING : READ BEFORE CREATING ISSUES    ⛔ ⛔ ⛔
This library was abandoned by its owner. I tried to contact him about 3 months ago with no success. Please cease to open new issues as they will not be handled by him. If you want, there is a fork created by Daniel Moncada and his team which is being currently maintained. Please don't open new issues here so that new users won't be mislead into believing this repo is still up-to-date.


Feature Parity

Add -vv option, use PWD as default path. Linter ran amok as I worked.

I also expanded the file extensions that nixt checks for which addresses #6.


Ability to enable watching a KeyStore file for modifications.

Deliberately leave this one until the manual management ops are stable, did previously look at this from the perspective of a generic KeyStore in Elytron but IMO this is something that needs much closer integration with the subsystem to relate to the other actions being performed.
We will have some additional things to consider: -

Suspend watches if the in-memory version is modified.
Maybe some force attributes on the load / save operations if detected out of sync with filesystem.

Depends on https://issues.jboss.org/browse/ELY-164


DST-431 - Download middleman

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 80.44%. Comparing base (ff7f533) to head (ffb317d).
Report is 4 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #108      +/-   ##
==========================================
+ Coverage   80.03%   80.44%   +0.40%
==========================================
  Files          62       62
  Lines        1868     1902      +34
==========================================
+ Hits         1495     1530      +35
+ Misses        373      372       -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.