Problem with CPU CPUFriendDataProvider and Geekbench score

If I use XiaoMi NoteBook Pro EFI v1.2.3 with v1.2.2 CPUFriendDataProvider.kext and CPUFriend.kext (released on 13 May) instead of 1.2.3 (or 1.2.4) versions, geekbench is fine with 16.500 score in geekbench.
Otherwise, if I use full clover folder (release 1.2.3 or 1.2.4), I just get 11.400 score in geekbench.
I think the updated release and CLOVER folder of @stevezhengshiqi has wrong CPUFriend kext, because I cant get good score. Anybody can check this?

Hi, I think it's a trade off between performance and power saving. If you prefer performance, you can try this CPUFriendDataProvider.kext. I set EPP at max performance level in this kext below. In the v1.2.2 EFI folder, the system doesn't enable HWP(SpeedShift) in Kabylake-R, resulting inefficient power management.
CPUFriendDataProvider.kext.zip

Thanks for your test again. I tested for several frequencyvectors and found that the incorrect minimum frequency value can result in low mark in Geekbench. I used to set the minimum frequency to 400mhz, which is too low. I will update CPUDataProvider by using default apple min frequency value (1300mhz) in the near future.

Hi there again! I've tried your new release, and my geekbench is 16.200 with EPP and min freq 0.8ghz . Pretty good. With the kext you provided here, (max performance), I ger 17.100 score; but min freq es 1.3ghz (drain more battery I think). Is this ok?

Yeah, the purpose of the driver provided here is to enable higher performance. If you want a min freq 0.8ghz version of the kext above, here it is.
CPUFriendDataProvider.kext.zip

The CPUFriendProvider.kext you give me now is different than the new release one? Or is the same?

You said "I ger 17.100 score; but min freq es 1.3ghz (drain more battery I think)". So I modify the min freq value of the kext in the 2nd floor to meet your requirement.

Oh! Great! Now I get it. What differences are now with this new kext (updated to has min freq 0.8h) and the latest release one? Just the performance? I mean, battery life should be the same with both kexts?

Certainly we can't get both good performance and long battery life. The kext, which utilizes more aggressive frequency vector, in this issue are for people who want better performance, and kexts in my latest release provide balance battery life and performance.

Ok, then I will keep in balance mode. I prefer to lose 1000 in geekbench and win battery life!! Thank you

1.6000是 i5 8250u跑的还是i7 8550u跑的? i5的话可以缩一下预算了

@chenjiangui i7跑的，多核分数i5会差一些，单核差不多。

好的, 谢谢.
预算缩不了了, 内存是板载的

Hello guys,
I have a little problem, I have Mi i7 16gb and I can choose in clover MBP 15,2 but I must choose MBP 14,1 because in 15,2 my Macos don't boot.
I have actually latest EFI folder from stevezhengshiqi and macOS 10.13.6
sorry for my English ;)
thanks for help :)

@sebmoris There's no advantage to choose MBP 15,2. If you want better power management, please use CPUFriendDataProvider above.
By the way, MBP15,2 only supports 10.13.6 17G2112 and above. 17G65 doesn't support.

@sebmoris There's no advantage to choose MBP 15,2. If you want better power management, please use CPUFriendDataProvider above.
By the way, MBP15,2 only supports 10.13.6 17G2112 and above. 17G65 doesn't support.

Thanks for help @stevezhengshiqi :)

thanks @stevezhengshiqi ,with CpuFriend above Mi book really work on 800Mhz :)
I have one question again ;)
I tried to use Turbo Boost Switicher, but this app can't off TB...
Do I need to unlock the bios, just like I had to unlock for intel XTU in windows?

I will update to higher build :) so my last question is not actually :)
thx for help :)

last question ;)
What do you recommend to install?
10.13.6 17G2208 macOS High Sierra or 18A389 macOS Mojave for better and more complete use of hardware in Xiaomi Mi Notebook Pro i7 8gen and 16gb ram ?

@stevezhengshiqi  I was able to install higher build of 10.13.6 and now I can choose in clover MBP 15,2 but trackpad don't work and is not detected
cpu and battery with your  CPUFriendDataProvider.kext on 800Mhz and disable bluetooth works fine :)
command :)

@sebmoris Congratulations. I still not recommend to choose MBP 15,2, the reason I have explained: there's no advantage to choose that.
For the trackpad issue, you can try to run sudo kextcache -i / and restart, as said in README.md - Installation.

everything works fine but in my opinion on 10.13.6 MBP 15,2 some times in micro seconds I have some delays, for example in changing beetween users profiles, on startup login when I click on logo user to write pass and after write pass have to wait to load all desktop. So I update do Mojave and check performance, if in Mojave I see same problem, then I would be back to MBP 14,1 on 17G65 :)

ok I will back to MBP 14,1 on 17G65 because on Mojave Beta Public on 15,2 or 14,1 in Geekbench results was same 16600-16720 points, so it confirms what you wrote about choose MBP 15,2, so I wait to official Mojave, but still not have solution to Turbo Boost Switcher because I can't off TB with this tool... any ideas ? :)

hi guys :)
can you send the CPUFriendDataProvider.kext file on which you obtained the result 17100 on Geekbench? because actually on macOS Mojave on MPB15,2 my best results 16700 is only on Cpufrienddataprovider 800Mhz, on the other files the results are worse... ;/ should I return to MBP14,1 and repeat tests ??

I repeat test on MBP 14,1 and results same
How did you make 17100pts ;) ?

The power management should be right but I wanna know if it's possible mod it. Because when the pc reach 92 degrees at 45 watts the pc throttling and go back at 15w with lower frequency.
At 59/60 degrees there is so much space to increase the performance of the pc and have high frequencies.
I ran some test with all 3 CPUFriendDataProvider.kext.
With the one for Battery, the CPU never reach 45w and stay all the time at 15w. So lower performance:

With the one for Performance, the CPU stays at 45w for 11sec and go back at 15 for all the time. It never goes high.

with the one for Balanced, the CPU need 14/15sec before it reaches 90 degrees and goes back at 15w:

Because it stays more time at 45w the CPUFriendDataProvider.kext for Balanced allow me to have a higher score in Cinebench than the one for Performance. This thing doesn't make any sense.
This CPU is made for stay at 15w but, because degrees are low, I wanna know if it's possible to let the CPU consume more watt and have high frequencies with more performance.
I think the problem here is because the pc cut down too much the watt for the CPU when it reaches 92 degrees. When it goes back at 15w and 60 degrees it should be able to increase again the wattage and frequencies.

@lorenzoangotzi  thanks so much for your test ;) I have same problem, we can not use the full power and frequency of the processor. next issue what I saw, its a better results on benchmarks with CPUFriendDataProvider.kext for better battery life than other files ;/

Any updates about my test? If you need I can make other tests.
I really hope that we can solve this problem

我也发现这个问题了, 黑苹果下睿频时间不超过15S, 顶多就跑个GB4, 编译项目的时候频率一直是2.4GHZ, TDP 15W, 性能非常差, 有什么办法可以在OSX解锁低压U的TDP(PL1)吗? Linux下有人开源了Python写的一个脚本解锁低压U的TDP: https://github.com/erpalma/lenovo-throttling-fix

Hi @lorenzoangotzi @daliansky @stevezhengshiqi I "fix" this problem using older version of CPUFriendDataProvider.kext it. Months ago I could fix similar problem with HWP and score using kext in version 1.2.2 of @daliansky folder.
Try this kext, you will get more score when using geekbench and low freq is 0,74 or so, so is like balance mode.
now @daliansky  can try what is wrong with 1.2.8 kext, because it doesnt reach max score.

@alexmenn There's nothing wrong in v1.2.8's CPUFriendDataProvider. You should check your settings. A complete replace of v1.2.8 release is necessary if you keep getting low score.
By the way, why are you keep @daliansky who is not responsible for the release after 1.0.0? He is busy so that I help him maintain this repository since April.

Hi @stevezhengshiqi You we're right. I copied full EFI folder but I don't know why, it didn't work. I downloaded it again, copy/paste, and now it works with good score. @lorenzoangotzi had the same problem, maybe he fixed it downloading again the EFI folder.
I thought you and daliansky were the same person. Sorry, I was wrong :)
Thank you for support! :)

Hi @lorenzoangotzi @daliansky @stevezhengshiqi I "fix" this problem using older version of CPUFriendDataProvider.kext it. Months ago I could fix similar problem with HWP and score using kext in version 1.2.2 of @daliansky folder.
Try this kext, you will get more score when using geekbench and low freq is 0,74 or so, so is like balance mode.
I know this kext does not use HWP, maybe @daliansky can fix the new kext with HWP and good score results :)
now @daliansky can try what is wrong with 1.2.8 kext, because it doesnt reach max score.

CPUFriendDataProvider.kext.zip

The problem happens when you are in a real work with CPU at 100% and 92 degrees.
The turbo boost doesn't work anymore and goes down to 15w, 60 degrees and 2.3 GHz.
In the synthetic benchmark, you never reach 92 degrees so the CPU is always able to go at 45w and higher frequencies.

@alexmenn Yes, on Windows I'm able to stay at 45w watt, higher frequencies and degrees with so much more performance.
I have tried everything on MacOS. Nothing works.

Ok I see, it's a pitty. @stevezhengshiqi do you know how to fix it? or you have the same problem?

I mean, that if @lorenzoangotzi can use tdp at 45w for minutes on windows, why we cant do the same on mac. Is mojave problem? or we will find the same tdp problem in HS? Maybe in windows he can use tdp more time because he uses intel software to unrestrict the tdp!

@stevezhengshiqi On windows I can able to stay up to 45w for much longer than 28s.
On MacOs the CPU doesn't stay at 45w for 28s, but it stays at maximum wattage until it reaches 92 degrees than it drops frequencies, wattage and degrees at 60c without never going up.
It's a bit a miss, because at 60c there is so much room for having higher performance.

CPUFriendDataProvider provided here for hwp is working only with smbios 14,1 ?
Cause I think 15,2 is closer to this laptop.

@Mateo1234454545 Hi, please read carefully the insturctions at the front. The CPUFriendDataProvider here are all exacted from MBP15,2.

Yes , i reat that.
But when using mbp15,2 (without cpufriend and dataprovider) lower cpu freq is 1.2 , not 0.8 as with 14,1 and cpufriend.

@Mateo1234454545 CPUFriend wil overwrite PM management of SMBIOS, so there's no point to change SMBIOS.
I used the native PM template from MBP15,2 and modified the minimum frequency(from 1300 to 800) to generate the CPUFriendDataProvider provided above. Without CPUFriend*, the minimum frequency will be 1300mhz in MBP14,1 and also in MBP15,2 because it is designed by Apple.
Yes, we have hwp when using SMBIOS MBP15,2 or CPUFriendDataProvider above.
If you want to check the HWP status, you can use AppleIntelInfo and view the log.
AppleIntelInfo.kext.zip

Terminal Saved Output.txt
How does it seem ?
Do I have proper cpu management ? Using smbios 15,2.

@Mateo1234454545 You can see IA32_PM_ENABLE...................(0x770) : 0x1 (HWP Supported and Enabled) and IA32_HWP_STATUS..................(0x777) : 0x0 in your log, which means HWP is opened successfully.

Great.
So , why do you prefer smbios 14,1 over 15,2 ? Is there any problem with 15,2 ?

@Mateo1234454545 Mainly there are three reasons.
Firstly, which I mentioned many times, CPUFriend* will overwrite the origin PM of SMBIOS, so choose 14,1 or 15,2 won't affect PM.
Secondly, accroding to info.plist in USBPorts, the USB configuration is model specific. Change in SMBIOS may cause unexpected USB error.
Thirdly, the EFI is purposely to support all system version from 10.13 to 10.14, and 10.13 can't boot with model MBP15,2.

@Mateo1234454545 Thank you for your help. If you use CPUFriendDataProvider in the top of this site, then your device is using MBP15,2’s battery management.

@stevezhengshiqi I have tried all the three CPUFriendDataProvider for the configuration with 14,1 and 15,2. Nothing change in the wattage use and there is the same drop of frequencies when reaches 92c degrees.
As you can see in my post of 29 Sept, the CPU doesn't stay at 45w for 28sec, but for 12sec with the kext for performance and 14sec for Balanced. This because it cut down everything every time at 92c.

@lorenzoangotzi I am only able to let macOS run MBP15,2's PM and modify minimum frequency, EPP, and maximum frequency. More specific modifications, like the temperature wall, are beyond my ability. We are using the native PM of MBP15,1 provided by Apple, so it may not fit for our CPU very well.
By the way, I can generate a CPUFriendDataProvider with the minimum frequency 3.2GHz if you want high frequency. Not sure whether it will cause system error or not.

Can you please make another one with min freq 1.2 and max freq 2.6 ? I think that would be nice for high temps and temp throttling.

@Mateo1234454545 Here it is.
CPUFriendDataProvider.kext.zip

Thanks , but not working. Max speed still 3.4
Is ot possible to have max speed at 3.4 when on power and 2.8 when on battery ?

@Mateo1234454545 It may be possible, but I don't know how.

@Mateo1234454545 Here it is.
CPUFriendDataProvider.kext.zip

Is it possible to give it another try ? I'm using smbios 15,2 if this matters.

我的cpu是i5 8265u，此处的三个CPUFriendDataProvider能用吗

@wsadaaa 可以的。

@stevezhengshiqi 请问我的电脑是Thinkpad E480 CPU是i5-8250U，请问可以用这个CPUFriendDataProvider吗？ 只需要把CPUFriend.kext和CPUFriendDataProvider.kext放到指定位置就可以了吗？还需要其他操作吗？

@aliyoge 首先要确保plugintype=1，X86PlugIn驱动未被修改。
推荐根据https://github.com/acidanthera/CPUFriend/blob/master/Instructions.md 来自己生成CPUFriendDataProvider


Unique constraint when creating a table.

Hi team,
I'd like to set unique constraints when creating a table. Could you add a column setting like the following code.
columns: [{
name: 'email',
dataType: 'text',
unique: true,
}]
Thanks.

@nonelove, I beleave this might be a duplicate of issue https://github.com/brianc/node-sql/issues/266. Could you install version 0.65.0 of node-sql and verify if 0.65.0 resolves your issue?
thanks

It works well. Thanks!


Change exit timeout to start ticking on a shutdown request, not at startup

The plugin lifetime in NuGet is managed by idleness.
That means after a certain period of time, NuGet will shutdown the plugin process.
When running in plugin mode, the plugin currently has a 2 min timeout, regardless of what happens.
See:
https://github.com/microsoft/artifacts-credprovider/blob/bea55735a710ede7460eee11f22f5700eac9c3f8/CredentialProvider.Microsoft/Program.cs#L225-L230
Large solution restores can sometimes last more than 2 minutes. In those cases, the plugin dies and reports an error to NuGet.
NuGet logs that error to stderr.
If NuGet needs the plugin for any other purpose throughout the lifetime of the operation, it will start another plugin process and do that successfully.
So the overall operation succeeds, as far as NuGet is concerned.
It's a common for tooling/CIs to rely on the stderr as a signal of any issues, see:
https://dev.azure.com/dnceng/internal/_build/results?buildId=405076
Windows Build UAP_x86_Release
That fails their whole build operation.
I think the action from the plugin side should be the following:

When in plugin mode, never shutdown the process due to idleness. Allow the nuget counterpart to do that.
The plugin infrastructure provides a way to monitor the process exit.
Take special care when logging errors that are unrelated to current requests.

//cc @jmyersmsft @dtivel @rrelyea
Note that all of the tests I have done contain 4 NuGet side fixes. If you were to take stock nuget(5.3 and older) + plugin you might not experience this.
Related fixes:

NuGet internally cancelling prematurely. (5.3.1) https://github.com/NuGet/Home/issues/8648
Logging failures triggering plugin shut down. (5.3.1) https://github.com/NuGet/Home/issues/8688
Propagated exception at dispose time fails the whole auth with a task cancellation error. (5.4) https://github.com/NuGet/Home/issues/8732
Plugin logging accuracy improvement (5.4) https://github.com/NuGet/Home/issues/8747

Related issue: https://github.com/NuGet/Home/issues/8528

I don't think I wrote the offending line originally, so I don't know the original intent, but I think the right behavior is to make it a shutdown timeout, not an overall operation timeout

make it a shutdown timeout,

Can you please elaborate?

A timeout for the plugin to finish shutting down once a shutdown request has been received

@jmyersmsft
The PR didn't autoclose this issue because the fixes part wasn't in the body of the issue.
Closing as it seems like you don't add milestone labels, so it's not necessary to be done from your side.


Converting all AD user properties fails

This was originally reported in Issue #13
I can run
get-aduser artd | ConvertTo-MySQLiteDB -Path .\art.db -TableName user -TypeName aduser

with no errors. But it fails when using all user properties.
get-aduser artd -Properties * | ConvertTo-MySQLiteDB -Path .\art2.db -TableName user -TypeName aduser

Exception calling "ExecuteNonQuery" with "0" argument(s): "SQL logic error
near "-": syntax error"
At C:\Program Files\WindowsPowerShell\Modules\mySQLite\0.9.2\functions\New-MySQLiteDBTable.ps1:119 char:21
+                     [void]$cmd.ExecuteNonQuery()
+                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SQLiteException

The database gets created but not the table.
I did a quick test and get the same error with groups but here I get it even with the default output.
PS C:\> get-adgroup sales | ConvertTo-MySQLiteDB -Path .\salesgroup.db -TableName group -force
Exception calling "ExecuteNonQuery" with "0" argument(s): "SQL logic error
near "group": syntax error"
At C:\Program Files\WindowsPowerShell\Modules\mySQLite\0.9.2\functions\New-MySQLiteDBTable.ps1:119 char:21
+                     [void]$cmd.ExecuteNonQuery()
+                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SQLiteException

Exception calling "ExecuteNonQuery" with "0" argument(s): "SQL logic error
near "group": syntax error"
At C:\Program Files\WindowsPowerShell\Modules\mySQLite\0.9.2\functions\Invoke-MySQLiteQuery.ps1:95 char:25
+                         [void]$cmd.ExecuteNonQuery()
+                         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : SQLiteException

It looks like some AD Group property is failing to properly serialize.

The ADGroup example failed because group looks like a SQLite key word. Using a different table name solved the problem.
get-adgroup sales -server dom1  | ConvertTo-MySQLiteDB d:\temp\sales2.db  -TableName grp

But there may be an issue with property names that have dashes like msDS-User-Account-Control-Computed.
This works:
Get-ADUser artd -server dom1 -Properties Title,Description,Givenname,surname,Whencreated,WhenChanged,SAMAccountType,UserAccountControl,UserPrincipalName,lastlogon,lastlogondate,NTSecurityDescriptor,MemberOf | ConvertTo-MySQLiteDB d:\temp\art13.db  -TableName user -primary samaccountname  -force

But not when adding the dashed property.
Get-ADUser artd -server dom1 -Properties Title,Description,Givenname,surname,Whencreated,WhenChanged,SAMAccountType,UserAccountControl,UserPrincipalName,lastlogon,lastlogondate,NTSecurityDescriptor,MemberOf,msDS-User-Account-Control-Computed | ConvertTo-MySQLiteDB d:\temp\art33.db  -TableName user -primary samaccountname  -force

Then I get the logic error. And because I'm using database transactions that causes another problem.

I'm learning more about databases all the time. Apparently, a hyphen is not allowed as a column name. I will need to detect it and modify the SQL query to insert it as [msDS-User-Account-Control-Computed].

This appears to  be fixe with the release of v0.10.0


complete support

Currently, if the input doesn't end with "\n", the parser fails. It shouldn't.

Fixed by #4


fix: FluentDataGrid throws dbContext exception when used with EF Core

🐛 Bug Report
I setup the FluentDataGrid to use EF Core dbContext like in the examples and it loads and displays the data fine, but the problem occurs when I click on sorting the column twice or fast consecutively. It then executes multiple operations on dbContext and breaks with the exception below.

💻 Repro or Code Sample
@page "/users"
@rendermode InteractiveServer

@using PovratneTure.Data
@inject ApplicationDbContext DbContext

Users

<FluentDataGrid<EMAIL_ADDRESS>    <PropertyColumn Property="@(u => u.Email)" Sortable="true" />
    <PropertyColumn Property="@(u => u.UserName)" Sortable="true" />
</FluentDataGrid>

🤔 Expected Behavior

😯 Current Behavior

💁 Possible Solution
I tried experimenting with setting different ServiceLifetime options when registering dbContext, but non of them affected this problem, it occurred on all options.
var connectionString = builder.Configuration.GetConnectionString("DefaultConnection") ?? throw new InvalidOperationException("Connection string 'DefaultConnection' not found.");
builder.Services.AddDbContext<ApplicationDbContext>(options =>
    options.UseMySql(connectionString, ServerVersion.AutoDetect(connectionString)),
    ServiceLifetime.Transient
);

🔦 Context
I tried this with QuickGrids, but there this problem is not present, so I'm concluding it's regarding this library.

🌍 Your Environment

OS & Device: [e.g. MacOS, iOS, Windows, Linux] on [iPhone 7, PC]
Browser [e.g. Microsoft Edge, Google Chrome, Apple Safari, Mozilla FireFox]
.NET and FAST Version [e.g. 1.8.0]

@cduluCNB Yes I did and I registered it in builder.services. Generally the datagrid works, it loads the data and displays it, it sorts, that's all ok, but if I double click sort (call it two times quickly), it then throws this exception as it executes two queries on the same dbContext. I assume this would also happen if I paginate quickly, but I'll have to add more data in table to test that.
Here is the project if you need it for testing. It's almost plain template.
PovratneTure.zip

Hi @vukasinpetrovic,
I have not worked with EF in a looong time. Can you supply some instructions on how to get the zipped project to work. I do not fancy to install MySQL. Can it run on mssql localdb?

@vnbaaij It should run fine with mssql. There are three things that you should do to make it work.

Change line 29 in Program.cs to:

builder.Services.AddDbContextFactory<ApplicationDbContext>(options =>
    options.UseSqlServer(connectionString)
);

Adjust connection string in appsettings.json to something like:

"DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=YourTestDatabaseName;Trusted_Connection=True;MultipleActiveResultSets=true"

Run command dotnet ef database update to execute migrations

2.5. Change a buch of data types in the ..._initial.cs because MSSQL does not recognize MySQL type
3. As above
4.

Sorry, but this takes too much time to get to the actual issue. Can you supply a ready-to-run repo/zip?

Ahh, sorry. Delete the Migration folder and run these two commands to generate new migrations:
dotnet ef migrations add Init this one generates new migration
dotnet ef database update this one executes them to database
In the meantime, I'll additionally provide you with a ready-to-run zip. I'll try to do it in next 15 minutes.

No rush, It is bed time over here so won't look at it for the next couple of hours

PovratneTure-MSSQL.zip

Ok, got it working. Added 2 users and then went to Users page and sorted colums as quickly as I could. No errors whatsoever...

Nt sure how we can help you further with this

@vnbaaij Hmm, is it possible that it's because of MySQL and it's provider library (Pomelo)?

Thank you for taking time to test this. I'll try to investigate deeper on why is it happening with MySQL only. I tried it quickly with SQLite and it's ok there, so this must be MySQL only problem.


FEAT: add jina embedding model jina-embeddings-v2-base-zh

Is your feature request related to a problem? Please describe
Add jina embedding model jina-embeddings-v2-base-zh.

About how to implement this, can refer to: https://github.com/xorbitsai/inference/pull/704/files
The json file is the crucial part.


Use relative submodule paths

This allows easier cloning from mirrored repos and through other protocols (ssh)

Tested locally that this worked.

Tested locally that this worked.


Created a separate make target to install latest golinter version

so that make lint can run offline. Additionally, renamed code-formatting CircleCI job to lint.

LGTM :) Even better solution would be to wrap it in a shell script and do something similar to what we do here https://github.com/dcos/metronome/blob/master/ci/si_install_deps.sh#L19

How does this sentence start with "Event better solutoin" and ends with "shell script"? 😆

LGTM :) Even better solution would be to wrap it in a shell script and do something similar to what we do here https://github.com/dcos/metronome/blob/master/ci/si_install_deps.sh#L19

How does this sentence start with "Even better solution" and ends with "shell script"? 😆

You can choose another technology/language 😝

Try this:
.PHONY: lint
lint:
ifeq (, $(shell which golangci-lint))
	go get github.com/golangci/golangci-lint/cmd/golangci-lint
endif
	golangci-lint run

And it would be great if we could pin the version of golangci-lint, e.g., add
GOLANGCILINT_VERSION ?= "v1.21.0"

at the beginning of Makefile and later
	go get github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCILINT_VERSION)

And it would be great if we could pin the version of golangci-lint, e.g., add

As discussed offline, we want to keep it up-to-date and should any discrepancies between local and CI environment occur, we can revisit this.


v4l2: v4l2loopback hangs on disconnect

Hi,
While using baresip for a while I came across the issue that the baresip process does not re-register itself regularly to the PBX, from the moment it gets a "connection reset by peer" error. Below is the log file :+1:
Nov  4 10:44:22 twoc baresip[26839]: Set video encoder: H264 packetization-mode=0 (1024 bit/s, 15 fps)
Nov  4 10:44:22 twoc baresip[26839]: video: no video display
Nov  4 10:44:22 twoc baresip[26839]: v4l2: /dev/video6: found valid V4L2 device (640 x 480) pixfmt=YU12
Nov  4 10:44:22 twoc baresip[26839]: v4l2: Current input: "loopback"
Nov  4 10:44:22 twoc baresip[26839]: Set video decoder: H264 packetization-mode=0
Nov  4 10:44:22 twoc baresip[26839]<EMAIL_ADDRESS>Call established<EMAIL_ADDRESS>Nov  4 10:44:24 twoc baresip[26839]: video: H264 decode error (seq=47362, 3 bytes): Bad message
Nov  4 10:44:24 twoc baresip[26839]<EMAIL_ADDRESS>session closed: Connection reset by peer
-> So after this, the baresip process still runs, but does not register itself to the PBX anymore :
ps -ax | grep 26839
26839 ?        Sl     0:04 baresip -f /etc/baresip/ext7017
Currently I'm using baresip v0.5.0.
Has this issue been fixed in the current version of baresip?
I'm using baresip for streaming the video of bare IP camera's. The video stream is hereby captured from the IP cam using ffmpeg and deliverd to a v4l loopback device (e.g. /dev/video1). During a call to baresip, it auto-answers the call and shows the camera stream within the call using H.264 SIP video.
Kind regards,
Bart.

Hi @bboelaert
many thanks for your report.
This sounds a bit strange.

What OS/Hardware are you using.

Try to set a low register interval when the regint parameter (e.g. regint=120)

Can you dump the timers with the /timers command ?

Alfred

Hi Alfred,

OS = Debian Linux, running in VMWare VM. Below is the output of uname -a
Linux twoc 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u2 (2016-10-19) x86_64 GNU/Linux
Multiple baresip instances are running on the same system, all with their own config + SIP extension
PBX = Asterisk 1.8.15-cert7 (= hosted on the same physical server, but different VM). Asterisk regularly monitors the SIP peers  (qualify=yes)
Name/username              Host                                    Dyn Forcerport ACL Port     Status
7011/7011-0x1199890        <IP_ADDRESS>                             D                 39702    OK (1 ms)
Whats the default register interval?
Does adding the /timers continuously dumps the timers to log file?

Kind regards,
Bart.

Try to set the register interval to a know value, for example 600 seconds
<sip:user@domain.com>;regint=600

then after starting baresip use the /timers command to show the active timers:
/timers
Timers (4):
  0x7ff1a4c26950: th=0x10c18ed40 expire=250ms
  0x7ff1a4f007f8: th=0x10bdc5320 expire=56339ms
  0x7ff1a4c2e8a8: th=0x10be77bb0 expire=536582ms
  0x7ff1a4f072f0: th=0x10be71110 expire=896582ms

(if you repeat the command, you will see that "expires" is decrementing)
Then, after your "Connection reset by peer" error, dump the timers again.
The SIP register client is independent so there is no reason that it should
stop after your SIP session is closed. Perhaps something happened with
the timer system.
Also, can you please include the baresip config here ?
Alfred

hi @bboelaert
Did you have the chance to test what I suggested to you ?

Hi Alfred,
Sorry for the delay!
Below are the timers just after startup
baresip v0.5.6 Copyright (C) 2010 - 2017 Alfred E. Heggestad et al.
Local network address:  IPv4=eth0:<IP_ADDRESS>
aucodec: PCMU/8000/1
aucodec: PCMA/8000/1
aufilt: vumeter
vidsrc: v4l2
vidcodec: H264
vidcodec: H263
vidcodec: MP4V-ES
medianat: stun
medianat: turn
medianat: ice
Populated 1 account
Populated 0 contacts
Populated 2 audio codecs
Populated 1 audio filter
Populated 3 video codecs
Populated 0 video filters
baresip is ready.
<EMAIL_ADDRESS>{0/UDP/v4} 200 OK (VoIP PBX) [1 binding]
All 1 useragent registered successfully! (1 ms)
/timers
Timers (4):
0x6b26d0: th=0x7fcdf0a2ce70 expire=250ms
0x6d6820: th=0x7fcdf1b3ff60 expire=1370ms
0x6ac258: th=0x415820 expire=29356ms
0x6c6728: th=0x7fcdf1b45fc0 expire=509370ms
Then after the call I see this on the console
h264 @ 0x6dd5a0] Cannot use next picture in error concealment
[h264 @ 0x6dd5a0] concealing 86 DC, 86 AC, 86 MV errors in P frame
[h264 @ 0x6dd5a0] Frame num change from 39 to 40/s) efps=20/11                  [=======         ]
[h264 @ 0x6dd5a0] decode_slice_header error
[h264 @ 0x6dd5a0] Cannot use next picture in error concealment
[h264 @ 0x6dd5a0] concealing 86 DC, 86 AC, 86 MV errors in P frame
<EMAIL_ADDRESS>session closed: Connection reset by peer                 [===========     ]
sip:7016-0x6c5fd0@<IP_ADDRESS>:45200: Call with<EMAIL_ADDRESS>terminated (duration: 30 secs)
/timers
Timers (4):
0x6b26d0: th=0x7fcdf0a2ce70 expire=250ms
0x6ac258: th=0x415820 expire=9646ms
0x76ce10: th=0x7fcdf1b3ff60 expire=16854ms
0x6c6728: th=0x7fcdf1b45fc0 expire=369645ms
/timers
Timers (4):
0x6b26d0: th=0x7fcdf0a2ce70 expire=250ms
0x6ac258: th=0x415820 expire=5608ms
0x76ce10: th=0x7fcdf1b3ff60 expire=12816ms
0x6c6728: th=0x7fcdf1b45fc0 expire=365607ms
/timers
Timers (4):
0x6b26d0: th=0x7fcdf0a2ce70 expire=250ms
0x6ac258: th=0x415820 expire=3309ms
0x76ce10: th=0x7fcdf1b3ff60 expire=10517ms
0x6c6728: th=0x7fcdf1b45fc0 expire=363308ms
/timers
Timers (4):
0x6b26d0: th=0x7fcdf0a2ce70 expire=250ms
0x6df910: th=0x7fcdf1b3ff60 expire=20809ms
0x6ac258: th=0x415820 expire=48809ms
0x6c6728: th=0x7fcdf1b45fc0 expire=348808ms
/timers
Timers (4):
0x6b26d0: th=0x7fcdf0a2ce70 expire=250ms
0x6df910: th=0x7fcdf1b3ff60 expire=5601ms
0x6ac258: th=0x415820 expire=33601ms
0x6c6728: th=0x7fcdf1b45fc0 expire=333600ms
/timers
Timers (3):
0x6b26d0: th=0x7fcdf0a2ce70 expire=250ms
0x6ac258: th=0x415820 expire=5107ms
0x6c6728: th=0x7fcdf1b45fc0 expire=305106ms
reg<EMAIL_ADDRESS>401 Unauthorized (VoIP PBX)
<EMAIL_ADDRESS>{0/UDP/v4} 200 OK (VoIP PBX) [1 binding]
/timers
Timers (3):
0x6b26d0: th=0x7fcdf0a2ce70 expire=250ms
0x6ac258: th=0x415820 expire=43933ms
0x6c6728: th=0x7fcdf1b45fc0 expire=382285ms
As you can see I upgraded to barsip v0.5.6 now, hoping that it would eliminate the issue. But after a couple of days after start-up I notice that Asterisk can't reach baresip anymore (Asterisk continuously polls the SIP client via SIP notify).
This is pretty annoying, as I'm running 15 baresip process in background in a production environment, in order to show the RTSP streams of pure IP CAMs via a video 4 linux loopback device (e.g. /dev/video1).
Another question : During the call it takes a couple of seconds before I receive video on the peer. Before that I see a lot of H.264 decoding errors on the baresip console.  Is there any way I can prevent this. For your information : this is the ffmpeg command I use to output an RTSP stream to a V4L loopback device :+1:
ffmpeg -hide_banner -rtsp_transport tcp -an -r 20 -i rtsp://ip2sip:accountpwd@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=1 -pix_fmt yuv420p -s 640*480 -r 20 -vcodec rawvideo -f v4l2 /dev/video13 -nostdin -nostats -nostdin
Thanks in advance for all your help!
Kind regards,
Bart.

Hi @bboelaert ,
I had the same problem using Asterisk, my workaround was change sip server to freeswitch, and put the right register interval.
Best Regards
Moisés

from your log it looks like baresip can register after the call:
<EMAIL_ADDRESS>{0/UDP/v4} 200 OK (VoIP PBX) [1 binding]

Is baresip running in foreground or background ?

You said that after 2 days the baresip process cannot be reached. Can you check
if the baresip process responds to anything when it goes into this condition?
For example test with the cons module, using netcat.

Can you use ngrep/tcpdump to capture SIP traffic when this condition is reached ?

/Alfred

Hi Alfred,

baresip is actually running in the background. I start baresip from a Perl script. Everything that baresip sends to stdout, is logged via syslog to a separate log file. Should it crash for some reason or another, the baresip process is restarted. Below is an extract from the Perl code :+1:
$strCommand = "baresip -f /etc/baresip/ext$strSIPExt";
($blnCfgDebug) && LogInfo("Executing command : $strCommand");
$lngPID = open(CMD,"$strCommand 2>&1 |");
while($lngPID)
{
$SIG{ALRM} = sub
{
($blnCfgDebug) && LogInfo("Program ran for $lngMinRuntimeInSecs seconds! Considering it as being up ...");
# If the last known state was down ...
if ($blnLastSIPClientState == 0)
{
# Here we are sure that the SIP client is running
$blnCurrentSIPClientState = 1;
LogSIPClientState($blnCurrentSIPClientState);
$blnLastSIPClientState = $blnCurrentSIPClientState;
}; # end if ($blnLastSIPClientState == 0)
  # Switch off the timer
  alarm(0);

};
Start a timer to be fired after $lngMinRuntimeInSecs seconds
alarm($lngMinRuntimeInSecs);
Log the command output to syslog
while ()
{
chomp();
LogInfo($_);
};
close(CMD);
Capture the return code of the command
$lngRet = $? >> 8;
LogInfo("baresip exited with return code = $lngRet");
Switch off the timer
alarm(0);
Here we are sure that the SIP client is not running
if ($blnLastSIPClientState == 1)
{
$blnCurrentSIPClientState = 0;
LogSIPClientState($blnCurrentSIPClientState);
$blnLastSIPClientState = $blnCurrentSIPClientState;
}; # end if ($blnLastSIPClientState == 1)
$lngPID = 0;
LogInfo("Sleeping for $lngRestartWaitTime seconds ...");
sleep($lngRestartWaitTime);
($blnCfgDebug) && LogInfo("Restarting command : $strCommand");
$lngPID = open(CMD,"$strCommand 2>&1 |");
};

I'm keeping an eye on the baresip processes now. When it is not registered anymore, I will do a netcat + tcpdump like you suggest.

So, I will give you feedback shortly.
Kind regards,
Bart.

Could you also do another test:

Run a Baresip process in foreground (without your Perl script) for a couple of days, and see if it
becomes unresponsive.

Run a Baresip process in background by using the -d option

NOTE: if you add 3 backticks before and after your Perl code it
becomes a bit more readable :)

Hi Alfred,
I just restarted 14 baresip process using the screen command like below :+1:
screen -dm baresip -f /etc/baresip/ext7024
I will let it run for a couple of days. Should one of the baresip processes not be registered to Asterisk anymore I can reconnect to the screen session of this process and dump the timers e.g.
Any other command outputs that are usefull for you in terms of troubleshooting?
Kind regards,
Bart.

Hi Alfred,
I finally have the situation were baresip is not registered to the asterisk server anymore!
Below is what I see on the Asterisk console when issuing the sip show peers command :
7011/7011-0x1199890        <IP_ADDRESS>                             D                 47100    OK (1 ms)
7012/7012-0x1640890        (Unspecified)                            D                 0        UNKNOWN
7013/7013-0x72b890         <IP_ADDRESS>                             D                 49772    OK (1 ms)
7014/7014-0xd96890         <IP_ADDRESS>                             D                 43807    OK (1 ms)
7015/7015-0x2032890        <IP_ADDRESS>                             D                 59493    OK (1 ms)
7016/7016-0x253a890        <IP_ADDRESS>                             D                 42734    OK (1 ms)
7017/7017-0x15a1890        <IP_ADDRESS>                             D                 39546    OK (1 ms)
7018/7018-0x17e9890        <IP_ADDRESS>                             D                 55756    OK (1 ms)
7019/7019-0x1ec4890        <IP_ADDRESS>                             D                 34701    OK (1 ms)
7020/7020-0x1709890        <IP_ADDRESS>                             D                 42693    OK (1 ms)
7021/7021-0x1da8890        <IP_ADDRESS>                             D                 59690    OK (1 ms)
7022/7022-0x1c50890        <IP_ADDRESS>                             D                 33652    OK (1 ms)
7023/7023-0x8e4890         <IP_ADDRESS>                             D                 34213    OK (1 ms)
7024/7024-0x1129890        <IP_ADDRESS>                             D                 45821    OK (1 ms)
So SIP extension is not registered anymore. Below is the output of "sip show peer 7012" :+1:

Name       : 7012
Secret       :
MD5Secret    :
Remote Secret:
Context      : doorphones
Subscr.Cont. : default
Language     : en
AMA flags    : Unknown
Transfer mode: open
CallingPres  : Presentation Allowed, Not Screened
Callgroup    :
Pickupgroup  :
MOH Suggest  :
Mailbox      :
VM Extension : asterisk
LastMsgsSent : 32767/65535
Call limit   : 20
Max forwards : 0
Dynamic      : Yes
Callerid     : "IP CAM 004/005" <7012>
MaxCallBR    : 384 kbps
Expire       : -1
Insecure     : no
Force rport  : No
ACL          : No
DirectMedACL : No
T.38 support : Yes
T.38 EC mode : FEC
T.38 MaxDtgrm: -1
DirectMedia  : Yes
PromiscRedir : No
User=Phone   : No
Video Support: Yes
Text Support : No
Ign SDP ver  : No
Trust RPID   : Yes
Send RPID    : Yes
Subscriptions: Yes
Overlap dial : Yes
DTMFmode     : rfc2833
Timer T1     : 500
Timer B      : 32000
ToHost       :
Addr->IP     : (null)
Defaddr->IP  : (null)
Prim.Transp. : UDP
Allowed.Trsp : UDP
Def. Username: 7012-0x1640890
SIP Options  : (none)
Codecs       : 0x20000a (gsm|alaw|h264)
Codec Order  : (alaw:20,gsm:20)
Auto-Framing :  No
Status       : UNKNOWN
Useragent    : baresip v0.5.6 (x86_64/linux)
Reg. Contact : sip:7012-0xaa7fd0@<IP_ADDRESS>:56972
Qualify Freq : 60000 ms
Sess-Timers  : Accept
Sess-Refresh : uas
Sess-Expires : 1800 secs
Min-Sess     : 90 secs
RTP Engine   : asterisk
Parkinglot   :
Use Reason   : No
Encryption   : No

Using the screen utility I could reconnect to the baresip process. The last lines on the SIP console are :+1:
it/s) efps=0/7                         [============    ]                                                              [0:00:07] audio=0/64000 video=0/108701 (bit/s) efps=0/7                         [============    ]                                                              [0:00:08] audio=0/64000 video=0/108701 (bit/s) efps=0/7                         [============    ]                                                              [0:00:08] audio=0/64000 video=0/108701 (bit/s) efps=0/7                         [============    ]<EMAIL_ADDRESS>session closed: Connection reset by peer
On the baresip console, I cannot issue any command anymore (e.g. /timers)!
Below is the output of the "netstat -naup | grep "baresip" | grep 13" command :+1:
udp        0      0 <IP_ADDRESS>:34213      <IP_ADDRESS>:*                           14955/baresip
udp        0      0 <IP_ADDRESS>:55756      <IP_ADDRESS>:*                           14940/baresip
udp        0      0 <IP_ADDRESS>:49772      <IP_ADDRESS>:*                           14925/baresip
udp        0      0 <IP_ADDRESS>:39546      <IP_ADDRESS>:*                           14937/baresip
udp   213248      0 <IP_ADDRESS>:56972      <IP_ADDRESS>:*                           14921/baresip
udp        0      0 <IP_ADDRESS>:42693      <IP_ADDRESS>:*                           14946/baresip
udp        0      0 <IP_ADDRESS>:42734      <IP_ADDRESS>:*                           14934/baresip
udp        0      0 <IP_ADDRESS>:45821      <IP_ADDRESS>:*                           14958/baresip
udp        0      0 <IP_ADDRESS>:43807      <IP_ADDRESS>:*                           14928/baresip
udp        0      0 <IP_ADDRESS>:33652      <IP_ADDRESS>:*                           14952/baresip
udp        0      0 <IP_ADDRESS>:34701      <IP_ADDRESS>:*                           14943/baresip
udp        0      0 <IP_ADDRESS>:47100      <IP_ADDRESS>:*                           14918/baresip
udp        0      0 <IP_ADDRESS>:59493      <IP_ADDRESS>:*                           14931/baresip
udp        0      0 <IP_ADDRESS>:59690      <IP_ADDRESS>:*                           14949/baresip
As you can see there is still a listening UDP socket on port 56972, but the Recv-Q buffer is filling up (meaning nothing is being processed by the baresip process anymore).
Is this info sufficient for you for troubleshooting the issue?
Kind regards,
Bart.

aha, so it looks like the process is stuck.

Find the process id of the baresip instance (e.g. 1234)
Use gdb to attach to the running process:

gdb baresip -p 1234

Get the backtrace for all threads:

(gdb) thread apply all bt

Please post the backtrace here.

Hi Alfred,
Due to the fact that the baresip processes run in a production environment and the customer noticed that one of the camera streams was offline, I had to restart the process in the mean time.
But, I now downloaded gdb and have a Wireshark trace running in the background.
So, hopefully, within a couple of days I can provide you the backtrace + Wireshark trace of a new stuck baresip process.
Thanks for your support up to now!
Kind regards,
Bart.

I am guessing that it locks somewhere in the video code, when the
call is terminated.
You can also try to run it via gdb, and then make hundreds of calls with it,
until the lock state is reached.

Hi Alfred,
Today I got a second chance to spot 2 SIP extensions (baresip processes) (ext 7017 and 7018) that were unreachable.
In attach you can find the network traffic between those baresip processes (hosted on a VM with IP <IP_ADDRESS>) and the Asterisk server (IP <IP_ADDRESS>).
Also in attach the gdb backtrace.
Hopefully this time it can pinpoint the problem.
20171205_baresip_ext_7017.txt
20171205_baresip_ext_7017_sip_traffic.pcapng.tar.gz
20171205_baresip_ext_7018.txt
20171205_baresip_ext_7018_sip_traffic.pcapng.tar.gz
Kind regards,
Bart.

Hi Alfred,
The baresip process of SIP extension 7018 is blocking again as well as the baresip process of SIP extension 7019. Both extensions are not registered on the Asterisk anymore.
Before attaching a debug session (using gdb) I reconnected to the console, but nothing can be done on this level (no possibility to issue commands).
But after exiting the gdb debug session the process re-registers itself to the Asterisk server and continues : strange!
Below are the text files with the necessary info :+1:
Kind regards,
Bart.
20171207_baresip_ext_7018.txt
20171207_baresip_ext_7019.txt

many thanks for the gdb backtrace.
the gdb backtrace shows very clearly that it has gone into a deadlock:
Thread 6 (Thread 0x7f5de5f55700 (LWP 17100)):
#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38
#1  0x00007f5defc50680 in ?? () from /usr/lib/x86_64-linux-gnu/libv4lconvert.so.0
#2  0x00007f5defeccff6 in v4l2_ioctl () from /usr/lib/x86_64-linux-gnu/libv4l2.so.0
#3  0x00007f5df00d6d22 in ?? () from /usr/lib/baresip/modules/v4l2.so
#4  0x00007f5df00d6dba in ?? () from /usr/lib/baresip/modules/v4l2.so
#5  0x00007f5df11a5064 in start_thread (arg=0x7f5de5f55700) at pthread_create.c:309
#6  0x00007f5df09c962d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111

Thread 1 (Thread 0x7f5df1c59700 (LWP 26995)):
#0  0x00007f5df11a649b in pthread_join (threadid=140041266747136, thread_return=0x0) at pthread_join.c:92
#1  0x00007f5df00d7427 in ?? () from /usr/lib/baresip/modules/v4l2.so
#2  0x00007f5df182747a in mem_deref () from /usr/lib/libre.so
#3  0x000000000041dd2a in video_stop ()
#4  0x000000000040e399 in ?? ()
#5  0x00000000004103ca in ?? ()
#6  0x00007f5df17fac75 in ?? () from /usr/lib/libre.so
#7  0x00007f5df17f2d1c in ?? () from /usr/lib/libre.so
#8  0x00007f5df17f33cf in ?? () from /usr/lib/libre.so
#9  0x00007f5df181c974 in ?? () from /usr/lib/libre.so
#10 0x00007f5df18261c5 in ?? () from /usr/lib/libre.so
#11 0x00007f5df1826b6a in re_main () from /usr/lib/libre.so
#12 0x0000000000409c45 in main ()

Thread 1 is calling pthread_join to stop the capturing thread.
Thread 6 is blocking reading frames.
it looks like your installation of Baresip and libre is missing debug symbols,
so it is a bit hard to guess where it hangs exactly. please try to re-compile
with full debug symbols if you can.
you can also build Baresip with statically linked modules:
$ make clean
$ make STATIC=1

the destructor in v4l2 looks like this:
static void destructor(void *arg)
{
	struct vidsrc_st *st = arg;

	if (st->run) {
		st->run = false;
		pthread_join(st->thread, NULL);
	}

	stop_capturing(st);
	uninit_device(st);

	if (st->fd >= 0)
		v4l2_close(st->fd);
}

perhaps you can try to move the call to stop_capturing to before pthread_join ?

you can also use the avformat module to stream directly from your
IP-camera to baresip:
video_source            avformat,rtsp://<IP_ADDRESS>/foo

in this case you don't need v4l2 or v4l2loopback.

hi @bboelaert
did you have any chance to test my suggestions ?
Alfred

Hi Alfred,
In order to simplify (and get rid of the v4lloopback and ffmpeg processes), I tried to link in the rtsp stream directly using the avformat module as you suggested.
Unfortunately I receive the following error on the console when calling to the baresip extension and no video stream is shown on the SIP client with extension 9009 :+1:
answering call from<EMAIL_ADDRESS>with 200
audio: Set audio decoder: PCMA 8000Hz 1ch
audio: Set audio encoder: PCMA 8000Hz 1ch
audio tx pipeline:         src ---> vumeter ---> PCMA
audio rx pipeline:        play <--- vumeter <--- PCMA
Set video encoder: H264 packetization-mode=0 (1024 bit/s, 15 fps)
video: no video display
[rtsp @ 0x1f10380] method DESCRIBE failed: 404 Not Found
video: no video source 'avformat': No such file or directory
video: could not set encoder format to [640 x 480] No such file or directory
Set video decoder: H264 packetization-mode=0
<EMAIL_ADDRESS>Call established<EMAIL_ADDRESS>Below are the relevant parts of the config file :
Video
#video_source           v4l2,/dev/video13
video_source            avformat,rtsp://ip2sip:somepassword@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=1
video_display           nil
#video_display          x11,nil
video_size              640x480
video_bitrate           1024
video_fps               15
...
Video codec Modules (in order)
module                  v4l2.so
module                  avcodec.so
#module                 vp8.so
#module                 vp9.so
#module                 h265.so
module                  avformat.so
I presume I made a config error. Could you help me out?
Thanks in advance for all your support!!!
Kind regards,
Bart.

hi @bboelaert
can you please pull latest version?
I added some extra logging in https://github.com/alfredh/baresip/commit/f425a55a5fc773282828dc6e1df887827d531ca5
please run baresip with -v (verbose) flag
since the avformat device is an URI you can try to add double-quotes around it.

Hi Alfred,
I tried the latest version of baresip on my laptop. It seems that the rtsp URL is being chopped :
Set video encoder: H264 packetization-mode=0 (1024 bit/s, 15 fps)
avcodec: video encoder H264: 15 fps, 1024 bit/s, pktsize=1024
video: no video display
avformat: alloc dev='rtsp://ip2sip:mypassword@<IP_ADDRESS>:554/cam/realmonitor?cha'
[rtsp @ 0x17a17a0] method DESCRIBE failed: 404 Not Found
avformat: avformat_open_input(rtsp://ip2sip:mypassword@<IP_ADDRESS>:554/cam/realmonitor?cha) failed (ret=-875574520)
video: no video source 'avformat': No such file or directory
video: could not set encoder format to [640 x 480] No such file or directory
Set video decoder: H264 packetization-mode=0
avcodec: video decoder H264 ()

Below is the relevant part of my config file :
# Video
video_source            avformat,"rtsp://ip2sip:ip2sip.admin@<IP_ADDRESS>:554/cam/realmonitor?channel=1&subtype=1"
video_display           nil
video_size              640x480
video_bitrate           1024
video_fps               15

Hopefully this gives you a clue to troubleshoot it.
I also tried to use the latest version on the production server, but I had to revert back to the old 5.6.0 version because I received a grey or noisy video image when calling all baresip extensions. On the production server, baresip is still configured to use the v4l loopback device.
Kind regards,
Bart.

Hi Alfred,
I compiled and installed the latest baresip version on my laptop. String buffer for RTSP URL is ok now, but I have some decoding issues now. The RTSP stream is reachable and OK (I checked it with vlc). The peer is now a Linphone client on my smartphone, which streams its own camera during the call.
Below is the log (hopefully this tells you more than me) :
call: alloc with params laddr=<IP_ADDRESS>, af=AF_INET, use_rtp=1
call: use_video=1
answering call from<EMAIL_ADDRESS>with 200
call: update media
audio: Set audio decoder: PCMA 8000Hz 1ch
audio: Set audio encoder: PCMA 8000Hz 1ch
audio tx pipeline:         src ---> vumeter ---> PCMA
audio rx pipeline:        play <--- vumeter <--- PCMA
Set video encoder: H264 packetization-mode=0 (1024 bit/s, 15 fps)
avcodec: video encoder H264: 15 fps, 1024 bit/s, pktsize=1024
video: no video display
avformat: alloc dev='rtsp://ip2sip:somepassword@<IP_ADDRESS>:554/cam/realmonitor?channel=2&subtype=1'
[h264 @ 0xfb6100] RTP: missed 1 packets
[h264 @ 0xfb6100] RTP: dropping old packet received too late
[h264 @ 0xfb6100] top block unavailable for requested intra mode at 29 0
[h264 @ 0xfb6100] error while decoding MB 29 0, bytestream 69914
[h264 @ 0xfb6100] concealing 1200 DC, 1200 AC, 1200 MV errors in I frame
avformat: stream 0:  640 x 480   time_base=1/90000
avformat: updating 15 fps from config to native input material fps 20
Set video decoder: H264 packetization-mode=0
avcodec: video decoder H264 ()
<EMAIL_ADDRESS>Call established<EMAIL_ADDRESS>[h264 @ 0x1092440] top block unavailable for requested intra mode at 29 0
[h264 @ 0x1092440] error while decoding MB 29 0, bytestream 69914
[h264 @ 0x1092440] concealing 1200 DC, 1200 AC, 1200 MV errors in I frame
[h264 @ 0xfb6100] RTP: missed 146 packetss=0/0                                  [===             ]
[h264 @ 0xfb6100] RTP: missed 5 packetsfps=0/0                                  [===             ]
[h264 @ 0xfb6100] RTP: missed 22 packetsps=0/0                                  [===             ]
[h264 @ 0xfb6100] RTP: missed 21 packets
[h264 @ 0x1103da0] cabac decode of qscale diff failed at 15 11
[h264 @ 0x1103da0] error while decoding MB 15 11, bytestream 8546
[h264 @ 0x1103da0] concealing 794 DC, 794 AC, 794 MV errors in I frame
[h264 @ 0xfb6100] RTP: missed 7 packetsfps=0/0                                  [===             ]
[h264 @ 0xfb6100] RTP: missed 18 packets
[h264 @ 0x1104760] concealing 253 DC, 253 AC, 253 MV errors in I frame          [===             ]
[h264 @ 0xfb6100] RTP: missed 5 packets46 (bit/s) efps=14/0                     [===             ]
[h264 @ 0xfeaea0] error while decoding MB 35 15, bytestream -5
[h264 @ 0xfeaea0] Cannot use next picture in error concealment
[h264 @ 0xfeaea0] concealing 614 DC, 614 AC, 614 MV errors in P frame
avcodec: decode buffer size exceeded95816 (bit/s) efps=19/0                     [===             ]
video: H264 decode error (seq=29501, 431 bytes): Cannot allocate memory
avcodec: ignoring fragmentdeo=9258/359821 (bit/s) efps=20/00                    [===             ]
[h264 @ 0xfb6100] RTP: missed 1 packets136 (bit/s) efps=20/0                    [===             ]
[h264 @ 0xfb6100] RTP: missed 2 packets
[h264 @ 0xfb6100] SEI type 116 size 3504 truncated at 200
[h264 @ 0x1103da0] SEI type 116 size 3504 truncated at 191
avcodec: decode buffer size exceeded334136 (bit/s) efps=20/0                    [===             ]
video: H264 decode error (seq=30135, 1237 bytes): Cannot allocate memory
avcodec: ignoring fragmentdeo=10480/334136 (bit/s) efps=20/0                    [===             ]
[h264 @ 0xfb6100] RTP: missed 3 packets74 (bit/s) efps=20/00                    [===             ]
[h264 @ 0xfb6100] RTP: missed 1 packetsit/s) efps=20/0=20/0                     [===             ]
avcodec: lost fragments; ignoring NAL(bit/s) efps=19/0                          [=======         ]
<EMAIL_ADDRESS>session closed: Connection reset by peer               [=====           ]
video: stopping video source ..
sip:305-0xfa0a60@<IP_ADDRESS>:49541: Call with<EMAIL_ADDRESS>terminated (duration: 42 secs)
video: stopping video source ..
avcodec: decoder stats (keyframes:4, lost_fragments:3)
ua: incoming OPTIONS message from<EMAIL_ADDRESS>(<IP_ADDRESS>:5060)
call: alloc with params laddr=<IP_ADDRESS>, af=AF_INET, use_rtp=0
call: use_video=1
video: stopping video source ..

Kind regards,
Bart.

Additional info :
I also found that when the RTSP stream server is not available, the baresip client locks and becomes unavailable. Maybe adding a connect time-out config parameter (if there isn't such parameter already) could solve this.
Kind regards,
Bart.

hi, this issue now contains many different problems and solutions.
in the baresip project we would like to keep one issue per problem.
would you be so kind to create a new Issue for the RTSP problems that you
are having ?
(I regard the original v4l2 problem as not a bug in baresip)

Hi Alfred,
OK, I created a new issue for the RTSP problems. (sorry for messing the things up)
And the hanging thread then? Should I try the source code change you suggested?
Kind regards,
Bart.

Thanks,
regarding the v4l2 issue I suggest you try to upgrade your kernel
and add the timeout flag as suggested.
Alfred


Replace Travis with GitHub Actions

It will be looks like https://github.com/nauxliu/terraform-aws-eks/commit/24e565ef3c6d8e07af8236e4980046e1f570b2b3/checks

What do you guys think? @antonbabenko @brandoconnor

Can we take avantage of this PR to test if docs is updated correctly ? By running manually pre-commit hooks for exemple pre-commit run -a. This should fail if something get wrong (doc or format not updated).

@barryib Sounds great, I'll make another PR for that after this one gets merged.

Though I haven't reviewed the code change, overall I'm all 👍 for migrating to github actions. Thanks for the contribution @nauxliu ! 👏


Add yulinling.net to showcase

I added yulinling.net, my blog, to the showcase, the related source code (removing private info) is also included.
Plz review and merge, thanks.

Hello @Lynxiayel,
Thank you for your contribution!
I needed to make the following modifications:

Remove leading + characters on each line of docs/content/showcase/yulinling.net.md
Correct the thumbnail filename listed in yulinling.net.md (png → jpg)
Add Chinese name "语林灵" to yulinling.net.md
Recapture and resize your thumbnail image to 600x400.

Also, it is preferable to create your pull request from a topic branch, not from master, as now you would need to use git pull --rebase or something similar to get your local master branch to match that of upstream.  :wink:
Merged as 68b8dd73de032318cd7617b024c0bd0a4e4dab2c (master) and 19a7aa9307d44484b74f12e35e90f5ffed77ab65 (v0.14.docs).
再次感谢！很高兴见到越来越多中文网站使用 Hugo。 :wink:
Anthony

Oh thanks a lot, that's much useful information for me as a rookie :)

Oh, one more problem which I fixed in a second commit...

https://yulinling.net/ → http://yulinling.net/

(CSS and images won't load for https)
Next time, try to test it before you submit the pull request.  :wink:
You may test your change to Hugo docs locally by using this command:
hugo -s docs server

and then opening http://localhost:1313/showcase/ on your web browser.

@anthonyfok  Thank you, it's nice to know :)


WishboneSRAM support for single-port RAM

WishboneSRAM can never service a read and a write request at the same time, so it's possible to improve support for SPRAM by disabling the read port when the write-enable is set.
This stops interfering with SPRAM inference where the underlying Memory primitive could otherwise match one.

Well, reading these tests have been instructive :) I hadn't imagined we might actually expect to see the pre-write value on dat_r and thus didn't anticipate a test for it!

My reading of the Wishbone spec suggests there isn't any 'permission' to do so (and e.g. write cycles don't mention DAT_I at all), so I guess we could consider:

relax the test and no longer expect read data on a write cycle.

I kind of like this option because I imagine there's a reasonable chance the data won't be passed through other layers anyway, when WE is asserted, since there's no provision in the spec for it. That said, I'm very inexperienced here.

do nothing.
add an option to WishboneSRAM which controls this behaviour. (I like this the least.)

My understanding is that DAT_I on a write cycle is don't care, as seen on page 44 of the Wishbone B4 spec:

Or phrased differently, a test that checks DAT_I during write cycles is clearly invalid in my understanding, and it shouldn't be doing that.

Yep, agreed — I've pushed a commit that removes those assertions accordingly.

The current implementation does a simultaneous read and write when we is asserted.
I think WishboneSRAM can be modified to do the write on the next clock cycle. Bus transactions already have a latency of 2 cycles, and adr and w_data are assumed to remain constant for the duration of a transaction.
Otherwise, maybe it is possible to build a custom dual-port RAM out of SPRAM primitives ? Using similar ideas as this blog post.
Then WishboneSRAM can be modified to accept user-provided memories.

My understanding is that DAT_I on a write cycle is don't care, as seen on page 44 of the Wishbone B4 spec:

If this is true, then just removing the test is fine indeed.

OK — thank you both! I think this PR is good to go, then.

Thank you!


Use current deployment context in SCRIPT_RUN stage

What would you like to be added:
Use current deployment context (like DeploymentTrigger, DeploymentStatus, etc.) in SCRIPT_RUN stage.
refs: https://pipecd.dev/docs-v0.46.x/user-guide/managing-application/customizing-deployment/script-run/
Why is this needed:
Since we don't know about the current deployment, it is difficult to write a script for customization of the deployment process.
This is similar to GitHubAction, where we can access job and step contexts through a defined property.
refs: https://docs.github.com/en/actions/learn-github-actions/contexts#job-context

I look forward to this feature!
In our use case, we want to get the Summary including a docker image tag.

@minhquang4334 @peaceiris
Sorry for the late response 🙏
We can realize it by adding the default environment variable for SR_XX (like SR_DEPLOYMENT_ID).
How about this?
apiVersion: pipecd.dev/v1beta1
kind: KubernetesApp
spec:
  name: script-run
  labels:
    env: example
    team: product
  pipeline:
    stages:
      - name: K8S_CANARY_ROLLOUT
        with:
          replicas: 10%
      - name: WAIT
        with:
          duration: 10s
      - name: SCRIPT_RUN
        with:
          run: |
            echo $SR_DEPLOYMENT_ID
      - name: K8S_PRIMARY_ROLLOUT
      - name: K8S_CANARY_CLEAN

environment variable for SR_XX (like SR_DEPLOYMENT_ID).

LGTM ʕ◔ϖ◔ʔ

We can realize it by adding the default environment variable for SR_XX (like SR_DEPLOYMENT_ID).

LGTM @ffjlabo

Thanks, both 👍 I will try it.
Also, I received a comment from @khanhtc1202 about the implementation.
We should check whether the env values are shared by multiple deployments.
So at first, I will investigate it :)

After the investigation, I found out the way is possible. 👍 I will implement it later.
Detail
As the official document, os/exec package executes the command as a new process.

Package exec runs external commands. It wraps os.StartProcess to make it easier to remap stdin and stdout, connect I/O with pipes, and do other adjustments.
https://pkg.go.dev/os/exec

Proceses usually have their own environment variable and separate them.
Also, I tested the behavior using the code below, and it works as I expected.
package main

import (
	"bytes"
	"context"
	"fmt"
	"os"
	"os/exec"

	"golang.org/x/sync/errgroup"
)

func main() {
	// This example shows that each exec.Cmd doesn't share the env value.

	// Scenario:
	// 	When executing "echo $DEPLOYMENT_ID" asynchronously with two exec.Cmd,
	// 	The one is executed after 10s with "sleep 10", the other without any waiting time.
	// Result:
	// 	The output of the first command is "one" and the second is "two". Not shared.
	/*
		% go run main.go
		===== D2 ======
		output: two

		err:
		===== D1 (execute after 5s) ======
		output: one

		err:
	*/
	eg, _ := errgroup.WithContext(context.TODO())
	eg.Go(func() error {
		var outBuf, errBuf bytes.Buffer
		cmd := exec.Command("/bin/sh", "-l", "-c", "sleep 5 && echo $DEPLOYMENT_ID")
		cmd.Env = append(os.Environ(), "DEPLOYMENT_ID=one")
		cmd.Stdout = &outBuf
		cmd.Stderr = &errBuf

		if err := cmd.Run(); err != nil {
			return err
		}

		fmt.Println("===== D1 (execute after 5s) ======")
		fmt.Println("output:", outBuf.String())
		fmt.Println("err:", errBuf.String())

		return nil
	})

	eg.Go(func() error {
		var outBuf, errBuf bytes.Buffer
		cmd := exec.Command("/bin/sh", "-l", "-c", "echo $DEPLOYMENT_ID")
		cmd.Env = append(os.Environ(), "DEPLOYMENT_ID=two")
		cmd.Stdout = &outBuf
		cmd.Stderr = &errBuf

		if err := cmd.Run(); err != nil {
			return err
		}

		fmt.Println("===== D2 ======")
		fmt.Println("output:", outBuf.String())
		fmt.Println("err:", errBuf.String())

		return nil
	})

	if err := eg.Wait(); err != nil {
		fmt.Printf("error :%v\n", err)
	}
}


Team Roster

i have been using this to retrieve the current team rosters for a team: (with the help of @BurntSushi )

Is there a way to get the roster for all teams instead of just a single specified team?

import nflgame
for p in nflgame.players.itervalues():
    print p.full_name, p.position, p.team


4.8.8 not released to CDN

Thank you for the wonderful software!
The release 4.8.8 seems to be missing at the CDN:
https://cdnjs.cloudflare.com/ajax/libs/pixi.js/4.8.8/pixi.min.js
returns "404 Not Found"

Not sure what’s up with that. Shows up on jsdelivr
<EMAIL_ADDRESS>

Both links work for me, so closing. Please create a new issue if you're still having problems!


The e bucket you are attempting to access must be addressed using the specified endpoint.

Hi.
I'm getting 'The bucket you are attempting to access must be addressed using the specified endpoint.' when calling to GET request.
Saw this issue in few post which recommend to switch the
https://s3.amazonaws.com/salesforcecolony/colony_raw_data.csv TO https://s3-eu-west-1.amazonaws.com/salesforcecolony/colony_raw_data.csv
Thant cause to additional error: 'The request signature we calculated does not match the signature you provided.'
Can you please advice?
I fail login :(
Thanks.
Aharon

Signature and endpoint fixed in https://github.com/bigassforce/aws-sdk/commit/6845b1d5b741215883a3cbedc9fc07566af10e15


feat: add check/dry run param

Hi, first time contributing to this repo and first PR ever submitted to an open-source project.
Thanks for this great tool. I was looking for this use case yesterday, while integrating this library in my project at work.
Have written tests and they have passed.

@shaharke are you still actively maintaining this repo?

No. I’m happy to add a primary maintainer if anyone is up to the task.
On Wed, Nov 7, 2018 at 1:51 PM Mina Demian<EMAIL_ADDRESS>wrote:

@shaharke https://github.com/shaharke are you still actively
maintaining this repo?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/shaharke/node-ansible/pull/45#issuecomment-436598809,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAnDvz8rOM0eTRHrQOO1-Mtx9ZGYfQrZks5usskmgaJpZM4YRlU2
.

I'd be interested.

@minademian added you as a collaborator

@macobo @deployable @nikolovivan I don't have access to Travis CI, I'm not sure why the build failed. Could you help at all?

@macobo @deployable @nikolovivan I don't have access to Travis CI, I'm not sure why the build failed. Could you help at all?

@minademian the access is public and you can use your Github account to login.

figured it out. the .travis.yml file is referencing a really old version of Node. will close this PR and re-submit as a PR on this repo, rather than from my fork.

@minademian notice that if you intend to start using arrow functions in the code base you should bump the minor version of the package and document the fact that we no longer support Node.JS below version 8 (I think it's 8...).

@shaharke good note, i'll keep that in mind. no plans as such right now. immediate goals are to familiarize myself with codebase and the release cycle


fix name, bug in trygetcomp

Updates the README to name the correct project
Fixes a bug in TryGetComponent where it was using the world identity instead of the passed-in entity identity.

thanks!


Make Input mouse_mode and use_accumulated_input properties

Converts Input mouse_mode and use_accumulated_input from setter/getter functions to properties. Also adds a missing getter for use_accumulated_input (it only had a setter before).

I bound mouse_mode as a property in https://github.com/godotengine/godot/pull/50940 but it's just been sitting for a year

Thanks!

I bound mouse_mode as a property in #50940 👀

@LightningAA My bad, I should have looked for that before making a PR.

@LightningAA My bad, I should have looked for that before making a PR.

No you're totally good, I'm just happy it's finally merged 🙂

I noticed DisplayServer has mouse_get_mode and mouse_set_mode. Should it be made into a property? Also, how do these methods differ from the ones in the Input singleton?


alisanli: woorkflows: 2 weeks

I Need Help With:
To understand more clear how to use the programs
What went well?
I created a branch texted my bio and pushe my file.
What went less well?
I am still not sure how to do it all.
Lessons Learned
What is the function of github, vs code.
Sunday Prep Work
Still need to check...

@alisanlii , what programs do you mean?

@alisanlii , what programs do you mean?

I had no experience and information about VS Code.

It is ok, you'll learn while using it in your training for 9 months.

@alisanlii
1- why didn't you post the learning objective list at the top of your issue ?
2- add ` check-in week2


vivaldi: 5.2.2623.39-1 -> 5.2.2623.41-1

Description of changes
https://vivaldi.com/blog/desktop/minor-update-seven-5-2/, which includes some security fixes.
Main annoyance fixed is closing a window no longer causes the entire browser to quit.
Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 170987 run on x86_64-linux 1

1 package built:

vivaldi


Changes Elasticsearch single-type indexing to work around dotted tags

Tags are stored as a dictionary. Since some tag names will include
inconsistent number of dots (ex "error" and perhaps "error.message"), we
cannot index them naturally with elasticsearch. Instead, we add an
index-only (non-source) field of _q which includes valid search queries.
For example, the tag error -> 500 results in "_q":["error", "error=500"].
This matches the input query syntax, and can be checked manually with curl.
Ex curl -s localhost:9200/zipkin:span-2017-08-11/_search?q=_q:error=500

@adriancole We're seeing this issue currently, running 2.19.3. I don't know if I'm misunderstanding this fix, or if there was a regression, or if there was a regression but it's been fixed since. What we're seeing is, that if a span was submitted with tag controller, and afterwards we submit a span with tag controller.type we're seeing the following error:

Cannot store spans [bfded5ebabac959a/963b42b7404c295d, bfded5ebabac959a/73781a4343bdefae] due to RuntimeException(Could not dynamically add mapping for field [controller.type]. Existing mapping for [tags.controller] must be of type object but found [keyword].)
java.lang.RuntimeException: Could not dynamically add mapping for field [controller.type]. Existing mapping for [tags.controller] must be of type object but found [keyword].
at zipkin2.elasticsearch.internal.BulkCallBuilder$1.convert(BulkCallBuilder.java:64) ~[zipkin-storage-elasticsearch-2.19.3.jar:?]
at zipkin2.elasticsearch.internal.BulkCallBuilder$1.convert(BulkCallBuilder.java:50) ~[zipkin-storage-elasticsearch-2.19.3.jar:?]
at zipkin2.elasticsearch.internal.client.HttpCall.parseResponse(HttpCall.java:282) ~[zipkin-storage-elasticsearch-2.19.3.jar:?]
at zipkin2.elasticsearch.internal.client.HttpCall.lambda$doEnqueue$0(HttpCall.java:187) ~[zipkin-storage-elasticsearch-2.19.3.jar:?]
at java.util.concurrent.CompletableFuture.uniHandle(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture$UniHandle.tryFire(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture.postComplete(Unknown Source) ~[?:?]
at java.util.concurrent.CompletableFuture.complete(Unknown Source) ~[?:?]
at com.linecorp.armeria.common.HttpMessageAggregator.onComplete(HttpMessageAggregator.java:98) ~[armeria-0.97.0.jar:?]
at com.linecorp.armeria.common.stream.FilteredStreamMessage$FilteringSubscriber.onComplete(FilteredStreamMessage.java:295) ~[armeria-0.97.0.jar:?]
at com.linecorp.armeria.common.stream.AbstractStreamMessage$CloseEvent.notifySubscriber(AbstractStreamMessage.java:377) ~[armeria-0.97.0.jar:?]
at com.linecorp.armeria.common.stream.DefaultStreamMessage.notifySubscriberOfCloseEvent(DefaultStreamMessage.java:201) ~[armeria-0.97.0.jar:?]
at com.linecorp.armeria.common.stream.DefaultStreamMessage.handleCloseEvent(DefaultStreamMessage.java:362) ~[armeria-0.97.0.jar:?]
at com.linecorp.armeria.common.stream.DefaultStreamMessage.notifySubscriber0(DefaultStreamMessage.java:305) ~[armeria-0.97.0.jar:?]
at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:163) [netty-common-4.1.43.Final.jar:4.1.43.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:510) [netty-common-4.1.43.Final.jar:4.1.43.Final]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:413) [netty-transport-native-epoll-4.1.43.Final-linux-x86_64.jar:4.1.43.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$6.run(SingleThreadEventExecutor.java:1050) [netty-common-4.1.43.Final.jar:4.1.43.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [netty-common-4.1.43.Final.jar:4.1.43.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.43.Final.jar:4.1.43.Final]
at java.lang.Thread.run(Unknown Source) [?:?]

@eraffel-MDSol if you can, please either join gitter or raise a new issue on https://github.com/openzipkin/zipkin-support Very likely, you have a custom or corrupt index template as ours will avoid this issue..


There was a problem with Read the Docs while building your documentation. Please report this to us

Details

Read the Docs project URL: https://readthedocs.org/projects/geopandas/
Build URL (if applicable): https://readthedocs.org/projects/geopandas/builds/7161608/
Read the Docs username (if applicable):

I am not fully sure why it is failing, I don't find something in the different log parts that fail, but it just stops after the "cat doc/source/conf.py" step.
And since it asked to report this, that's what I did.

We are experiencing a potentially similar failure for several weeks:

Project: https://readthedocs.org/projects/indra/
Failing build url: https://readthedocs.org/projects/indra/builds/7174578/
Usernames: https://github.com/pagreene, https://github.com/bgyori (our Read the Docs usernames are the same as Github usernames)

As with the above, our automatic builds seem to fail directly after the conf step, however we have found that manually triggered builds continue and apparently succeed, except that they still throw the same error message.

I also did a manual trigger of the build, but that failed as well (and also didn't update the docs online)

Experiencing this as well. My builds have been failing for days starting at build 7213846.

Hi @begriffs,  think your build is failing because your repo has a unicode branch https://github.com/citusdata/citus_docs/tree/metrics-∂eco∂e, rtd doesn't support unicode names for now (we are planning to support them soon https://github.com/rtfd/readthedocs.org/pull/4052)

@stsewd thanks for the quick response! That was exactly the issue. I deleted the offending remote branch and builds are back to normal.

Any updates on this?
I just triggered a build for latest, and still have the same problem: https://readthedocs.org/projects/geopandas/builds/7289654/
(although in the meantime, there also has been a build that went further than the "cat doc/source/conf.py" step, but that one failed at the time due to an error in one of the our dependencies: https://readthedocs.org/projects/geopandas/builds/7259769/)

but that one failed at the time due to an error in one of the our dependencies: readthedocs.org/projects/geopandas/builds/7259769

Where you able to solve this? This one in particular doesn't seem to be a problem in RTD but in your project configuration.
In case you need to mock a C library, you can read the FAQ at http://docs.readthedocs.io/en/latest/faq.html#i-get-import-errors-on-libraries-that-depend-on-c-modules

@jorisvandenbossche hi! Your two latest builds passed. Do you still have this problem or you were able to solve it? Thanks!

Yes, it seems to be working now. Thanks!

The last build today seems to be failing again: https://readthedocs.org/projects/geopandas/builds/7486083/

Following up on @pagreene's report from the indra project:

Project: https://readthedocs.org/projects/indra/
Failing build url: https://readthedocs.org/projects/indra/builds/7486455/

All the automatically triggered builds are still failing. In addition, the situation has gotten worse, since recently the manually triggered builds are failing too so we haven't been able to update our public documentation for a while. Any help would be very much appreciated!
Error
There was a problem with Read the Docs while building your documentation. Please report this to us with your build id (7486455).

git clone --recursive https://github.com/sorgerlab/indra.git .
git checkout --force origin/master
git clean -d -f -f
git branch -r
python3.5 -mvirtualenv --no-site-packages --no-download /home/docs/checkouts/readthedocs.org/user_builds/indra/envs/latest
python /home/docs/checkouts/readthedocs.org/user_builds/indra/envs/latest/bin/pip install --upgrade --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/indra/.cache/pip Pygments==2.2.0 setuptools<40 docutils==0.13.1 mock==1.0.1 pillow==2.6.1 alabaster>=0.7,<0.8,!=0.7.5 commonmark==0.5.4 recommonmark==0.4.0 sphinx<1.8 sphinx-rtd-theme<0.5 readthedocs-sphinx-ext<0.6
python /home/docs/checkouts/readthedocs.org/user_builds/indra/envs/latest/bin/pip install --exists-action=w --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/indra/.cache/pip -rdoc/requirements.txt
cat doc/conf.py

@jorisvandenbossche looks like a problem with memory limits, same for @bgyori 's project

Thanks @stsewd, is this something we can solve by changing the project config? Or does this need to be solved on the server side?

@bgyori you can check https://docs.readthedocs.io/en/latest/guides/build-using-too-many-resources.html for some tips. If that doesn't solve the problem you need to ask a maintainer to increase the memory limits for your project.

Ah, yes, we are probably hitting the 15 min limit (it says the (failed) build run for 14.7 min).
@humitos geopandas has quite some heavy dependencies to install, but still normally it doesn't take that long to create the environment locally.
Does readthedocs do any caching of the conda packages?

Does readthedocs do any caching of the conda packages?

Unfortunately, no. That's something that needs to be implemented: #3261
Does geopandas to install all of those dependencies to build the docs, or they are needed only to use geopandas? (I assume they are needed because you have the reference documentation also)
I double your time limit and triggered a new build. It should finish successfully. Let me know otherwise.

I double your time limit and triggered a new build. It should finish successfully. Let me know otherwise.

Thanks for doing that!
However, now there is another error "Problem parsing YAML configuration. Invalid "requirements_file": path requirements_rtd.txt does not exist", but we didn't change anything in the yaml config file, and there is also no requirements_rtd.txt mentioned in there.

Does geopandas to install all of those dependencies to build the docs, or they are needed only to use geopandas? (I assume they are needed because you have the reference documentation also)

Some of them are needed because we run some examples in the docs (running them itself does not take a lot of time), but the most heavy dependencies (eg gdal and all its dependencies) are not optional.

@jorisvandenbossche

However, now there is another error "Problem parsing YAML configuration. Invalid "requirements_file":

Sorry about that, it was a bug and it was fixed today, if you rebuild your docs, the error should be gone.

if you rebuild your docs, the error should be gone.

It still seems to give the same error now.

@jorisvandenbossche the problem is that you have set the file requirements_rtd.txt as the requirements file to be installed under Admin -> Advanced Settings and that file doesn't exist in your repo. Remove it from there and build it again.

Thanks for the quick answer!
I didn't change anything there, so until now the readthedocs.yaml was apparently overruling that.

Following up on @pagreene's report from the indra project:

Please, @bgyori open a new issue for this. It seems to be a different problem.
I imported this project in my local instance and the build is killed for a memory consumption.
Link this comment in the new issue and, if you can, please research a little about why it's consuming too much memory for the build. You can get some ideas from: https://docs.readthedocs.io/en/latest/guides/build-using-too-many-resources.html
Since the OOM is tricky to catch always properly, the message is sometimes not accurate.

@humitos sorry, the build is still failing (now again the original error, after adjusting the advanced settings). Any pointers on what this is related to ? (Memory, time,...)

Yes, it seems to work now. Thanks, closing then!
(back in July, I still saw some intermittent failures, but at least when re-triggering a build it sometimes passed. However, I am not sure it was related to a time-out, because when it passed, it was not close to the limit)


Update SPM and Stevia version

Please update the "spm" branch and the Stevia version.

I would also highly appreciate if the spm branch was updated to the latest version on master. Are there plans of doing that or to include support for SPM on master branch?  @NikKovIos @kiyot @s4cha
We are developing an app that is going to be released in August and we need the #575 fix that was included in the 4.5.0 release when going live.
Cheers. Loving the library, amazing work.

About update to SPM can help only @s4cha

please add this Package.swift :
// swift-tools-version:5.3
// The swift-tools-version declares the minimum version of Swift required to build this package.
import PackageDescription
let package = Package(
name: "YPImagePicker",
defaultLocalization: "en",
platforms: [
.iOS(.v13),
],
products: [
// Products define the executables and libraries a package produces, and make them visible to other packages.
.library(
name: "YPImagePicker",
targets: ["YPImagePicker"]),
],
dependencies: [
// Dependencies declare other packages that this package depends on.
// .package(url: /* package url */, from: "1.0.0"),
.package(name:"Stevia", url: "https://github.com/freshOS/Stevia", .upToNextMajor(from: "4.7.3")),
.package(name:"PryntTrimmerView", url: "https://github.com/HHK1/PryntTrimmerView", .upToNextMajor(from: "4.0.2")),
],
targets: [
// Targets are the basic building blocks of a package. A target can define a module or a test suite.
// Targets can depend on other targets in this package, and on products in packages this package depends on.
.target(
name: "YPImagePicker",
dependencies: [
"Stevia",
"PryntTrimmerView"
],
path: "Source",
resources: [
.process("Resources"),
]),
.testTarget(
name: "YPImagePickerTests",
dependencies: ["YPImagePicker"]),
]
)

Check https://github.com/Yummypets/YPImagePicker/releases/tag/5.0.0


IARs should require an images scope to apply to anything

Currently, it's possible to define an IAR with only a signatures requirement, thus the IAR doesn't actually apply to any image, sicne no scope is set and we don't have a default.
We decided to require an images scope when creating an IAR.

Tested with acorn version v0.8.0-rc4-13-g2e9f5e8a+2e9f5e8a
IAR fails to get created with no images field and following error message is presented to the user:
```The ImageAllowRule "testrules-project" is invalid: images: Required value: the images scope must be set to define which images this rule applies to````


Package request: ChroMapper

Project description

GitHub repository for ChroMapper, the Unity-based map editor for Beat Saber. It is written in C# and normally distributed as a single dynamically linked binary.
Metadata

homepage URL: cm.topc.at
source URL: https://github.com/Caeden117/ChroMapper
license: gpl2
platforms: linux

Add a :+1: reaction to issues you find important.

After investigating, it has been determined that building this package on NixOS is not feasible due to Unity's lack of support for Linux Mono builds in version 2021.3.45f1. The project requires Mono to avoid compatibility issues with Harmony patches, but Unity currently only supports IL2CPP for Linux, which does not meet upstream's build requirements.
Closing this issue as the required build configuration cannot be supported on NixOS at this time.


Bug_NativeSelect > Default /Has Error /Helper Message /Inverse /Has Error Inverse /Helper Message Inverse > User is not able to launch the dropdown menu by clicking on dropdown icon.

Describe the bug:
Dropdown menu is not launching when user clicks the dropdown icon.
To Reproduce:
Steps to reproduce the behavior:

Go to 'https://storybook-preview-dev--upbeat-sinoussi-f675aa.netlify.app/iframe.html?id=nativeselect--inverse&args=&viewMode=story'
Click on dropdown icon.
Verify that dropdown menu is not launching.

Expected behavior:
Dropdown menu should launch when user clicks the dropdown icon.
Screenrecording:
https://somup.com/c3iqI6u3kH
Desktop:
OS: [Win 10],Browser [chrome][Version 98.0.4758.82 (Official Build) (64-bit)]
OS: [Mac 12], Browser [Safari][Version 15.2]
OS: [iOS Device],Browser [Safari][Version 15.5]

The Issue is fixed.
See Screen-cast : http://somup.com/c3jffMuC5f
Thanks!

Issue does not exist.
See Screen-cast : http://somup.com/c3jvjVUlKl


t.takeElementScreenshots can't detect page area in some cases

Are you requesting a feature or reporting a bug?
Bug
What is the current behavior?
The t.takeElementScreenshot action fails to crop the taken screenshot to the specified element's dimensions, and displays the Can't detect page area ... warning.
It can happen because of

non-integer ratio between physical and love pixel sizes on HighDPI

screen color correction that leads to changes in intensities of black and white colors

slow rendering on low-power machines and VMs

What is the expected behavior?
Page area detection mechanism must be improved to get more reliable results.

I have this problem with Firefox on Android where the screenshots are taken through adb.
See my stackoverflow post on this topic: https://stackoverflow.com/questions/55412931/testcafe-screenshot-browser-provider-for-android-crop-js-unable-to-locate-the/55456765#55456765
The black marks are rendered as #010101 instead of #000.
My first Idea was to accept a threshold in crop.js:20. This would require a completely different implementation, where each pixel is checked if it is in a certain range. I think this might become slow and hard to read.
My second idea is to transform the screenshot instead. Each pixel in the screenshot is checked if its color is darker than - lets say #0f0f0f. Then the pixels color is set to #000 otherwise it is set to #fff.
I think I can implement that approach.

I implemented this approach.
https://github.com/htho/testcafe/commit/26c83d582940fb6b0995a21b39dddcd9f0baf7bb
Please tell me how I can improve it. I will follow the contribution guidelines then.

@htho.
Hello.
Thank you for your implementation, the approach looks good. Please submit your changes as a Pull Request to this repository. We will review it.

I added a Pull-Request. But I don't know how to write a Test for this specific case.


259 airtable mentor request form endpoints

Description of changes
Why is this feature being added?
The FE has the beginnings of a "Mentor Request Form" in mentorRequest.js.  This form will only be accessible to ID.me verified users.  This data needs to ultimately be populated in Airtable's in our mentorship airtable.
Associated Issues

https://github.com/OperationCode/operationcode_frontend/issues/890#issuecomment-370988070
https://github.com/OperationCode/operationcode_backend/issues/155#issuecomment-327019601

What should your feature do?

[x] create a POST endpoint that hits Airtables API and populates our mentorship airtable with the passed data:

mentee's slack user name
an array of service ids
an array of skillset names
additional details text
a mentor's id (or full name?)

[x] validation that the passed user is verified
[x] test coverage
[x] updates our API docs
[x] creates a GET endpoint that returns the following lists of information from Airtable

list of service ids and names
list of mentor full names and ids
list of skillset ids and names

[ ] Remove the Operationcode::Airtable gem
[ ] Replace any Operationcode::Airtable gem code with new client implementation
[ ] Set the new Airtable env vars in prod

Issue Resolved

Fixes #259

@nagano564 - Tagging you so you can follow this PR


I want to ignore a field, but I need to join to query the field. What should I do?

type Article struct {
    Id         int64 `db:"id, primarykey, autoincrement"`
    Title      string
    CategoryName   string `db:"-" json:"category_name"`
    CategoryId int64  `db:"category_id" json:"category_id"`
}

type Category struct{
    Id         int64 `db:"id, primarykey, autoincrement"`
    Name string
}

var list []Article
_,err := Dbm.Select(&list,"select a.*,c.name CategoryName from Article a,Category c where a.category_id = c.id")

I want to ignore a field, but I need to join to query the field. What should I do?

error:
query article error%!(EXTRA *gorp.NoFieldInTypeError=gorp: no fields [category] in type Article)

For anyone who comes across this: I showed something of a workaround in gitter; I'll see if I can find time to work on a real solution, as well.  However, since I rarely have time to work on gorp these days, it's highly encouraged that anyone who has an idea propose a solution in a PR.

thanks,我把你在gitter的回复粘贴到此处供其它人参考.
type Article struct {
     ID         int64 `db:"id, primarykey, autoincrement"` // ID, not Id; read Effective Go for reasoning
    Title      string
    CategoryID `db:"category_id" json:"-"`
    Category Category `db:"-" json:"category"`
}

type Category struct{
    ID         int64 `db:"id, primarykey, autoincrement"`
    Name string
}

// Note: *never* use 'select *' in code.  It makes your code less forward-compatible, which causes
// a huge mess of issues when you start needing to do rolling deploys.  Among other things.
rows, err := Dbm.Query("SELECT a.id, a.title, a.category_id, c.id, c.name FROM Article AS a INNER JOIN Category AS c ON a.category_id = c.id")
if err != nil {
    // handle err
}
for rows.Next() {
    var (
        article Article
        cat Category
    )
    rows.Scan(&a.ID, &a.Title, &a.CategoryID, &c.ID, &c.Name)
    // do what you need to with the article and category
}
if err := rows.Err(); err != nil {
    // handle err
}


replace upload with rebuild

After uploading a zip file (which was broken, I had included a html subdirectory in there), I wanted to just rebuild instead for that version. I was unable to figure out how to trigger such a rebuild, however, so this version is permanently broken.

I just committed a fix that adds the build icon to all builds, so this should fix that.


Cannot cancel save participant or cancel VS Code shutdown when "Closing the window is taking a bit longer..."

When a save partipant is taking a long time to save a file (clearly an extension issue), one can usually cancel them. However, if that happens while closing VS Code, the only option a user has is to "Close Anyway", losing any unsaved changes to that file.
At least one of the two following things should be possible:

Cancel waiting for background save participants in order to save the file and shutdown VS Code
Cancel the VS Code shutdown in order to cancel save participants manually

Does this issue occur when all extensions are disabled?: No

VS Code Version: 1.88.1
OS Version: Windows 11 23H2

Yes, I think that makes sense.


Proposal/Improvement: docker daemon --allow-latest-images=false

In production environment, I think nobody should ever use images tagged with latest.
Adding a new parameter to the docker daemon command allowing (or not) to use latest images would make a deployment workflow more reliable and safer.
WDYT about --allow-latest-images set to true by default ?
This could be implemented in Docker Swarm as well.

Although I understand your though behind this (it's best to be explicit, use a specific version, and not :latest), I don't think we should implement this. introducing such flag would introduce the impression of protecting you against bad practice, but won't protect against many other things. Also consider that :latest is just a convention, but someone may use :master for the same purpose, which won't be caught by this flag.
Also think of other things that won't be covered by this, such as;

untrusted images (some-registry.com/shady-repository:1.0.0)
an untrusted image publisher deciding to replace image repo:1.0 with a different image (note that image tags are mutable)

There's many more things to take into account, and policies for that may differ a lot between companies / use-cases.
Using digests (immutable identifiers) and Docker Content Trust is probably a better solution for this. If you want to enforce certain policies, then possibly you can implement an authorization plugin for that.
I don't think this proposal will be flexible enough to cover all use cases, and just disabling :latest is only covering a really small portion of those.

Yes, the correct place to implement something like this is in an authorization plugin.


Fix local provider not found when bean initialize

fix  https://github.com/apache/dubbo/issues/13672

@AlbumenJ PTAL

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

Comparison is base (29b0c72) 70.34% compared to head (1fe35b1) 70.31%.

Additional details and impacted files
@@            Coverage Diff             @@
##              3.2   #13713      +/-   ##
==========================================
- Coverage   70.34%   70.31%   -0.04%
==========================================
  Files        1606     1606
  Lines       70033    70044      +11
  Branches    10104    10106       +2
==========================================
- Hits        49263    49248      -15
- Misses      16133    16159      +26
  Partials     4637     4637

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

I think this issue doesn't need to be fixed. If this usage is really necessary, why not use  @Service instead?


Module 2 exercises [Stephen Nana Essuman]

Please "drag & drop" exercise 1 pdf file below.
Mod2_Ex1.pdf

Please "drag & drop" exercise 2 pdf file below.
Mod2_Ex2.pdf

Please "drag & drop" exercise 3 pdf file below.
Mod2_Ex3.pdf

Please "drag & drop" exercise 4 pdf file below.
Mod2_Ex4.pdf

Please UPDATE THE TITLE of this "Issue" in the title bar above with your name.

If you haven't done so, please go back to Module 2 and make sure to take
the post-training survey. Participating in surveys is required for receiving
the "GALUP Certificate" by the University of Florida.

Great work, Stephen. You clearly grasped the material outlined in Module 2 and successfully applied it to these exercises.
Thank you for your participation!


Find More Plugins... after cask install bitter does not work

Link goes to https://github.com/matryer/bitbar/tree/master/Plugins

It seems you are running an old version of BitBar. The menu item is called "Get Plugins" in the current release and opens https://getbitbar.com. You can find your version under Preferences. The latest is v1.9.1.

Weird. Says when I install:
brew cask install bitbar
==> Downloading https://github.com/matryer/bitbar/releases/download/v1.9.1/BitBar-v1.9.1.zip
######################################################################## 100.0%
==> Verifying checksum for Cask bitbar
==> Moving App 'BitBar.app' to '/Applications/BitBar.app'
🍺  bitbar staged at '/opt/homebrew-cask/Caskroom/bitbar/1.9.1' (0B)
brew cask install bitbar --force
==> Downloading https://github.com/matryer/bitbar/releases/download/v1.9.1/BitBar-v1.9.1.zip
Already downloaded: /Library/Caches/Homebrew/bitbar-1.9.1.zip
==> Verifying checksum for Cask bitbar
==> Moving App 'BitBar.app' to '/Applications/BitBar.app'
🍺  bitbar staged at '/opt/homebrew-cask/Caskroom/bitbar/1.9.1' (0B)
Yet BitBar itself stubbornly keeps saying it is at 1.2

You probably have older versions under '/opt/homebrew-cask/Caskroom/bitbar'. Try deleting them first.

That fixed it, thanks.
$ rm -rf /opt/homebrew-cask/Caskroom/bitbar/1.2.0/
$ brew cask install bitbar --force
==> Downloading https://github.com/matryer/bitbar/releases/download/v1.9.1/BitBar-v1.9.1.zip
Already downloaded: /Library/Caches/Homebrew/bitbar-1.9.1.zip
==> Verifying checksum for Cask bitbar
==> It seems there is already an App at '/Applications/BitBar.app'; overwriting.
==> Removing App: '/Applications/BitBar.app'
==> Moving App 'BitBar.app' to '/Applications/BitBar.app'
🍺  bitbar staged at '/opt/homebrew-cask/Caskroom/bitbar/1.9.1' (0B)
$


[Linguistics] Add query matchers

Turn existing matchers into query matchers

[ ] Equals
[ ] Options
[ ] Regex
[ ] And
[ ] Or
[ ] Sequence
[ ] All
[ ] Any

sequence(eq("quanto"),or(eq("é"),eq("custa")), optional ("isso"))
The next matcher is only evaluated when the first is satisfied.
Ideally they could be translated to a standard regex pattern.
They would be super useful if work with a list of tokens (Tokenizer).

Candidates:
https://github.com/sgreben/regex-builder

Candidates:
https://github.com/sgreben/regex-builder

It was done when the persistent database was included: https://www.javadoc.io/doc/org.dizitart/nitrite/3.0.0/org/dizitart/no2/Filter.html


[ENH] should we have a returns_nan tag?

Some estimators can return NAN under certain circumstances, e.g., sqrt or log transform; some forecasters when asked for in-sample predictions.
This behaviour in itself is fine, but we should probably have a tag for this?
Design question.

Not sure about the tag, but we should probably throw a RuntimeWarning or something similar if NaNs are returned due things like log(-10) etc.


"Next Steps" page (launching a VM, burning an iso).

Is your enhancement related to a problem? Please describe
Similar to #150 we should have after the build, a simple webview page that tells you what you can do next..
Example: Hey! You are on Apple, here's a link to the doc on how to launch it via VFKit. Your qcow2 is located here.
Same as...
"You created an iso, use "etcher" to "burn" it to a usb stick"
Describe the solution you'd like
Simple webview showing next steps how to launch the VM / iso / usb stick / etc.
Describe alternatives you've considered
No response
Additional context
No response

We now have a comprehensive docs guide here: https://github.com/containers/podman-desktop-extension-bootc/blob/main/docs/vm_guide.md as well as gif in the README showing how to run it.


how to move overflow-y in modal to  keep right  browser page ?

Adding left:auto to the modal will remove the constraint on the left side and thus allow it to align to the right.
.modal {
    left: auto;
}


Remove deprecated get(Set-Cookie) on Headers

Found this again last night. Decrufting.
/cc @ashwinbhaskar, who is working in the neighborhood of headers.

Sucked into #4352.