Cooldown时间过长

cli运行的，网页我跑不起来，，用项目中的示例网页的话，也不行，因为我api的机子在国内，没有ssl

国外鸡调用国内API速度又不行，，

这是cli运行情况：
# root @ mx in /home/chatgpt-subtitle-translator on git:main x [16:06:43]
$ cli/translator.mjs --no-use-moderator -i 1.srt --stream --to zh-cn --no-prefix-number --model glm-4
[CLI] Assume SRT file 1.srt
(node:1560338) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
[Translator] System Instruction: Translate to zh-cn
[Translator] Lines count mismatch 100 98
[Translator] batch [
  'Hey!',
  'What is all of this?!',
  "Hey, what's this?",
  'Hmm?',
  'Ukkomon!',
  'The massive object,',
  'which has \\N been identified as a Digi-Egg,',
  'an object of Digimon origin, \\N even now continues to hover',
  'above Tokyo Tower, where it \\N first appeared a week ago.',
  "The message that it's apparently \\N broadcasting has been seen",
  'by countless numbers \\N of people all around the world,',
  'but so far, no one is completely \\N certain of just what it means,',
  'as the government \\N remains on heightened alert...',
  "Oh, look! It's Tai!",
  "A whole week's passed,",
  "and that \\N thing's still floating up there.",
  "It's been really \\N overwhelming for Izzy.",
  'He keeps getting called \\N into all these interviews',
  'and brainstorming sessions.',
  'I can never get \\N a hold of him anymore.',
  'I saw him on \\N another television show',
  'just before this one.',
  "Well, he is the world's \\N foremost expert on Digimon.",
  'Judging by the look of things,',
  'I doubt heeven has time \\N to sleep.',
  '-Yeah, right. \\N Also!',
  'When I tried calling Tai \\N ge got all upset with me',
  "and told me that he's way \\N too busy for small talk.",
  "What? That's not like \\N him.",
  "I don't know. \\N Humans are always changing.",
  "-That's what I always say. \\N -What do we think?",
  'Any theories as to why \\N that Digi-Egg appeared?',
  "If Izzy hasn't been \\N able to figure it out,",
  "then I doubt we'll be able to.",
  "You know what'll happen?",
  "The longer it's up there, \\N the less attention it'll get.",
  'People will just get used to it.',
  'After all...',
  'Forget about that.',
  "It's time for a bowl \\N of tasty goodness.",
  'Satisfaction guaranteed.',
  'Let the eating begin.',
  'Hmm!',
  'It smells yummy!',
  "Looks delicious, doesn't it, \\N Ken?",
  'You did a surprisingly good job.',
  "It seems like you've \\N really upped your game.",
  "-What's that mean? \\N -Breaking news...",
  "A man has been spotted climbing \\N up Tokyo Tower's antenna.",
  'How dangerous.',
  "He has no wings. \\N If he falls, he's done for.",
  '-Is this some kind of stunt? \\N -You know what they say.',
  'Turn up the heat \\N and watch the weirdos come out.',
  'Wait.  \\N -Were you hurt when you fell?',
  "You didn't get scraped up, \\N did you?",
  'If it hurts anywhere, \\N just tell us.',
  "Yeah. Don't be a hero.",
  "I think it's best you go \\N to the hospital.",
  "Well, that's a lot of Digimon \\N and their partners.",
  'Hey, just a tip.',
  'When someone saves your life,',
  'usually the first \\N thing you do is say thanks.',
  "I don't recall asking anyone \\N to do anything.",
  "That's really \\N how you're gonna play it?",
  'You know, we sacrifice perfectly \\N good ramen to rescue you.',
  "If that's how you're gonna be, \\N you can pay for it.",
  '- Just give it a rest, Davis. \\N - Sorry, Yolei!',
  'So, what were you doing \\N up there?',
  'Do you have some connection \\N to that Digi-Egg?',
  'It has nothing \\N to do with any of you.',
  "Well, that's not really true, \\N though.",
  "You're a DigiDestined too, \\N aren't you?",
  "Destined. \\N That's one way of putting it.",
  "That's a Digivice in your hand. \\N So where's your Digimon?",
  "I don't have a Digimon. Okay?",
  'Huh? But then...',
  'If you must know,',
  "I don't have a Digimon.",
  "I don't, because I killed \\N the Digimon who was my partner.",
  'Hey, listen, just who are you?',
  'Who am I?',
  'I guess I was the first.',
  'The first person to form \\N a partnership with the Digimon.',
  'Huh? Seriously? Is that true?',
  "You're the first DigiDestined?",
  'So long.',
  'Thanks for saving me.'
]
[Translator] transformed [
  '嘿！',
  '这都是些什么？！',
  '喂，这是什么？',
  '嗯？',
  '乌克蒙！',
  '这个巨大的物体，',
  '已经被确认为一个数码蛋，',
  '一个来自数码宝贝的物体， \\N 即使现在仍然在东京塔上空盘旋，',
  '它在一周前首次出现在那里。',
  '它显然发出的信息已经被 \\N 全世界无数的人看到，',
  '但到目前为止，没有人完全 \\N 确定它的确切含义，',
  '政府仍然保持高度警惕...',
  '哦，看！是泰！',
  '已经过去一整周了，',
  '那\\n东西还浮在那里。',
  '这对伊兹来说真的很\\n令人不知所措。',
  '他不断被叫去\\n参加各种访谈',
  '和头脑风暴会议。',
  '我再也无法\\n联系上他了。',
  '我在\\n这个节目之前的一个电视节目上见过他。',
  '嗯，毕竟他是世界上\\n最顶尖的数码宝贝专家。',
  '从情况看，',
  '我怀疑他\\n甚至没有时间睡觉。',
  '-是吗？\\n还有！',
  '我试着给泰打电话\\n他对我很生气',
  '说他现在太\\n忙了，没空闲聊。',
  '什么？这不像\\n他。',
  '我不知道。\\n人类总是在变化。',
  '-我一直这么说。\\n-你怎么看？',
  '对于那个数码蛋的出现\\n有什么理论吗？',
  '如果伊兹\\n都没能弄清楚，',
  '那么我怀疑我们也没办法。',
  '你知道会发生什么吗？',
  '它在上面待得越久，\\n得到的关注就越少。',
  '人们只会逐渐习惯。',
  '毕竟...',
  '别管那个了。',
  '是时候来一碗\\n美味的东西了。',
  '满意度保证。',
  '开始吃吧。',
  '嗯！',
  '真香！',
  '看起来很美味，不是吗，\\n肯？',
  '你做得出人意料地好。',
  '看来你的\\n厨艺真的提高了。',
  '-那是什么意思？\\n-突发新闻...',
  '有人看到一名男子 \\N 正在攀爬东京塔的天线。',
  '多危险啊。',
  '他没有翅膀。\\n如果他掉下来，就完了。',
  '-这是个特技吗？\\n-你知道人们怎么说。',
  '加热\\n看看怪人会出来。',
  '等等。他们这么说？',
  '你之所以觉得热\\n是因为你在做拉面。',
  '没有什么比\\n热厨房更好了。',
  '嘿，等一下。\\n看看他手里拿的是什么。',
  '数码器？',
  '那么这意味着...',
  '那个家伙是个数码选定者？',
  '你现在为什么\\n又出现了？',
  '在经历了一切之后，为什么是现在？',
  '你是个...数码宝贝？',
  '哈？',
  '哇。',
  '好险。',
  '-你没事吧？\\n-你摔下来受伤了吗？',
  '你没擦伤\\n哪里吧？',
  '如果哪里疼，\\n就告诉我们。',
  '是的，别逞英雄。',
  '我觉得你最好\\n去医院。',
  '嗯，那是很多数码宝贝\\n和他们的伙伴。',
  '嘿，给你个建议。',
  '当有人救了你的命，',
  '通常你首先\\n会说谢谢。',
  '我不记得要求任何人\\n做任何事情。',
  '这就是你\\n打算玩的方式？',
  '你知道，我们牺牲了完美的\\n拉面来救你。',
  '如果你打算这样，\\n你可以付钱。',
  '-别说了，戴维斯。\\n-对不起，约莱！',
  '那么，你刚才在\\n上面干什么？',
  '你和那个数码蛋\\n有什么联系吗？',
  '这和你们\\n任何人都没有关系。',
  '嗯，但这不是\\n真的。',
  '你也是个\\n数码选定者，不是吗？',
  '注定。\\n这是一种说法。',
  '你手里拿着的是数码器。\\n那么你的数码宝贝呢？',
  '我没有数码宝贝。好吧？',
  '哈？但是...',
  '如果你一定要知道，',
  '我没有数码宝贝。',
  '我没有，因为我杀死了\\n与我搭档的数码宝贝。',
  '听着，你到底是谁？',
  '我是谁？',
  '我想我是第一个。',
  '第一个与数码宝贝\\n形成伙伴关系的人。',
  '哈？真的吗？这是真的？',
  '你是第一个数码选定者？',
  '那么久。',
  '谢谢你救了我。'
]
[Translator] BatchSize decrease 100 -> 10 SizeThreshold 10
[Translator] Cost computation not supported yet for glm-4
[Cooldown] ChatGPTAPI 21715 ms
1 "Hey!" -> "嘿！"
2 "What is all of this?!" -> "这都是些什么？！"
3 "Hey, what's this?" -> "喂，这是什么？"
4 "Hmm?" -> "嗯？"
5 "Ukkomon!" -> "乌克蒙！"
6 "The massive object," -> "这个巨大的物体，"
7 "which has
been identified as a Digi-Egg," -> "已经被确认为一个数码蛋，"
8 "an object of Digimon origin,
even now continues to hover" -> "一个来自数码宝贝的物体， \N 即便现在仍然在"
9 "above Tokyo Tower, where it
first appeared a week ago." -> "东京塔上空盘旋， \N 它在一周前首次出现在那里。"
10 "The message that it's apparently
broadcasting has been seen" -> "它显然播报的信息已经 \N 被观测到"
[Translator] Cost computation not supported yet for glm-4
[Cooldown] ChatGPTAPI 55215 ms
[Translator] Lines count mismatch 10 11
[Translator] batch [
  'by countless numbers \\N of people all around the world,',
  'but so far, no one is completely \\N certain of just what it means,',
  'as the government \\N remains on heightened alert...',
  "Oh, look! It's Tai!",
  "A whole week's passed,",
  "and that \\N thing's still floating up there.",
  "It's been really \\N overwhelming for Izzy.",
  'He keeps getting called \\N into all these interviews',
  'and brainstorming sessions.',
  'I can never get \\N a hold of him anymore.'
]
[Translator] transformed [
  '被全球无数的人 \\N 观测到，',
  '但到目前为止，没有人能完全 \\N 确定它究竟意味着什么，',
  '因为政府 \\N 仍然保持高度警惕...',
  '哦，看！是泰！',
  '已经过去整整一周了，',
  '那玩意儿还飘在那里。',
  '这对伊兹来说真是',
  '压力很大。',
  '他不断被叫去',
  '参加各种采访和头脑风暴会议。',
  '我现在再也联系不上他了。'
]
[Translator] Single line mode
[Cooldown] ChatGPTAPI 54640 ms
11 "by countless numbers
of people all around the world," -> "被全球无数的人 \N 观测到了。"
[Cooldown] ChatGPTAPI 58357 ms
12 "but so far, no one is completely
certain of just what it means," -> "但到目前为止，没有人完全 \N 确定它究竟意味着什么。"
[Cooldown] ChatGPTAPI 58357 ms
13 "as the government
remains on heightened alert..." -> "由于政府 \N 仍保持高度警惕……"
[Cooldown] ChatGPTAPI 58162 ms
14 "Oh, look! It's Tai!" -> "哦，看！是泰！Tai!"
[Cooldown] ChatGPTAPI 58775 ms

可能是一直没对上，最后变成Single line mode
[Cooldown] ChatGPTAPI 58775 ms
每条要等一分钟属实比较长，希望能短一点，
另外大佬方便打包一个docker镜像吗

你的端口有 RPM 限制吗？
Cooldown 可先在 .env 调高
OPENAI_API_RPM=500


Final sweep and clean up of validation messages

This has been started, will need to be continued for newer items.


I don't know how to use it.

[root@centos6 ldap]# ./run.sh
4dbda683a3201952f2b7cfe80c71bd1c85f352454640b204a8d77379a8182de3
ba405ef17dee5a7e35a5f2499eea2280f5679db5cfedd5dd71727d46adb5cc0b
Go to: https://<IP_ADDRESS>
Login DN: cn=admin,dc=example,dc=org
Password: admin

CONTAINER ID        IMAGE                                                  COMMAND                CREATED             STATUS                      PORTS                                                                    NAMES
ba405ef17dee        osixia/phpldapadmin:0.9.0                              "/container/tool/run   18 minutes ago      Up 18 minutes               <IP_ADDRESS>:8000->80/tcp, <IP_ADDRESS>:4443->443/tcp                              phpldapadmin-service
4dbda683a320        osixia/openldap:latest                                 "/container/tool/run   18 minutes ago      Up 18 minutes               389/tcp, 636/tcp                                                         ldap-service

my server ip is <IP_ADDRESS>, but when I visit, it can't work.
my browser hint:
Forbidden
You don't have permission to access / on this server.

make sure you use port 80 instead of 443


Updating event types

Event Types mentions the creation of event types.
How do I extend an existing event type? Teams tend to delete & re-create event types for this purpose atm. What are the implications? What's the target situation?

Hi @bocytko, is this still an issue for you? cc @dehora @rcillo @v-stepanov @valgog @antban @adyach

Though the manual mentions compatibility modes now, an example how to update an event type in backward/forward compatible way, would be great.
The existing event type creation example does not say anything about versions yet.

Got it, @bocytko--can one of you guys take care of this?


At cpp ops map [WIP]

What changes were proposed in this pull request?
(Please fill in changes proposed in this fix)
How was this patch tested?
(Please explain how this patch was tested. E.g. unit tests, integration tests, manual tests)
Quick checklist
The following checklist helps ensure your PR is complete:

[ ] Eclipse Contributor Agreement signed, and signed commits - see IP Requirements page for details
[ ] Reviewed the Contributing Guidelines and followed the steps within.
[ ] Created tests for any significant new code additions.
[ ] Relevant tests for your changes are passing.

Closing in favor of: https://github.com/KonduitAI/deeplearning4j/pull/378


AQT doc devices and getting started tutorial

This PR adds AQT documentation and contains a *.md describing how to retreive tokens and URLs of AQT devices and a Jupyter notebook on a simple getting started example which shows how to execute a basic quantum circuit via the AQT API.

I'm happy to add 1 and 2 if you're okay with me pushing to your branch.

sure, go ahead, you can push to my branch

@googlebot I fixed it.

Automerge cancelled: A required status check is not present.
Missing statuses: ['cla/google']

@googlebot please rescan


pb2nc cycleless file processing mode

Bug and Enhancement:
Re-Confirm This Bug:
The current mechanism to process a set of input files and rename the output files
to the input_filename.nc doesn't appear to work. I had to put temporary change in
place in order to get this work.  I requires further analysis and a more proper solution
on my part.
Note: There is also a dependency on the PREPBUFR_DIR_REGEX = .*/rap/(2[0-9]{9}
required to having a cycle pattern group defined when trying to run in this
'cycleless' input file processing mode.
Enhancement:
Add a switch (aka a conf variable) that would just turn on the ability to process an input directory,
and write output by just appending .nc to filename. regardless of any cycle YMD related conf
variable settings etc .... It would be an override.

This processing of input would support the subdirs, and regex templates (dir, and filename).

If the input path defined in the conf  has subdirectories. ...
PREPBUFR_DATA_DIR = /blahdir1/blahdir2
lets say blahdir2/ has additional (subdirectories) ....
consider:
This is straight forward for a single directory ... OUTPUT_DIR/output_files.nc
When processing (subdirectories), the subdirectories will be added
to the output path, ie. written to SOME_CONF_OUTPUT_DIR/(subdirectories)/output_files.nc

I am not sure I fully understand the issue here, but the refactor to pb2nc and point_stat allows processing of files without cycles in their name. Testing this use case with the new version would prove if the fix has solved this issue or not...


fix: fix extra space between text and attached docs in comparison mode when expand attached documents on other side

issue #99: [Compare mode] If to expand attached documents on one side, it looks unfriendly on another side as huge big space appears between text and attached docs

/deploy-review

/deploy-review


v2ray-plugin always report a syntax error

Description
When I trying to start shadowsocks-libev server on a Debian Buster server,  a syntax error always occurs:
/usr/bin/v2ray-plugin: 2: /usr/bin/v2ray-plugin: Syntax error: Unterminated quoted string
Steps to reproduce:
$ sudo apt install -y shadowsocks-libev socat netcat
$ mkdir -p ~/Downloads/v2ray-plugin
$ cd ~/Downloads/v2ray-plugin
$ curl -s https://api.github.com/repos/shadowsocks/v2ray-plugin/releases/latest \
$ | grep "browser_download_url.*tar.gz" \
$ | grep "linux-amd64" \
$ | cut -d '"' -f 4 \
$ | wget -qi - -O v2ray-plugin --show-progress
$ sudo cp ~/Downloads/v2ray-plugin/v2ray-plugin /usr/bin/v2ray-plugin

Server-side configuration:
{
  "...": "...",
  "fast-open":true,
  "plugin": "v2ray-plugin",
  "plugin_opts": "server;tls;fast-open;host=mydomain.me;cert=/etc/shadowsocks-libev/mydomain.me/fullchain.cer;key=/etc/shadowsocks-libev/mydomain.me/mydomain.me.key;loglevel=none"
}

ss-server log:
INFO: using tcp fast open
INFO: plugin "/usr/bin/v2ray-plugin" enabled
INFO: UDP relay enabled
INFO: enable TCP no-delay
INFO: initializing ciphers... aes-256-gcm
INFO: using nameserver: <IP_ADDRESS>
INFO: tcp server listening at <IP_ADDRESS>:43355
INFO: tcp port reuse enabled
INFO: udp server listening at x.x.x.x:443
INFO: udp port reuse enabled
/usr/bin/v2ray-plugin: 2: /usr/bin/v2ray-plugin: Syntax error: Unterminated quoted string
ERROR: plugin service exit unexpectedly

Please help me figure out this issue, thanks a lot.

Is your v2ray-plugin executable? Didn't see chmod +x in your scripts.

Is your v2ray-plugin executable? Didn't see chmod +x in your scripts.

Thanks, but it's not the reason. I executed the script below, but the error still occurs.
sudo chmod a+x /usr/bin/v2ray-plugin

It seems you didn't extract the tarball you've downloaded.

It seems you didn't extract the tarball you've downloaded.

 Thanks I'll try agian.

It seems you didn't extract the tarball you've downloaded.

Thank you so much. Problem solved.


added some error messages to make this easier to debug

I've had troubles debugging the program. So I quickly added some exceptions. Shouldn't have much influence on the program if it's running normally. Now it looks like this f.e.
  File "/Users/avion/Documents/programming/accounting/tastyworks-pnl/tw-pnl.py", line 1145, in <module>
    main(sys.argv[1:])
  File "/Users/avion/Documents/programming/accounting/tastyworks-pnl/tw-pnl.py", line 1142, in main
    check(all_wk, output_summary, output_csv, output_excel, tax_output, show, verbose, debug)
  File "/Users/avion/Documents/programming/accounting/tastyworks-pnl/tw-pnl.py", line 767, in check
    check_tcode(tcode, tsubcode, description)
  File "/Users/avion/Documents/programming/accounting/tastyworks-pnl/tw-pnl.py", line 134, in check_tcode
    raise ValueError('Unknown Receive Deliver tsubcode: %s' % tsubcode)
ValueError: Unknown Receive Deliver tsubcode: Symbol Change```

For most problems you have to look into the source anyway. Still good to start for better error messages,
so I'll merge this in.
Thanks a lot for this patch,
Florian La Roche


Unprocessed Entities: Fix spacing for success message

Compare Failed & Pending messages:
castasdf.webm
This change fixes the broken spacing on "Failed Entities".
Signed-off-by: Gustaf Lundh<EMAIL_ADDRESS>Hey, I just made a Pull Request!

:heavy_check_mark: Checklist

[ x ] A changeset describing the change and affected packages. (more info)
[ x ] Added or updated documentation
[ x ] Screenshots attached (for UI changes)
[ x ] All your commits have a Signed-off-by line in the message. (more info)

Thanks :pray:


fix: restore target in create proposal

Pyth's withUpdateVoterWeightRecord needs to receive the address of the governance with createProposal, this is because it checks the max_voting_time field int he governance account.

makes sense


No zoom indicator

Not sure if you'd consider this a bug or an issue but I don't see a zoom icon in the status bar when expanding a pane to the entire window.
Command: prefix + z
Default tmux behavior: adds a *Z to status bar for the current window

Hello @kleinjm,
This is because prefix + z is bound to my own maximize window feature:

this feature predates stock maximize window feature
on the upside, you get a maximized window that you can further split
on the downside you lose the maximized flag

I'll have a loot at whether I can do something for it.

Hi!
I was looking for a solution to this, and I found that you can uncomment two lines in .tmux.conf.local to achieve that:

tmux_conf_theme_window_status_format='#I #W#{?window_bell_flag,🔔,}#{?window_zoomed_flag,🔍,}'
tmux_conf_theme_window_status_current_format='#I #W#{?window_zoomed_flag,🔍,}'

Alternatively, you can add #F to the format string, that's Tmux window flags like *Z (can be found in man tmux for reference, together with other variables that can be used).

That's exactly what I was looking for, thanks @rhcarvalho!


Reschedule client to another session

Some things to take note:

Command has been changed from "[c/CLIENT] [s/SESSION]" to "[INDEX] [s/SESSION]" which makes more sense.

1 issue which is that when the input session is higher than the total number of session, there's an exception on the terminal but nothing is being printed on FitEgo. The issue is with RescheduleCommand only having the [INDEX] which takes care of the problem when [INDEX] > total schedules, but in Parser, I'm not able to retrieve the filteredSessionList as it requires Model to retrieve it, so FitEgo can't detect the issue when input session is higher than total sessions.

Testing for this Reschedule is not fully up yet because there isn't a ScheduleCommandTestUtil class, not sure if this is required because now it's a bit tricky in a sense that Schedule contains Client and Session while RescheduleDescriptor contains clientIndex and sessionIndex of Index class. If RescheduleDescriptor were to contain Client and Session, it should be easier but in RescheduleCommandParser, similar to issue 2 above, I'm not able to retrieve the filteredSessionList as it requires Model to retrieve it.

Some things to take note:
1. Command has been changed from "[c/CLIENT] [s/SESSION]" to "[INDEX] [s/SESSION]" which makes more sense.

2. 1 issue which is that when the input session is higher than the total number of session, there's an exception on the terminal but nothing is being printed on FitEgo. The issue is with RescheduleCommand only having the [INDEX] which takes care of the problem when [INDEX] > total schedules, but in Parser, I'm not able to retrieve the filteredSessionList as it requires Model to retrieve it, so FitEgo can't detect the issue when input session is higher than total sessions.

3. Testing for this Reschedule is not fully up yet because there isn't a ScheduleCommandTestUtil class, not sure if this is required because now it's a bit tricky in a sense that Schedule contains Client and Session while RescheduleDescriptor contains clientIndex and sessionIndex of Index class. If RescheduleDescriptor were to contain Client and Session, it should be easier but in RescheduleCommandParser, similar to issue 2 above, I'm not able to retrieve the filteredSessionList as it requires Model to retrieve it.

try to detect the issue in command.execute() instead of parser?


How to use one calculation result of Scenario in different Scenario in different or same Feature in Karate API

Please, note that the below question is different than;
https://stackoverflow.com/questions/59970840/calling-a-scenario-in-another-feature-file-by-scenario-name
Please let me know how to use one scenario output or variable from another scenario in a different or same feature? Here is my code;
Please check the below code. I need to use the total's result in the second scenario.
Feature: CallFeatureData13.feature
@tag1
Scenario: Variables
* def age1 = 40
* def age2 = 20
* def total = age1 + age2
* print total
Scenario: From same feature
* def cFeature = call read('CallFeatureData13.feature/@tag1')
* def cResult = cFeature.total
* print cResult
  **It does not work.**

@bltemrah not supported: https://stackoverflow.com/a/46080568/143475

@bltemrah not supported: https://stackoverflow.com/a/46080568/143475


Ask Stanford GIS department about Arc geocoding access from outside the network

Ask folks at Stanford GIS center about access to the Stanford ArcGIS geocoding service from data processing pipelines that run outside the Stanford network. Is there a way to get a service account or somesuch?

@justinmayo I've reached out to GIS folks at Stanford. Waiting to hear back...

Never heard back on this. Closing for now.


Set lineHeight for the report action compose box to 25px

Details
For whatever reason, emojis have a line height of 25px, in contrast to the line-height of 20px that plain text has. This means that the check happening here thinks that we need two rows to display the emoji when we only actually need 1.
Fixed Issues
Fixes https://github.com/Expensify/Expensify.cash/issues/2490
Tests
Typed emojis into the report action compose box and verified that they displayed in the correct number of rows.
QA Steps

Navigate to any chat
Type emojis in the report action compose box. Verify that they display in the correct number of rows, aren't cutoff, and don't have any extra vertical space.

Tested On

[x] Web
[x] Mobile Web
[x] Desktop
[x] iOS
[x] Android

Screenshots
Web

Mobile Web

Desktop

iOS

Android

Hey Jasper - I don't think this is the correct approach for this. Can you show me an example of where we have a large paragraph of text? With this quick fix, we know compromise the text style and we'll have a mismatch between how text appears in the compose box versus how text appears as chat messages.
I know @stitesExpensify has been working on emoji-related items, and I think with this particular item we should address the emoji line height when we address making them larger as well. I think ideally the emoji objects get wrapped in something that specifically has a lineHeight of 20 so that it balances out with the rest of the text.

@shawnborton Looks like you're absolutely correct that there is a mismatch between the comments and the compose box, thanks for catching this! Do you mind linking the issue that @stitesExpensify is working on?

I think ideally the emoji objects get wrapped in something that specifically has a lineHeight of 20 so that it balances out with the rest of the text.

Although I agree this is the correct way to move forward with things, one problem is that our current implementation of the report action compose box uses a textarea internally. This means that we won't be able to render JSX inside of it. One option is to change up the implementation of the report action compose box to use a content-editable div, which functions the same as a textarea. The problem is, these aren't supported natively in React Native (only on React web), meaning we'll have either have to find a third-party implementation of one or write one up ourselves (which shouldn't be very difficult at all).
Personally, I think this is a valuable thing to spend time on in case we want to implement things like real-time markdown rendering and other special inline elements that wouldn't otherwise be possible with a plain textarea. What are your thoughts?

That said I don't think that using content-editable div is the way to go, we will definitely want a natively supported React Native component

After doing a good amount of research it doesn't seem like there are any React Native TextInputs (and any React Native community libraries) that support rendering JSX and HTML inside of them. Besides using the WebView, we'd have to develop our own content editable div natively, which poses a number of challenges but could potentially be cool to open source (since one doesn't seem to exist). What are your thoughts, and would you potentially be down to work on something like this in the near future?
@stitesExpensify

Looks like there's still some discussion going on here - I'm gonna be OOO for some of next week so gonna let @stitesExpensify take over reviewing this. If it's not merged when I'm back I'm happy to review!

@roryabraham Good catch! I just checked the link you sent me and it seems like lineHeight: 20 is already being applied there. If it looks good to you then I should be ready for another review, thanks!

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging in version: 1.0.33-1🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


Fix zooming in TextureRegion

Fixes #20710

Note for release managers: if this is cherry-picked, #27699 should be included too.

Cherry-picked for 3.1.1.


Release testing: Automated tests fail

#2359
As part of testing MacOS on Docker, I'm running the automated test suite from <wallaroo-install-path>/misc/example-tester.bash python. They fail quickly, with the following output:
(python-virtualenv) # wallaroo/misc/example-tester.bash python
/src/wallaroo/examples/python/alphabet /src
==================
Working on example in directory: /src/wallaroo/examples/python/alphabet/
==================
wallaroo/misc/example-tester.bash: line 10:  2610 Killed                  "$MY_TMP/shell${d}.bash" > "$MY_TMP/shell${d}.log" 2>&1

@rachelblasucci Sorry, I have to enhance the script to print out where the scripts and log files exist so they can be investigated when errors occur.  You should be able to find them in /tmp/wally-up-testing/examples/{LANG}/{EXAMPLE_APP}. The script is still rough and sometimes fails for no reason. I've found that if I look at the logs and there's not a real issue, rerunning usually results in a successful automated test.

@dipinhora No worries. THANK YOU for writing the scripts! I'm a little embarrassed to say I didn't try starting them again. They worked the second time. :D


ABOAT-1480 - User authentication for Neb 2

Added expires_in to token response as it is required for PHP library to refresh expired tokens
https://traderinteractive.atlassian.net/browse/ABOAT-1480

Closed. unnecessary change at this time.


[IZPACK-1242] Dynamic variable definitions with the same name and conditionid overwritten, although applying different filters for each of them

Fix for https://jira.codehaus.org/browse/IZPACK-1242:
Provided a definition like this:
    <variable name="db.name" value="${db.url}" checkonce="true" condition="NotInstall+haveDatabaseURL+useMssql">
      <filters>
        <regex regexp="jdbc:jtds:sqlserver://[^:]+:\d+.*;DatabaseName=([^;]*)" select="\1" />
      </filters>
    </variable>
    <variable name="db.name" value="${db.url}" checkonce="true" condition="NotInstall+haveDatabaseURL+useMssql">
      <filters>
        <regex regexp="jdbc:jtds:sqlserver://[^:]+:\d+/([^:;]+)" select="\1" />
      </filters>
    </variable>

currently the first of the above two definitions withing  is ignored. A warning comes up during compiling:
Variable definition 'db.name' will be overwritten.
The currently rule for uniqueness of a dynamic variable is bound to comparing just its name and conditionid.
This is not correct. Both definitions should apply. If one of them results in a null value the one providing a non-null value should provide the final value.

IzPack project » izpack #755 SUCCESS
This pull request looks good
(what's this?)


Crash

snippet.txt
The attached HTML snippet causes a crash
within MarkupNSAttributedStringVisitor#reduceBreaklineInResultNSAttributedString

NSMutableRLEArray replaceObjectsInRange:withObject:length:: Out of bounds

Probably the HTML is malformed, but ZMarkupParser should fail more gracefully.
Thanks!

will fix asap, thanks for your feedback

snippet.txt
The attached HTML snippet causes a crash
within MarkupNSAttributedStringVisitor#reduceBreaklineInResultNSAttributedString

NSMutableRLEArray replaceObjectsInRange:withObject:length:: Out of bounds

Probably the HTML is malformed, but ZMarkupParser should fail more gracefully.
Thanks!

Did it happen on iOS18?

I found the parser works weirdly on iOS18. 🤔

Yes I think so.

Thank you all for your feedback and assistance.

private extension NSAttributedString.Key {
    static let breaklinePlaceholder: NSAttributedString.Key = .init("breaklinePlaceholder")
    struct BreaklinePlaceholder: OptionSet {
        let rawValue: Int

        static let tagBoundaryPrefix = BreaklinePlaceholder(rawValue: 1)
        static let tagBoundarySuffix = BreaklinePlaceholder(rawValue: 2)
        static let breaklineTag = BreaklinePlaceholder(rawValue: 3)
    }
}

The root cause is that the custom NSAttributedString.Key requires an extension from Hashable. Otherwise, on iOS 18 and above, it will throw the following error:
Obj-C `-hash` invoked on a Swift value of type `(extension in ZMarkupParser):__C.NSAttributedStringKey.(unknown context at $10380bcc0).BreaklinePlaceholder` that is Equatable but not Hashable; this can lead to severe performance problems.

This leads to a subsequent crash:
*** Terminating app due to uncaught exception 'NSRangeException', reason: 'NSMutableRLEArray replaceObjectsInRange:withObject:length:: Out of bounds'
*** First throw call stack:

However, the expected behavior is to record each breakline position and merge them according to the rules.
If we simply extend the struct with BreaklinePlaceholder: OptionSet, Hashable, the system will automatically merge repeated BreaklinePlaceholder, which is not what we want.
Therefore, I changed it to use a class declaration for the placeholder to maintain the original merging logic.
I also adjusted the crash point in mutableAttributedString.enumerateAttribute(.breaklinePlaceholder, in: NSMakeRange(0, totalLength)), implementing a safer approach by first collecting the ranges and then performing the deletions.
For more details, please refer to this PR. #78

Thank you for fixing this crash!

the full story: https://en.zhgchg.li/posts/9e43897d99fc/


Required versions for python and pip

I have a working setup on a recent linux box (with python 3.8). But now I have to use an older computer (python 3.5, pip 8.1.1) and I run into trouble:
 Using cached https://files.pythonhosted.org/packages/f8/4d/a2.../larynx-0.3.1.tar.gz
 Complete output from command python setup.py egg_info:
 Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-sbulg1mn/larynx/setup.py", line 13
    long_description: str = ""
                    ^
 SyntaxError: invalid syntax

What are the minimum versions required by larynx at the moment?

python >= 3.7
About Pip I use 21.0.1

Python 3.7 is going to be the minimum (3.6 may work, but I've never tested it).
You can install Python 3.7 on your older machine like this:
apt-get update && \
apt-get install --yes --no-install-recommends \
    wget \
    build-essential \
    git zlib1g-dev patchelf rsync \
    libncursesw5-dev libreadline-gplv2-dev libssl-dev \
    libgdbm-dev libc6-dev libsqlite3-dev libbz2-dev libffi-dev

wget -O 'Python-3.7.10.tar.xz' 'https://www.python.org/ftp/python/3.7.10/Python-3.7.10.tar.xz'
tar -xf Python-3.7.10.tar.xz
cd Python-3.7.10/
./configure
make -j 4
sudo make altinstall

And then you can just run /usr/local/bin/python3.7

So, now I have larynx working on a Ubuntu 16.04 device (to be more precise: UBports / Ubuntu Touch on a smartphone! plus the locally installed Python 3.7. Great.

Ubuntu Touch on a smartphone!

Nice! I'd love to hear more about your experiences with Rhasspy/Larynx on Ubuntu Touch. This is not relevant for this issue, but if you can tell us more about it elsewhere, for instance on the Rhasspy forum, that would be awesome.

I came to larynx without knowing Rhasspy :-) I joined the forum now, but which category would fit? I will collect some experiences before posting. Feel free to remind me if I am too slow :-)

The "Show us" category maybe? I'm koan on the forum, by the way.


idle event should not continue to spread in pipeline any more

Make sure set the target branch to develop
What is the purpose of the change
Idle event should not continue to spread in pipeline any more ,because NO Handler will deal with this event any more.

Coverage decreased (-0.02%) to 51.846% when pulling f949709b4676f08b0334aa5355814bdf06e03373 on Spongecaptain:jwjFork into 9eae1d676b1533efcc2af636331816700bb1522e on apache:develop.

Codecov Report

Merging #2699 (f949709) into develop (39bb938) will decrease coverage by 0.57%.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             develop    #2699      +/-   ##
=============================================
- Coverage      46.13%   45.55%   -0.58%
+ Complexity      4337     3856     -481
=============================================
  Files            547      473      -74
  Lines          36236    32746    -3490
  Branches        4808     4383     -425
=============================================
- Hits           16719    14919    -1800
+ Misses         17443    15914    -1529
+ Partials        2074     1913     -161

Impacted Files
Coverage Δ
Complexity Δ

...org/apache/rocketmq/common/stats/StatsItemSet.java
43.28% <0.00%> (-8.96%)
17.00% <0.00%> (-3.00%)

...ketmq/client/impl/consumer/PullMessageService.java
71.11% <0.00%> (-4.45%)
8.00% <0.00%> (-1.00%)

...e/rocketmq/client/impl/consumer/RebalanceImpl.java
51.79% <0.00%> (-3.59%)
35.00% <0.00%> (-1.00%)

...mq/client/impl/consumer/RebalanceLitePullImpl.java
50.84% <0.00%> (-3.39%)
11.00% <0.00%> (ø%)

...org/apache/rocketmq/store/ha/WaitNotifyObject.java
82.69% <0.00%> (-1.93%)
11.00% <0.00%> (-1.00%)

...client/consumer/store/RemoteBrokerOffsetStore.java
67.56% <0.00%> (-1.81%)
20.00% <0.00%> (-2.00%)

...etmq/client/latency/LatencyFaultToleranceImpl.java
50.00% <0.00%> (-1.29%)
8.00% <0.00%> (ø%)

...org/apache/rocketmq/store/DefaultMessageStore.java
56.45% <0.00%> (-0.13%)
110.00% <0.00%> (+1.00%)
:arrow_down:

...main/java/org/apache/rocketmq/store/CommitLog.java
66.42% <0.00%> (-0.11%)
79.00% <0.00%> (ø%)

...moting/exception/RemotingSendRequestException.java

... and 83 more

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 39bb938...f949709. Read the comment docs.


V2 - Beta 4 - Rapid click on an alert button has no effects

Short description of the problem:
If an alert popup and you rapidly click on one of its buttons, you will see the button animation as if the click had worked but the events won't fire and it won't close
What behavior are you expecting?
Fire button events
Steps to reproduce:

Go to http://plnkr.co/edit/YsEs0pZyTSdpoBwvO81h?p=preview
Click the Thanks button
Rapidly click to yes or no, you will see the button animation, but nothing happens

Which Ionic Version?  2.x
Plunker that shows an example of your issue
http://plnkr.co/edit/YsEs0pZyTSdpoBwvO81h?p=preview

Hello! Thanks for opening this issue with us! I was able to confirm this issue and am looking more into it now.

@JumBay Hey, thanks for opening this issue with us. So after looking more into this and discussing with my teammates we have figured out that its due to the transition not being fully done yet until a few ms after the alert appears. If you immediately click a button in the alert when you first see the buttons (but the transition is not done yet) then no events will happen because the transition is still happening. The fix for this would involve cancelling the transition and then immediately reversing it before its even done which actually breaks more things in our NavController and causes more issues. Because of this i will be marking this as a wontfix for now and closing the issue. Please feel free to continue commenting though! Also thanks for using Ionic!

Ok I understand. Hope is gonna be fixed someday

@jgw96 ok, I get that the transition isn't finished.  But what about observing clicks in the region where the buttons will be during the ~300 ms before the animation finishes?


Update faq.md

updated links
update funding info
clarifications

Looks good, both pre- and post- edits :)


*: Added PoI v2

PoI v2
The new hash function comes with some bells and whistles...
Cryptographically strong
This is a cryptographically strong PoI suitable for on-chain rewards claims and bisecting.
Cyptographically strong in this context means:

No collisions. Given any schema (or any schema evolution makes backward-compatible changes) it should not be possible to find a collision for a valid value for those schema(s). This means that the bisect algorithm will always work. This also means that it's not possible to attest to some reward claim and also to a different database simultaneously.
No information leak. Given a hash, a schema, and some strict subset of fields for which values are known, it should be as hard for an attacker to derive the unknown values as brute-forcing the state space for those values. Furthermore, no subset of the unknown values can be derived. This is a weaker version of the following point...
No derived hashes. Given a hash, a schema, and some strict subset of fields for which values are known, an attacker cannot swap out a known value for another value and produce a valid hash of the whole set of values. This means that even though an attacker knows the indexer id being mixed in for an on-chain claim, they cannot re-move it and re-add their own indexer id and produce a correct hash of the data - even if they have the hash for the version with and without the indexer id.

Self-documenting
There is both an online and offline version of the PoI hash. The offline version exists in proof_of_indexing/reference.rs and serves as documentation for the hash, as well as a testament to the correctness of the online implementation. The question now of "what is this hash of" is simple to answer with the reference version - it's just the stable-hash of this struct containing all of the blocks, with each block containing all of the events for that block.
Massively parallel
For the most part (hand-wavy details about unordered sets omitted) every member of every vec, every single field, and all data which contributes to the hash can be added to the hash out of order - so long as you know where it belongs in the final product. This opens the door for adding parallelism in the future. This also means that beyond the normal facilities for backward compatible additions that stable-hash provides, it may be possible to do make not backwards compatible changes with a database migration that does not involve re-indexing because we can update hashes in-place mixing in new data in a non-linear fashion.
Fixed some stable hash impls
There was a pattern in some some enums to hash the discriminant using the provided sequence number, instead of a child sequence number. Indeed, this is a pattern that several implementations used (vec for example finishes with the count using the provided sequence number after calling next_child() n times). It turns out this is dangerous, because calls to next_child() modify the sequence number - meaning possibly fields couldn't be added to enum variants since this would mean in effect a different sequence number is passed to the discriminant breaking backwards compatibility. It also potentially complicates the online implementation since adding fields in one path (or members of a vec for instance) changes the sequence number in subtle ways that are not observed in every case) It turns out by luck that in none of the cases that were fixed the problem manifested in any meaningful way, but I didn't figure that out until after. Now these impls should be better examples of how to do this. Documentation is probably warranted on best practices for impl StableHash, but I'm behind schedule.
Fix for PoI beyond indexed block
PoI includes block hash, and returns None if the requested block is beyond the latest indexed block. Also, everything is in a transaction.
Other minor features / changes

Bytes derefs as [u8]
Moved some methods out of HostExports which did not make use of &self. For example, big_int_to_string does not need a host.
Added MaybeOwnedMut this goes in a separate repository maybe-owned which may be reviewed and merged eventually

@Jannis I believe I have addressed all of your comments. I also found that the indexer address was incorrectly specified as H256, instead of Address. Please update your review.

@That3Percent Great, thanks for the awesome comment about the sequence number traversal.
It looks like Travis isn't happy with the tests yet though.

It looks like Travis isn't happy with the tests yet though.
@Jannis Doh!. Fixed.


Update .openpublishing.redirection.json

Docs Build status updates of commit b35f649:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

.openpublishing.redirection.json
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching in the Docs contributor and Admin GuideSee the frequently asked questionsPost your question in the Docs support channel


Update Rust crate cfg-if to 0.1.0

This PR contains the following updates:

Package
Type
Update
Change

cfg-if
dependencies
patch
0.1.2 -> 0.1.0

Renovate configuration
:date: Schedule: At any time (no schedule defined).
:vertical_traffic_light: Automerge: Disabled by config. Please merge this manually once you are satisfied.
:recycle: Rebasing: Whenever PR becomes conflicted, or if you modify the PR title to begin with "rebase!".
:no_bell: Ignore: Close this PR and you won't be reminded about this update again.

[ ] If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

PR has been edited
:construction_worker: This PR has received other commits, so Renovate will stop updating it to avoid conflicts or other problems. If you wish to abandon your changes and have Renovate start over you may click the "rebase" checkbox in the PR body/description.


Max distance between same elements  in Python

🚀 Feature
(A clear and concise description of what the feature is.)
Have you read the Contributing Guidelines on Pull Requests?
yes
Motivation
(Please outline the motivation for the proposal.)
Pitch
(Please explain why this feature should be implemented and how it would be used.)

/assign


Dependency: switch to newer nuSOAP library

Hi, I'm maintainer of https://github.com/econea/nusoap package. I would appreciate if you could test this newer library in your wcmf.  I am trying to build one rock solid library providing nuSOAP.

Hi, thanks for your request. I'll have a look into it.


Hopeful metadata fixes.

I couldn't get WPSS working on my machine. If the test is showing no errors on yours, it should be good. We should maybe check again once we are ready to submit.


Mix task to lei analysis

Adds bulk loader from STDIN.

It's going to take some refactoring, and thought around how the bulk input comes in (e.g. STDIN versus file) to keep the coverage at the high level.

Have switched from using (untestable) STDIN and piping to (testable) file and path input to the bulk analyzer.

Overriding the dip in coverage which is mainly due to the fact that I can't find an Elixir package that has its source in Gitlab or Bitbucket.  Gentle reminder who the 800lbs gorilla in the source code repo space.


CLOUDP-242688: Investigate envelope encryption in driver

CLOUDP-242688
Includes:

testing out changes to pymongo to use new OP_ENCRYPTED opcode

QA:

manual test procedure:

setup local env using https://wiki.corp.mongodb.com/display/DRIVERS/Python+Onboarding
run pytest test/test_collection.py::TestCollection::test_insert_one to test insert_one command using OP_ENCRYPTED opcode

Output from pytest test/test_collections.py:
b'\r\x01\x00\x00V\xc5\x0b\xf8\x00\x00\x00\x00\xd4\x07\x00\x00\x00\x00\x00\x00admin.$cmd\x00\x00\x00\x00\x00\xff\xff\xff\xff\xe6\x00\x00\x00\x10ismaster\x00\x01\x00\x00\x00\x08helloOk\x00\x01\x03client\x00\xc1\x00\x00\x00\x03driver\x00/\x00\x00\x00\x02name\x00\x08\x00\x00\x00PyMongo\x00\x02version\x00\x0b\x00\x00\x004.7.0.dev0\x00\x00\x03os\x00[\x00\x00\x00\x02type\x00\x06\x00\x00\x00Linux\x00\x02name\x00\x06\x00\x00\x00Linux\x00\x02architecture\x00\x08\x00\x00\x00aarch64\x00\x02version\x00\x0f\x00\x00\x006.5.0-1016-aws\x00\x00\x02platform\x00\x18\x00\x00\x00CPython 3.10.12.final.0\x00\x00\x00'

Created a diff flame graph between the base architecture and the poc architecture during evergreen perf tests:

Benchmarking: (Run locally on remote workstation with the same server)
encrypted:
(tristan) tristan.wedderburn@ip-10-122-10-126:~/Development/mongo-python-driver$ FASTBENCH=1  TEST_PATH=specifications/source/benchmarking/data OUTPUT_FILE=result.txt python test/performance/perf_test.py  -v
runTest (__main__.TestDeepDecoding) ... Completed TestDeepDecoding 6.706 MB/s, MEDIAN=0.293s, total time=0.587s, iterations=2
ok
runTest (__main__.TestDeepEncoding) ... Completed TestDeepEncoding 10.917 MB/s, MEDIAN=0.180s, total time=0.362s, iterations=2
ok
runTest (__main__.TestFindManyAndEmptyCursor) ... Completed TestFindManyAndEmptyCursor 12.705 MB/s, MEDIAN=0.121s, total time=0.349s, iterations=2
ok
runTest (__main__.TestFindOneByID) ... Completed TestFindOneByID 2.599 MB/s, MEDIAN=0.589s, total time=1.281s, iterations=2
ok
runTest (__main__.TestFlatDecoding) ... Completed TestFlatDecoding 25.235 MB/s, MEDIAN=0.240s, total time=0.480s, iterations=2
ok
runTest (__main__.TestFlatEncoding) ... Completed TestFlatEncoding 39.576 MB/s, MEDIAN=0.153s, total time=0.306s, iterations=2
ok
runTest (__main__.TestFullDecoding) ... Completed TestFullDecoding 14.003 MB/s, MEDIAN=0.288s, total time=0.577s, iterations=2
ok
runTest (__main__.TestFullEncoding) ... Completed TestFullEncoding 21.608 MB/s, MEDIAN=0.186s, total time=0.374s, iterations=2
ok
runTest (__main__.TestGridFsDownload) ... Completed TestGridFsDownload 588.537 MB/s, MEDIAN=0.089s, total time=0.377s, iterations=2
ok
runTest (__main__.TestGridFsMultiFileDownload) ... Completed TestGridFsMultiFileDownload 1548.987 MB/s, MEDIAN=0.169s, total time=0.977s, iterations=2
ok
runTest (__main__.TestGridFsMultiFileUpload) ... Completed TestGridFsMultiFileUpload 804.400 MB/s, MEDIAN=0.326s, total time=0.861s, iterations=2
ok
runTest (__main__.TestGridFsUpload) ... Completed TestGridFsUpload 369.380 MB/s, MEDIAN=0.142s, total time=0.380s, iterations=2
ok
runTest (__main__.TestJsonDeepDecoding) ... Completed TestJsonDeepDecoding 46.040 MB/s, MEDIAN=0.043s, total time=0.129s, iterations=3
ok
runTest (__main__.TestJsonDeepEncoding) ... Completed TestJsonDeepEncoding 16.760 MB/s, MEDIAN=0.117s, total time=0.236s, iterations=2
ok
runTest (__main__.TestJsonFlatDecoding) ... Completed TestJsonFlatDecoding 54.158 MB/s, MEDIAN=0.112s, total time=0.225s, iterations=2
ok
runTest (__main__.TestJsonFlatEncoding) ... Completed TestJsonFlatEncoding 38.504 MB/s, MEDIAN=0.157s, total time=0.315s, iterations=2
ok
runTest (__main__.TestJsonFullDecoding) ... Completed TestJsonFullDecoding 18.266 MB/s, MEDIAN=0.220s, total time=0.443s, iterations=2
ok
runTest (__main__.TestJsonFullEncoding) ... Completed TestJsonFullEncoding 16.056 MB/s, MEDIAN=0.251s, total time=0.503s, iterations=2
ok
runTest (__main__.TestJsonMultiExport) ... Completed TestJsonMultiExport 28.063 MB/s, MEDIAN=20.133s, total time=49.717s, iterations=2
ok
runTest (__main__.TestJsonMultiImport) ... Completed TestJsonMultiImport 69.980 MB/s, MEDIAN=8.074s, total time=16.300s, iterations=2
ok
runTest (__main__.TestLargeDocBulkInsert) ... Completed TestLargeDocBulkInsert 20.001 MB/s, MEDIAN=1.250s, total time=2.776s, iterations=2
ok
runTest (__main__.TestLargeDocInsertOne) ... Completed TestLargeDocInsertOne 17.668 MB/s, MEDIAN=1.415s, total time=3.103s, iterations=2
ok
runTest (__main__.TestRunCommand) ... Completed TestRunCommand 0.015 MB/s, MEDIAN=0.840s, total time=1.818s, iterations=2
ok
runTest (__main__.TestSmallDocBulkInsert) ... Completed TestSmallDocBulkInsert 9.265 MB/s, MEDIAN=0.027s, total time=0.139s, iterations=3
ok
runTest (__main__.TestSmallDocInsertOne) ... Completed TestSmallDocInsertOne 0.317 MB/s, MEDIAN=0.788s, total time=2.167s, iterations=2
ok

----------------------------------------------------------------------
Ran 25 tests in 84.872s

OK

Unencrypted:
(tristan) tristan.wedderburn@ip-10-122-10-126:~/Development/mongo-python-driver$ FASTBENCH=1  TEST_PATH=specifications/source/benchmarking/data OUTPUT_FILE=result.txt python test/performance/perf_test.py  -v
runTest (__main__.TestDeepDecoding) ... Completed TestDeepDecoding 6.690 MB/s, MEDIAN=0.294s, total time=0.592s, iterations=2
ok
runTest (__main__.TestDeepEncoding) ... Completed TestDeepEncoding 10.806 MB/s, MEDIAN=0.182s, total time=0.365s, iterations=2
ok
runTest (__main__.TestFindManyAndEmptyCursor) ... Completed TestFindManyAndEmptyCursor 12.766 MB/s, MEDIAN=0.120s, total time=0.352s, iterations=2
ok
runTest (__main__.TestFindOneByID) ... Completed TestFindOneByID 2.596 MB/s, MEDIAN=0.590s, total time=1.284s, iterations=2
ok
runTest (__main__.TestFlatDecoding) ... Completed TestFlatDecoding 24.513 MB/s, MEDIAN=0.247s, total time=0.494s, iterations=2
ok
runTest (__main__.TestFlatEncoding) ... Completed TestFlatEncoding 40.016 MB/s, MEDIAN=0.151s, total time=0.303s, iterations=2
ok
runTest (__main__.TestFullDecoding) ... Completed TestFullDecoding 13.762 MB/s, MEDIAN=0.293s, total time=0.587s, iterations=2
ok
runTest (__main__.TestFullEncoding) ... Completed TestFullEncoding 21.734 MB/s, MEDIAN=0.185s, total time=0.372s, iterations=2
ok
runTest (__main__.TestGridFsDownload) ... Completed TestGridFsDownload 564.234 MB/s, MEDIAN=0.093s, total time=0.398s, iterations=2
ok
runTest (__main__.TestGridFsMultiFileDownload) ... Completed TestGridFsMultiFileDownload 1557.020 MB/s, MEDIAN=0.168s, total time=1.065s, iterations=2
ok
runTest (__main__.TestGridFsMultiFileUpload) ... Completed TestGridFsMultiFileUpload 609.905 MB/s, MEDIAN=0.430s, total time=0.865s, iterations=2
ok
runTest (__main__.TestGridFsUpload) ... Completed TestGridFsUpload 360.315 MB/s, MEDIAN=0.146s, total time=0.383s, iterations=2
ok
runTest (__main__.TestJsonDeepDecoding) ... Completed TestJsonDeepDecoding 46.409 MB/s, MEDIAN=0.042s, total time=0.128s, iterations=3
ok
runTest (__main__.TestJsonDeepEncoding) ... Completed TestJsonDeepEncoding 16.832 MB/s, MEDIAN=0.117s, total time=0.235s, iterations=2
ok
runTest (__main__.TestJsonFlatDecoding) ... Completed TestJsonFlatDecoding 54.267 MB/s, MEDIAN=0.111s, total time=0.224s, iterations=2
ok
runTest (__main__.TestJsonFlatEncoding) ... Completed TestJsonFlatEncoding 38.624 MB/s, MEDIAN=0.157s, total time=0.314s, iterations=2
ok
runTest (__main__.TestJsonFullDecoding) ... Completed TestJsonFullDecoding 18.250 MB/s, MEDIAN=0.221s, total time=0.444s, iterations=2
ok
runTest (__main__.TestJsonFullEncoding) ... Completed TestJsonFullEncoding 16.154 MB/s, MEDIAN=0.249s, total time=0.500s, iterations=2
ok
runTest (__main__.TestJsonMultiExport) ... Completed TestJsonMultiExport 30.249 MB/s, MEDIAN=18.678s, total time=45.906s, iterations=2
ok
runTest (__main__.TestJsonMultiImport) ... Completed TestJsonMultiImport 69.866 MB/s, MEDIAN=8.087s, total time=16.249s, iterations=2
ok
runTest (__main__.TestLargeDocBulkInsert) ... Completed TestLargeDocBulkInsert 19.698 MB/s, MEDIAN=1.269s, total time=2.807s, iterations=2
ok
runTest (__main__.TestLargeDocInsertOne) ... Completed TestLargeDocInsertOne 19.988 MB/s, MEDIAN=1.251s, total time=2.718s, iterations=2
ok
runTest (__main__.TestRunCommand) ... Completed TestRunCommand 0.040 MB/s, MEDIAN=0.326s, total time=0.667s, iterations=2
ok
runTest (__main__.TestSmallDocBulkInsert) ... Completed TestSmallDocBulkInsert 9.023 MB/s, MEDIAN=0.028s, total time=0.130s, iterations=2
ok
runTest (__main__.TestSmallDocInsertOne) ... Completed TestSmallDocInsertOne 0.578 MB/s, MEDIAN=0.432s, total time=0.922s, iterations=2
ok

----------------------------------------------------------------------
Ran 25 tests in 78.378s

OK


Jmxtrans agent on master

Ready to merge.
Known bugs:

Yarn RM QueueMetrics are missing
May cause host process (e.g. datanode or region server) to hang if carbon-relay on the receiving end is not able to consume the metrics fast enough. Jmxtrans has this issue as well.


tests: update case settings for twr_ke18f boards

disable MPU for cases exhaust MPU region on twr_ke18f
update ram size for benchmarks
Signed-off-by: Hake Huang<EMAIL_ADDRESS>

The KE1xF MPU region exhaustion is not limited to test cases. I submitted a few days back to address this issue in a more generic way: https://github.com/zephyrproject-rtos/zephyr/pull/31148

The KE1xF MPU region exhaustion is not limited to test cases. I submitted a few days back to address this issue in a more generic way: https://github.com/zephyrproject-rtos/zephyr/pull/31148


Cannot specify custom dbpath

Whenever I set the dbpath before running the recipes, mongodb fails launching. If I just run mongodb::default, /var/log/mongodb is empty. If I include the 10gen_repo beforehand, I get the log below.
However, everything works as expected if I leave in the default dbpath.
2015-07-24T14:15:39.048+0000 [initandlisten] MongoDB starting : pid=12300 port=27017 dbpath=/mongo/data 64-bit host=tst-mng-10gen
2015-07-24T14:15:39.051+0000 [initandlisten] db version v2.6.10
2015-07-24T14:15:39.051+0000 [initandlisten] git version: 5901dbfb49d16eaef6f2c2c50fba534d23ac7f6c
2015-07-24T14:15:39.051+0000 [initandlisten] build info: Linux build18.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2015-07-24T14:15:39.051+0000 [initandlisten] allocator: tcmalloc
2015-07-24T14:15:39.051+0000 [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "<IP_ADDRESS>", port: 27017 }, security: { authorization: "enabled" }, storage: { dbPath: "/mongo/data" }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongodb.log" } }
2015-07-24T14:15:39.055+0000 [initandlisten] exception in initAndListen: 10296

ERROR: dbpath (/mongo/data) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo

, terminating
2015-07-24T14:15:39.055+0000 [initandlisten] dbexit:
2015-07-24T14:15:39.055+0000 [initandlisten] shutdown: going to close listening sockets...
2015-07-24T14:15:39.055+0000 [initandlisten] shutdown: going to flush diaglog...
2015-07-24T14:15:39.055+0000 [initandlisten] shutdown: going to close sockets...
2015-07-24T14:15:39.055+0000 [initandlisten] shutdown: waiting for fs preallocator...
2015-07-24T14:15:39.055+0000 [initandlisten] shutdown: lock for final commit...
2015-07-24T14:15:39.055+0000 [initandlisten] shutdown: final commit...
2015-07-24T14:15:39.055+0000 [initandlisten] shutdown: closing all files...
2015-07-24T14:15:39.055+0000 [initandlisten] closeAllFiles() finished
2015-07-24T14:15:39.055+0000 [initandlisten] dbexit: really exiting now

If I don't include the 10gen repo, even the workaround (not specifying a dbpath) fails and the behavior remains the same (nothing in /var/log/mongodb although the folder exists)

Have you tried creating the required directory beforehand? Mongo seems pretty adamant that it isn't there.

Originally I didn't have this folder anywhere. Creating it beforehand didn't help either.

I run into the same case, and it's because the name of /etc/mongod.conf has been rename into /etc/mongodb.conf. But this conf file is not referenced in /etc/init.d/mongod nor in /etc/sysconfig/mongodb. The /etc/mongodb.conf is just not used.
Workaround:

rename the configuration file with default value: default[:mongodb][:dbconfig_file] = '/etc/mongod.conf'
Then you have to remove the existing file cause the recipe don't overwrite it due to the action 'action :create_if_missing'
To remove the file, you can add something like:

file node['mongodb']['dbconfig_file'] do
         action :delete
end

This cookbook is not very accurate in many things (see issues and many PR not included) and I wonder if we should continue to use as is. Nevertheless it is a very good start for building your own.

I have created a pull request to fix this. Waiting for its integration you can use the fork here: https://github.com/jmcollin78/mongodb-cookbook

the def takes in the dbpath param, but node['mongodb']['config']['mongod']['storage']['dbpath'] needs to supercede it if it is present
the dbpath will need to removed in the future

Merged in as part of https://github.com/sous-chefs/mongodb/pull/157


Unify variant types in API

Currently, requests for variants in a gene/region/transcript return "variant summaries" with a limited number of fields, while requests for a single variant returns "variant details" with all available information. This limits the usefulness of the API since, depending on the data wanted, a user may have to make a request for variants in a gene/region/transcript and then make one request for each variant in that list to retrieve all available information.
Instead, requests for variants in a gene/region/transcript should return what is now "variant details" so that additional requests are not required.
The obstacles to this are:

More space required in cache (likely not an issue).
Additional database queries made in variant details resolvers. Making one query per variant is not tenable when there may be tens of thousands of variants returned. Currently, queries in this category are:

Read data. SQLite query for reads in each of exome and genome samples.
gnomAD 2.1.1 colocated variants. For other datasets, these are stored on the variant records. But for gnomAD 2.1.1, they are determined on the fly.
Multi-nucleotide variants. Only implemented for gnomAD 2.1.1. This could be resolved by either fetching all MNVs for the gene/region/transcript and joining them to the variant results (similar to how the MNV flags are done now) or by adding an option to the top level MNV field to allow fetching MNVs by component SNV instead of only by the MNV's variant ID.

Note: this new type should also include a context-specific major_consequence object field so that the browser does not need to retrieve all transcript consequences for each variant.

Won't do for the time being. It's impractical to query and cache all the variant data for all variants in a gene/region/transcript. To do this, we'd first need some form of paging on the variants API. And before that, we'd have to redesign the gene/region/transcript pages (the current variants track requires data for every variant).


Projects: Move Viewport/SetViewport

At the moment DeviceContext has SetViewport, that should be moved to PipelineSettings

Did you mean Pipeline?

Hmm I was thinking viewport is defined during creation time, or is that one of those dynamic things like samplers/resources?

Well, technically the viewport is defined at creation time (at least in Vulkan) but I pretty much always set that as a dynamic state, since we want the window to be resizable we should make the Viewport a dynamic state too.

Good point, I forgor about resizing, will update the descrptiorn

Fixed


Mesosphere Kafka documentation

The Kafka documentation on Mesosphere docs are different than what is in GitHub, e.g. there are no broker update/remove commands in the CLI. I installed this package hoping to use the commands provided on Mesosphere docs but there is no support for commands like broker stop/update/remove. Is the support for those removed? Any reason why they were removed?
I installed '1.1.11-<IP_ADDRESS>' version Kafka package in DCOSv1.7, but when I check the version in dcos cli I have it as 0.1.0
$ dcos kafka --version
0.1.0

This is what I have for broker commands..
$ dcos kafka broker --help
usage: kafka broker <command> [<args> ...]

Kafka broker maintenance

Flags:
  -h, --help            Show context-sensitive help (also try --help-long and
                        --help-man).
      --version         Show application version.
  -v, --verbose         Enable extra logging of requests/responses
      --info            Show short description.
      --force-insecure  Allow unverified TLS certificates when querying service
      --custom-auth-token=DCOS_AUTH_TOKEN
                        Custom auth token to use when querying service
      --custom-dcos-url=DCOS_URI/DCOS_URL
                        Custom cluster URL to use when querying service
      --custom-cert-path=DCOS_CA_PATH/DCOS_CERT_PATH
                        Custom TLS CA certificate file to use when querying
                        service
      --name="kafka"    Name of the service instance to query

Subcommands:
  broker list
    Lists all running brokers in the service

  broker replace [<broker_id>]
    Replaces a single broker job, moving it to a different agent

  broker restart [<broker_id>]
    Restarts a single broker job, keeping it on the same agent

@sandeepdeva:  Thanks for catching that.  The documentation you link to is indeed massively out of date and incorrect.
@sascala:  Can you have a look at updating the linked docs?

@gabrielhartmann Will do. That was already on the list for today.

@sascala:  Is there more to do to close this Issue?

Not as far as I know.


wald_test

Sorry, I did not know where to place this issue of mine.  I have not found a solution online either.
The wald_test does not allow for brackets [ ] or semicolon :, which seems to be an issue when you use the formula operators like C( ) and interacting terms.  Below is a sample of the code.
fm = 'lwage ~ C(year)*educ + union + EntityEffects'
model2 = plm.PooledOLS.from_formula(formula=fm,data=df).fit(cov_type='clustered',debiased=True, cluster_entity=True)
null = "C(year)[T.1987]:educ = 0, C(year)[T.1986]:educ = 0"
model2.wald_test(formula=null)
FormulaSyntaxError: Unknown operator '['.
C(year)⧛[⧚T.1987]:educ
I have tried replacing C(year, Treatment(1987)):educ, C(year, Treatment(1987))*educ with no joy.  I have tested the similar syntax in statsmodels and it works fine with  [ ] and :.

Hi,
Can you provide me with a copy-pastable example that raises the issue?
Thanks,
Kevin

import linearmodels as plm
from linearmodels.datasets import wage_panel

df = wage_panel.load()
df = df.set_index(["nr","year"])
idx = df.index
df = df.reset_index()
df.index=idx
fm = 'lwage ~ C(year)*educ + union + EntityEffects'
model2 = plm.PooledOLS.from_formula(formula=fm,data=df).fit(cov_type='clustered',debiased=True, cluster_entity=True)

Kevin,
Below is the copy-paste code.
Python implementation: CPython
Python version       : 3.10.9
IPython version      : 8.10.0
Compiler    : MSC v.1916 64 bit (AMD64)
OS          : Windows
Release     : 10
Machine     : AMD64
Processor   : Intel64 Family 6 Model 154 Stepping 3, GenuineIntel
CPU cores   : 20
Architecture: 64bit
linearmodels: 4.31
import linearmodels as plm
from linearmodels.datasets import wage_panel
df = wage_panel.load()
df = df.set_index(["nr","year"])
idx = df.index
df = df.reset_index()
df.index=idx
fm = 'lwage ~ C(year)*educ + union + EntityEffects'
model2 = plm.PooledOLS.from_formula(formula=fm,data=df).fit(cov_type='clustered',debiased=True, cluster_entity=True)
null = 'C(year)[T.1984]:educ = 0'
model2.wald_test(formula=null)
FormulaSyntaxError: Unknown operator '['.
C(year)⧛[⧚T.1987]:educ
null = 'C(year,Treatment(1984)):educ = 0'
model2.wald_test(formula=null)
FormulaSyntaxError: Unknown operator ':'.
C(year,Treatment(1984))⧛:⧚educ = 0

I think you need to escale terms that are not valid Python, e.g.,
null = '`C(year,Treatment(1984)):educ` = 0'

Note the ticks around the entire variable name.  I'll need to check that this works, but it should.
Note: There was a recently fixed regression in formulaic that might affect escaping.  This should be fixed in the next release of formulaic.


java.io.IOException bad pathname

Using Windows 11 ( may not be relevant), getting a java.io.IOException
  <plugin>
    <groupId>com.github.blutorange</groupId>
    <artifactId>closure-compiler-maven-plugin</artifactId>
    <version>2.30.0</version>
	<configuration>
		<baseSourceDir>${basedir}/src/main/webapp</baseSourceDir>
	</configuration>
    <executions>
      <execution>
        <id>default-minify</id>
        <configuration>
		  <encoding>UTF-8</encoding>
          <sourceDir>scripts</sourceDir>
          <targetDir>scripts</targetDir>
          <skipMerge>false</skipMerge>
          <closureLanguageOut>ECMASCRIPT5</closureLanguageOut>
          <outputFilename>**/scripts/conxons.min.js</outputFilename>
          <includes>
				<include>close.js</include>
				<include>date.js</include>
		  </includes>
          <excludes><exclude>**/*.min.js</exclude></excludes>
        </configuration>
        <goals>
          <goal>minify</goal>
        </goals>
        <phase>generate-resources</phase>
      </execution>
    </executions>
  </plugin>

debug output when running
DEBUG] Adding source file [C:\Projects\Dev\Conxons\src\main\webapp\scripts\close.js].
[DEBUG] Adding source file [C:\Projects\Dev\Conxons\src\main\webapp\scripts\date.js].
[INFO] Starting JavaScript task:
[ERROR] Failed to process the source files [close.js, date.js].
java.io.IOException: Bad pathname
at java.base/java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.base/java.io.WinNTFileSystem.canonicalize(WinNTFileSystem.java:463)
at java.base/java.io.File.getCanonicalPath(File.java:626)
at com.github.blutorange.maven.plugin.closurecompiler.common.FileHelper.relativizePath(FileHelper.java:31)
at com.github.blutorange.maven.plugin.closurecompiler.common.FilenameInterpolator.interpolate(FilenameInterpolator.java:38)

Figured it out, i had a misconfiguration in the way I was making the merged .min.js file. It might be useful for a slightly more informative error message there, but not a big deal either way.

Thanks for reporting. Hmm, I'm not sure what exactly was bad about the pathname, but I guess I should at least include the pathname in the error message, to make it easier to debug.

Non-existant path, I was figuring out how to manipulate sourceDir and TargetDir parameters. I thought the issue was in the sourceDir and was going in circles on that until I went through the source in github for a few minutes and realized the error had to be coming from the target side.
Joe Alexander
Service Delivery Manager
Ross Group Inc
MemberzPlus Membership Management
Performance One Data Solutions
3400 Chapel Hill Rd, Suite 100, Douglasville, GA 30135
Mobile:<PHONE_NUMBER>
Direct:<PHONE_NUMBER>
Office:<PHONE_NUMBER> ext. 1233
Email<EMAIL_ADDRESS>[A picture containing qr code  Description automatically generated]http://www.performanceonedatasolutions.com/
[Text  Description automatically generated with medium confidence]http://www.memberzplus.com/
From: Andre Wachsmuth @.>
Sent: Monday, July 1, 2024 2:09 AM
To: blutorange/closure-compiler-maven-plugin @.>
Cc: Joe Alexander @.>; Author @.>
Subject: Re: [blutorange/closure-compiler-maven-plugin] java.io.IOException bad pathname (Issue #68)
CAUTION: This email originated from outside of the organization. Do not click links or open attachments unless you recognize the sender and know the content is safe.
Thanks for reporting. Hmm, I'm not sure what exactly was bad about the pathname, but I guess I should at least include the pathname in the error message, to make it easier to debug.
—
Reply to this email directly, view it on GitHubhttps://github.com/blutorange/closure-compiler-maven-plugin/issues/68#issuecomment-2199314337, or unsubscribehttps://github.com/notifications/unsubscribe-auth/BJQ73KROWOYQCHXYY6KWLCDZKDW7ZAVCNFSM6AAAAABKDHMCWCVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJZGMYTIMZTG4.
You are receiving this because you authored the thread.Message ID<EMAIL_ADDRESS>
The information contained in this email message is intended only for the private and confidential use of the recipient(s) named above, unless the sender expressly agrees otherwise. You are not permitted to forward this email or otherwise disseminate the information contained in this email without the consent of the sender. Ross Group Inc does not accept any responsibility for the loss, use or misuse of any information including confidential information, which is sent to us via email, or email attachment. If you are not the intended recipient, and/or you have received this email in error, you must take no action based on the information in this email and you are hereby notified that any dissemination, misuse or copying or disclosure of this communication is strictly prohibited. If you have received this communication in error, please notify us immediately by email and delete the original message.


Backups folder accessed every 5 minutes

Hi,
Thanks for the great add-on
In the Supervisor log I am seeing the add-on access the /backups folder multiple times every 5 minutes:
23-12-29 04:37:09 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:37:10 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:37:10 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:42:10 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:42:10 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:42:10 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:47:10 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:47:11 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:47:11 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:52:11 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:52:11 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:52:11 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:57:11 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:57:11 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 04:57:11 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 05:02:11 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 05:02:11 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
23-12-29 05:02:12 INFO (MainThread) [supervisor.api.middleware.security] /backups access from de91e161_hassio_onedrive_backup
My backups are only scheduled once per day
Is this normal behaviour?

Yes so the addon wakes up every 5 minutes to see if it has any work to do. To determine this, it is querying the existing backups from Home assistant.


connect-redis crash Sails if Redis is down and Redis password is configured

Sails version: 0.12.3
Node version: 6.3.0
NPM version: 4.0.5
Operating system: Windows 10 64 bit

Make sure your connect-redis is properly built and installed (if using Windows, you probably need the very most recent NPM: npm install npm@next -g, besides Windows build tools https://github.com/felixrieseberg/windows-build-tools )
Setup Redis server on a separate machine
Configure Redis server to require a password
Configure Sails sessions to use connect-redis; add the proper password value
Lift Sails
All works fine
Take Sails down
Take Redis server down
Lift Sails
Sails will lift, but after a while it will crash. Crash will happen if you try to browse your site too.
Error thrown:
node_modules\connect-redis\lib\connect-redis.js:95
          throw err;
          ^
 AbortError: Redis connection lost and command aborted. It might have been processed.

Go to the connect-redis.js at that line and you will see
if (options.pass) {
      this.client.auth(options.pass, function (err) {
        if (err) {
          throw err;
        }
      });
    }

Go back to your Sails configuration, remove the password key from the session configuration (pretend your Redis server doesn't require a password).
Keep your Redis server down.
Lift Sails.
Everything works. No crash. Of course, you can't say the sessions are being handled by Redis, but at least the server is not crashing.
Previous closed issue related to this issue:
https://github.com/balderdashy/sails/issues/2276

Ok, fixed!

@cburatto thanks for the detailed explanation!  @sgress454 and I noticed this too, specifically when the Redis server disconnected while Sails was still lifted.  There were also other cases related to lifting with various configuration, which I think is what you're running into here.  Both of them seem to be related to the connect-redis version.  Would you check what version you're using and paste it in here?  Would be good to have a frame of reference.
Regardless of the version, I believe we've got it sorted out on the master branch at this point via https://github.com/balderdashy/sails/blob/master/lib/hooks/session/ensure-redis-connection.js
^^ but that won't help you until Sails v1 is released.  So short term, let's take a look at your connect-redis dependency's version and try and get to the bottom of it that way.

Note: So the link's handy if it comes up, there was also a related change relatively recently to make the error message more useful: https://github.com/balderdashy/sails/commit/3f29dce22b5a36403108d8d1aab7a903aa4488a5

Hi
I am using<EMAIL_ADDRESS>Please note this is on Windows 10, built by node-gyp using https://github.com/felixrieseberg/windows-build-tools
Let me know if you need more information, thanks!

I've just tested it. In my case, after stopping sails, stopping redis server, and trying to lift (with a password set in sails) it just does not lift, it throws the error you mentioned.
Also, in the case of redis having a password set, but trying to start sails, it does not "crash" but if you run sails using connect-redis debug set, you actually see that AUTH is needed. Sails silently continues (but I think it should not).
The main issue with connect-redis is that it tries to run an auth method, in the contructor, and the error is thrown in the auth callback. When the auth callback is run, the sails session hook try catch block is no longer valid, thus, it just crashes the app. I managed to actually make it go through the sails error handling, but anyway, what would be the action expected? I would expect to crash anyway if redis is not available.
Just for you to try, this is my "modified" node_modules/sails/lib/hooks/session.js
/**
 * Module dependencies.
 */

var path = require('path');
var util = require('util');
var _ = require('lodash');

// generateSecret is used to generate a one-off session secret if one wasn't configured
var generateSecret = require('./generateSecret');

// (this dependency is just for creating new cookies)
var uid = require('uid-safe').sync;

// (these two dependencies are only here for sails.session.parseSessionIdFromCookie(),
//  which is only here to enable socket lifecycle callbacks)
var parseCookie = require('cookie').parse;
var stringifyCookie = require('cookie').serialize;
var unsignCookie = require('cookie-signature').unsign;
var signCookie = require('cookie-signature').sign;

module.exports = function (app) {

  var getSession = function (sessionId, errorMessage, cb) {
    app.config.session.store.get(sessionId, function (err, session) {
      if (err) return cb(err);
      if (!session) {
        return cb((function _createError() {
          var e = new Error(errorMessage);
          e.code = 'E_SESSION';
          return e;
        })());
      }
      return cb(null, session);
    });
  };
  // `session` hook definition
  var SessionHook = {

    defaults: {
      session: {
        adapter: 'memory',
        key: 'sails.sid'
      }
    },

    /**
     * Normalize and validate configuration for this hook.
     * Then fold any modifications back into `sails.config`
     */
    configure: function () {

      // Validate config
      // Ensure that secret is specified if a custom session store is used
      if (app.config.session) {
        if (!_.isObject(app.config.session)) {
          throw new Error('Invalid custom session store configuration!\n' +
            '\n' +
            'Basic usage ::\n' +
            '{ session: { adapter: "memory", secret: "someVerySecureString", /* ...if applicable: host, port, etc... */ } }' +
            '\n\nCustom usage ::\n' +
            '{ session: { store: { /* some custom connect session store instance */ }, secret: "someVerySecureString", /* ...custom settings.... */ } }'
          );
        }

      }

      // If session secret is undefined, set a secure, one-time use secret
      if (!app.config.session || !app.config.session.secret) {

        app.log.verbose('Session secret not defined-- automatically generating one for now...');

        if (app.config.environment === 'production') {
          app.log.warn('Session secret should be manually specified in production!');
          app.log.warn('Automatically generating one for now...');

          app.log.error('This generated session secret is NOT OK for production!');
          app.log.error('It will change each time the server starts and break multi-instance deployments.');
          app.log.blank();
          app.log.error('To set up a session secret, add or update it in `config/session.js`:');
          app.log.error('module.exports.session = { secret: "keyboardcat" }');
          app.log.blank();
        }

        app.config.session.secret = generateSecret();
      }

      // If secret _is_ defined, make sure it's a string
      else if (app.config.session.secret && !_.isString(app.config.session.secret)) {
        throw new Error('If provided, sails.config.session.secret should be a string.');
      }

      // Backwards-compatibility / shorthand notation
      // (allow mongo or redis session stores to be specified directly)
      if (app.config.session.adapter === 'redis') {
        app.config.session.adapter = 'connect-redis';
      }
      else if (app.config.session.adapter === 'mongo') {
        app.config.session.adapter = 'connect-mongo';
      }
    },

    /**
     * Create a connection to the configured session store
     * and keep it around
     *
     * @api private
     */
    initialize: function (cb) {
      var sessionConfig = app.config.session;
      var redisAuth = false;

      // Intepret session adapter config and "new up" a session store
      if (_.isObject(sessionConfig) && !_.isObject(sessionConfig.store)) {

        // Unless the session is explicitly disabled, require the appropriate adapter
        if (sessionConfig.adapter) {

          // 'memory' is a special case
          if (sessionConfig.adapter === 'memory') {
            var MemoryStore = require('express-session').MemoryStore;
            sessionConfig.store = new MemoryStore();
          }
          // Try and load the specified adapter from the local sails project,
          // or catch and return error:
          else {

            var COULD_NOT_REQUIRE_CONNECT_ADAPTER_ERR = function (adapter, e, onRequire) {
              var errMsg;
              if (e && typeof e === 'object' && e instanceof Error) {
                errMsg = e.stack;
              }
              else {
                errMsg = util.inspect(e);
              }

              var output = 'Could not load Connect session adapter :: ' + adapter + '\n';
              output += '\nError from adapter:\n' + errMsg + '\n\n';

              // If the error happened while attempting to require() the adapter, output some
              // (hopefully) helpful instructions on installing the adapter
              if (onRequire) {

                output += 'Do you have the Connect session adapter installed in this project?\n';
                output += 'Try running the following command in your project\'s root directory:\n';
                var installRecommendation = 'npm install ';
                installRecommendation += adapter;
                installRecommendation += '\n(Note: Make sure the version of the Connect adapter you install is compatible with Express 3/Sails v0.10)';
                installRecommendation += '\n';

                output += installRecommendation;
              }

              return output;
            };

            var SessionAdapter;
            try {
              // Attempt to initialize the adapter using the express-session module
              SessionAdapter = require(path.resolve(app.config.appPath, 'node_modules', sessionConfig.adapter));
              try {
                var CustomStore = SessionAdapter(require('express-session'));
                var auth = false;
                if (app.config.session.adapter === 'connect-redis' &&
                  app.config.session.hasOwnProperty('pass')) {
                  redisAuth = app.config.session.pass;
                  delete app.config.session.pass;
                }
                sessionConfig.store = new CustomStore(sessionConfig);
              } catch (e) {
                // If that fails, attempt to initialize the adapter using express
                // (required by older session adapters)
                try {
                  var CustomStore = SessionAdapter(require('express'));
                  sessionConfig.store = new CustomStore(sessionConfig);
                }
                catch (e2) {
                  // Failed attempting to initialize adapter; output a message w/ error info
                  // TODO: negotiate error and give better error msg depending on code
                  return cb(COULD_NOT_REQUIRE_CONNECT_ADAPTER_ERR(sessionConfig.adapter, e));
                }
              }
            } catch (e) {
              return cb(COULD_NOT_REQUIRE_CONNECT_ADAPTER_ERR(sessionConfig.adapter, e, true));
            }
          }
        }
      }

      // Expose hook as `sails.session`
      app.session = SessionHook;

      if (redisAuth) {
        return sessionConfig.store.client.auth(redisAuth, function (e) {
          if (e) {
            return cb(COULD_NOT_REQUIRE_CONNECT_ADAPTER_ERR(sessionConfig.adapter, e));
          }
          return cb();
        });
      }
      return cb();
    },

    /**
     * Generate a cookie to represent a new session.
     *
     * @return {String}
     * @api private
     */

    generateNewSidCookie: function () {
      var sid = uid(24);
      var signedSid = 's:' + signCookie(sid, app.config.session.secret);
      var cookie = stringifyCookie(app.config.session.key, signedSid, {});
      return cookie;
    },

    /**
     * Parse and unsign (i.e. decrypt) the provided cookie to get the session id.
     *
     * (adapted from code in the `express-session`)
     * (TODO: pull out into separate module as part of jshttp/pillarjs)
     *
     * @param  {String} cookie
     * @return {String}                [sessionId]
     *
     * @throws {Error} If cookie cannot be parsed or unsigned
     */
    parseSessionIdFromCookie: function (cookie) {

      // e.g. "lolcatparty"
      var sessionSecret = app.config.session.secret;

      // Parse cookie
      var parsedSidCookie = parseCookie(cookie)[app.config.session.key];

      if (typeof parsedSidCookie !== 'string') {
        throw (function createError() {
          var err = new Error('No sid cookie exists');
          err.status = 401;
          err.code = 'E_SESSION_PARSE_COOKIE';
          return err;
        })();
      }

      if (parsedSidCookie.substr(0, 2) !== 's:') {
        throw (function createError() {
          var err = new Error('Cookie unsigned');
          err.status = 401;
          err.code = 'E_SESSION_PARSE_COOKIE';
          return err;
        })();
      }

      // Unsign cookie
      var sessionId = unsignCookie(parsedSidCookie.slice(2), sessionSecret);

      if (sessionId === false) {
        throw (function createError() {
          var err = new Error('Cookie signature invalid');
          err.status = 401;
          err.code = 'E_SESSION_PARSE_COOKIE';
          return err;
        })();
      }

      return sessionId;
    },

    /**
     * @param {String} sessionId
     * @param {Function} cb
     *
     * @api private
     */
    get: function (sessionId, cb) {
      if (!_.isFunction(cb)) {
        throw new Error('Invalid usage :: `sails.hooks.session.get(sessionId, cb)`');
      }
      return getSession(sessionId, 'Session could not be loaded', cb);
    },

    /**
     * @param {String} sessionId
     * @param {} data
     * @param {Function} cb
     *
     * @api private
     */
    set: function (sessionId, data, cb) {
      if (!_.isFunction(cb)) {
        throw new Error('Invalid usage :: `sails.hooks.session.set(sessionId, data, cb)`');
      }
      return app.config.session.store.set(sessionId, data, function (err) {
        if (err) return cb(err);
        return getSession(sessionId, 'Session could not be saved', cb);
      });
    }
  };

  return SessionHook;
};

for reference, quoting https://www.joyent.com/node-js/production/design/errors#fn:1

People sometimes write code like this when they want to handle the asynchronous error by invoking the callback function and passing the error as an argument. But they make the mistake of thinking that if they throw it from their own callback (the function passed to doSomeAsynchronousOperation), then it can be caught in the catch block. That's not how try/catch work with asynchronous functions. Recall that the whole point of an asynchronous function is that it's invoked some time later, after myApiFunc returns. That means the try block has been exited. The callback is invoked directly by Node, with no try block around it. So if you use this anti-pattern, you'll end up crashing the program when you throw the error.

Thanks @luislobo!

but anyway, what would be the action expected? I would expect to crash anyway if redis is not available.

Well, during lift, I'd expect the lift to fail with the appropriate error msg (e.g. I'd expect the initialize callback to be invoked with an Error instance).
As for when this happens other times -- e.g. when attempting to access Redis fails at some random time during normal server operation -- that's more of a quandary.  @sgress454 added new configurable functions to allow for custom handling when that happens  (we ran into this during one of the big AWS downtime evens recently, for example)

And re:

The main issue with connect-redis is that it tries to run an auth method, in the contructor, and the error is thrown in the auth callback. When the auth callback is run, the sails session hook try catch block is no longer valid, thus, it just crashes the app.

Very true!  We shouldn't be doing this.  Throwing in an asynchronous callback or event handler is like throwing a baseball after the batter has walked away (you just end up smashing the catcher's face)

I wonder if the effect of a redis failure should really be to crash sails. Maybe only part of my app requires sessions, and I would like to keep it running in degraded mode. Redis becomes a single point of failure. Even some temporary internal network problem could drop sails.
Would there be a way to segment the apps into redis-dependent and non-dependent parts? Maybe in the routes configuration?

re: reconnectiong
In our case, for MongoDB we have implemented an ugly timeout that does a count on a collection, and checking DB connection. If we get some, a hook checks a "global" flag for "connected", returns 503 for all requests with a maintenance page. Besides that, the timer tries to reconnect "gracefully" using sails.hooks.orm.reload() in some kind of exponential way up to a limit

Even some temporary internal network problem could drop sails.
Would there be a way to segment the apps into redis-dependent and non-dependent parts? Maybe in the routes configuration?

@cburatto to be clear, this should only crash Sails during lift-- so in other words, it's like Sails failed to lift, except the error message isn't as good.
As for Redis failures crashing your app post-lift -- that should be 100% resolved, at least in Sails v1

is there a way to "disable" session for a route? like the way you can skipAssets... I just checked the docs, but didn't see one.

@luislobo the answer depends on sails version:
in sails v0.12.x
In Sails v0.12, you can use sails.config.session.routesDisabled.
in sails v1.x
As of Sails v1, you'll want to define a sails.config.session.isSessionDisabled function instead:

Example Sails v1 configuration

@mikermcneil Oh yeah, I have just forgotten about that config option! awesome.

It was tucked away, for sure!  And it was pretty tricky to use in 0.12 sometimes since you'd have to inject the skip assets regexp route yourself. The new one is a lot more powerful (and easier to copy/paste)

@mikermcneil yeah, I was checking just that. One thing that we are doing, is extending the routes config using with our own keys, for different stuff, like for example, setting up rbac stuff:
** DISCLAIMER: this is not official nor available in Sails, it's a custom hook used internally that handles that ***
'post /user': {
    controller: 'user',
    action: 'create',
    rbac: {
      'admin': {
        when: function (params, next) {
          return sails.hooks.rbac.canCreateUser(params, next);
        }
      }
    }
  },

** DISCLAIMER: this is not official nor available in Sails, it's a custom hook used internally that handles that ***
So, in Sails 1, if you add session:false to a route config, you can easily implement it:
// In `config/session.js`
isSessionDisabled: function (req){

  if (_.has(sails.config.routes, req.route.path)) {
    return _.get(sails.config.routes[req.route.path],'session',false);
  }

   // other validations here

  // Otherwise, don't disable sessions.
  return;

}

@luislobo interesting!  Bear in mind that any key you put on a route like that will automatically be merged into req.options, so you don't necessarily need a separate hook to implement what you're doing.  You can do this right now:
// In `config/session.js`
isSessionDisabled: function (req){

  if (req.options.useSession === false) {
    return false;
  }

   // other validations here

  // Otherwise, don't disable sessions.
  return;

}

@sgress454 Nice! I didn't know that, great. Now I can simplify our RBAC hook :P

Just to wrap this up, the newly-published machinepack-redis v1.3.0 correctly handles errors arising from an incorrect (or unsupplied) password upon attempting to connect to Redis, so both the sockets and session hooks in Sails should fail with an appropriate error in those cases (causing sails lift to fail as well).

(leaving open until Sails 1.0 is published)

+1 would love to see redis throw errors on lift if not connected.

@albertpeiro 👍  This is currently working in all recent releases of sails v1, so if you install sails@beta, and then try to do this, you'll see something like:

That's great news! A small but important improvement.
Thank you Mike
On Sat, 9 Dec 2017 at 10:00, Mike McNeil<EMAIL_ADDRESS>wrote:

@albertpeiro https://github.com/albertpeiro 👍 This is currently
working in all recent releases of sails v1, so if you install sails@beta,
and then try to do this, you'll see something like:
[image: image]
https://user-images.githubusercontent.com/618009/33794203-ef08dbfc-dc8c-11e7-8eff-a9dde9aa251e.png
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/balderdashy/sails/issues/3925#issuecomment-350433991,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AB5Hjc3_P9QmxP64tG1C6myMdyfjkN3tks5s-kw2gaJpZM4LJi32
.

--
Albert Peiró

🎉This was incorporated into the official 1.0 release.


updateApprovalState Updating All Rows in the Approval Table

When using Approval::find(3)->approve(). It's updating 1,2,3.

Hi,
Thanks for bringing this to my attention. I will look into it.

I've fixed the issues and will add a PR and release soon.

Issue fixed with release: v1.1.3


Fix Program Engagement Process Builder

Critical Changes
Changes
Now when the program has an earlier start date, and the stage is Active then the program engagement start date is autopopulated to 'Today'
Issues Closed
New Metadata
Deleted Metadata
Definition of Done
Refer to Asteroids DoD document to see any additional details for the items below
- [ ] Place holder data is incorporated (Refer to Case Management Sample Data document)
- [ ] Base axe-core JEST test included for any new LWC (No critical violations)
- [ ] CRUD/FLS is enforced in Apex
- [ ] Update & Test permission sets to account for new features and CRUD/FLS
- [ ] All modified classes are unit tested (Apex) at 100% coverage
- [ ] UX approval or UX not necessary

[x] PR contains draft release notes
[x] Attach work item to the pull request with Lurch **Lurch:attach W-000000 or **Lurch:add
[ ] All acceptance criteria have been met

[x] Developer
[ ] Code Reviewer
[ ] QA

[ ] QE story level testing completed

W-7844135


[CI] Use Cuda 10.1

Description
Address "Upgrade advisory: this mxnet has been built against cuda library version 9020, which is older than the oldest version tested by CI (10000).  Set MXNET_CUDA_LIB_CHECKING=0 to quiet this warning" on our CI.
Checklist
Essentials

[X] PR's title starts with a category (e.g. [BUGFIX], [MODEL], [TUTORIAL], [FEATURE], [DOC], etc)
[X] Changes are complete (i.e. I finished coding on this PR)
[X] All changes have test coverage
[X] Code is well-documented

Changes

[X] Use Cuda 10.1

Addressed by #842


Installation of Balena0S on Nvidia Orin NX stuck at the end

Hello,
I have installed BalenaOS successsfully in the past on a RaspberryPI and on a Jetson Xavier AGX.
Nonetheless, I am stuck with the flashing process on a Nvidia Orin NX. I have tried to follow the instructions at the letter. I am able to place the computer in recovery mode, to start and run the docker, the flashing process does not seem to show critical issue. Finally, the LED switches off after around 15 minutes. But when I switch my board off and on, I am still on the previous OS version, BalenaOS is not present. I tested on the Nvidia default dev kit and on another PC based on the orin NX module but I face the same issue on both
I really struggle to understand what is going on, since I cannot find a way to show the result of the flashing process from the USB to the Jetson QSPI memory.
Have anyone encountered the same problem and do you have any idea on how to get out of this? I thought that versions could be an issue but I am not sure.

Host PC: Ubuntu 22.04.4 LTS (6.5.0-35-generic)
Docker version 26.1.3, build b72abbb
Hardware: Nvidia Jetson Orin NX 16GB
BalenaOS: 5.3.10 (I cannot find on which L4T this is based)
Jetson-flash: on master branch

Thanks you!
flashing.log

Hi @acostach,
Thank you for the reply. Since, I also opened the same discussion on the Balena discourse, I suggest to continue it there: https://forums.balena.io/t/installation-of-balena0s-on-nvidia-orin-nx-stuck-at-the-end/370686
As mentioned there, the boards I tested are:

a ZED Box - Orin NX 16GB for Edge AI | Stereolabs 1
a Rugged Computer RPC RML A4NX (GMSL) 1, basically based on a Orin NX 16GB module. The flashing procedure in their user manual completely refers to the flashing img, dtb and procedure of the dev kit.

Alright, let's follow up in the forums then