[.NET 8] Android crash at xamarin::android::Helpers::abort_application

Android application type
.NET Android (net7.0-android, net8.0-android, etc.)
Affected platform version
.NET 8.0.101, Android workload 34.0.52, Android NDK 26.1.10909125
Description
We are getting a lot of native crashes in production that we don't have on Xamarin. Here is the top 1 crash stack trace:
libc.so                    0x8ced76c8 + 337608
libc.so                    0x8ced7698 + 337560
libmono-android.release.so xamarin::android::Helpers::abort_application()
libmonosgen-2.0.so         mono_debugger_agent_unhandled_exception
libmonosgen-2.0.so         mono_debugger_agent_unhandled_exception
libmonosgen-2.0.so         mono_debugger_agent_unhandled_exception
libmonosgen-2.0.so         mono_runtime_class_init_full
libmonosgen-2.0.so         mono_jit_set_domain
libmonosgen-2.0.so         mono_jit_set_domain
libmonosgen-2.0.so         mono_install_ftnptr_eh_callback
libmonosgen-2.0.so         mono_install_ftnptr_eh_callback

Unfortunately, we don't have any ADB logs or a repro and we only see it in production.
We publish our application in AOT and, obviously, release configuration, so I'm also a little concerned about the jit and debugger in the stack trace - not sure if it's expected or something went wrong with our build process too.
Can anyone provide their thought on this issue, possible workarounds, etc.?
Steps to Reproduce
No repro, only getting crash reports from production.
Did you find any workaround?
No response
Relevant log output
No response

Thanks for the quick reply.
Sure, here is a random set of the devices/OSs from this crash group:

Name
OS-

NAM-LX9
Android 12

Reno2 Z
Android 11

T1
Android 13

CPH1909
Android 8.1.0

Redmi Note 11 SE
Android 13

OnePlus 10 Pro 5G
Android 14

HUAWEI nova 2 lite
Android 8.0.0

F19 Pro
Android 13

Galaxy S23
Android 14

Redmi Note 6 Pro
Android 9

realme narzo 30 5G
Android 13

Redmi Note 9T
Android 12

HUAWEI nova 2 lite
Android 8.0.0

AIR 55
Android 8.1.0

@akravch do you have the AndroidEnableMarshalMethods MSBuild property set to true?

@akravch do you have the AndroidEnableMarshalMethods MSBuild property set to true?

@grendello no, it's not set explicitly to anything. I have just checked the detailed build logs and I see that it is not getting set to true implicitly too, it remains false.

@akravch thanks! Are you able to get the application crash tombstones from Google? If you can, they may contain fragments of logcat output which is what we need to even start looking for the cause :( If the tombstones aren't available, can you see if any of the crashes contain the actual abort signal message (look for SIGABRT in whatever output you have), if we're lucky it will contain the actual abort message we log)
The traces you get should have addresses in them, would you be able to pick one that has the longest trace and paste here? To accompany it, I'd need you to extract the libmonosgen-2.0.so file, zip it up and attach here - if we have addresses, we might be able to at least figure out the code where the exception is thrown and handled.
Additionally, there's something weird in your trace, namely the libmono-android.release.so entry.  This is our native runtime, but we do not package it with that name, we put it in the apk/aab archive as libmonodroid.so, would you be able to attach a listing of your apk/aab lib/{ARCHITECTURE}/ entries?

@grendello we were able to get a very limited logcat, and from the tombstone I see that the signal is signal 6 (SIGABRT), code -6 (SI_TKILL). Here is the tombstone stace:
Fatal signal 6 (SIGABRT), code -6 (SI_TKILL) in tid 17664 (.NET TP Worker), pid 28165 (<app-process-name>o)
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'Redmi/curtana_global/curtana:12/SKQ1.211019.001/V<IP_ADDRESS>.SJWMIXM:user/release-keys'
Revision: '0'
ABI: 'arm64'
Timestamp: 2024-01-26 15:46:12.716852632+0500
Process uptime: 0s
Cmdline: <package-name>
pid: 28165, tid: 17664, name: .NET TP Worker  >>> <package-name> <<<
uid: 10425
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
    x0<PHONE_NUMBER>000000  x1<PHONE_NUMBER>004500  x2<PHONE_NUMBER>000006  x3  000000774c21e430
    x4<PHONE_NUMBER>000000  x5<PHONE_NUMBER>000000  x6<PHONE_NUMBER>000000  x7<PHONE_NUMBER>bcfa72
    x8<PHONE_NUMBER>0000f0  x9  fe8da60299a4bcee  x10<PHONE_NUMBER>000000  x11 ffffff80fffffbdf
    x12<PHONE_NUMBER>000001  x13<PHONE_NUMBER>00005d  x14 000000774c21d2e0  x15<PHONE_NUMBER>000000
    x16 000000785bb8ad30  x17 000000785bb64930  x18 00000076f79f2000  x19<PHONE_NUMBER>006e05
    x20<PHONE_NUMBER>004500  x21 00000000ffffffff  x22<PHONE_NUMBER>7bf000  x23 b4000076b656f650
    x24<PHONE_NUMBER>7bf980  x25 000000774c220cb0  x26<PHONE_NUMBER>000000  x27<PHONE_NUMBER>000000
    x28 b4000076b656f640  x29 000000774c21e4b0
    lr  000000785bb14cdc  sp  000000774c21e410  pc  000000785bb14d08  pst<PHONE_NUMBER>001000
backtrace:
      #00 pc<PHONE_NUMBER>08bd08  /apex/com.android.runtime/lib64/bionic/libc.so (abort+168) (BuildId: 2f84be24a19d511a358a9050af5b3974)
      #01 pc<PHONE_NUMBER>01f360  /data/app/~~7kJMqWKCr_j8wCTwIJFo1g==/<package-name>-9bNmZtBMLC7EDdKLqPkQDw==/split_config.arm64_v8a.apk!libmono-android.release.so (xamarin::android::Helpers::abort_application()+8) (BuildId: 374dc2e9ba70e7c5c6827626c1ea1ad3c2a64124)
      #02 pc<PHONE_NUMBER>035660  /data/app/~~7kJMqWKCr_j8wCTwIJFo1g==/<package-name>-9bNmZtBMLC7EDdKLqPkQDw==/split_config.arm64_v8a.apk!libmono-android.release.so (xamarin::android::internal::MonodroidRuntime::mono_log_handler(char const*, char const*, char const*, int, void*)+144) (BuildId: 374dc2e9ba70e7c5c6827626c1ea1ad3c2a64124)
      #03 pc<PHONE_NUMBER>1d7064  /data/app/~~7kJMqWKCr_j8wCTwIJFo1g==/<package-name>-9bNmZtBMLC7EDdKLqPkQDw==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (BuildId: 4ff0195244ee97a6b2da5b8881773c3c424a9739)
      #04 pc<PHONE_NUMBER>1d7190  /data/app/~~7kJMqWKCr_j8wCTwIJFo1g==/<package-name>-9bNmZtBMLC7EDdKLqPkQDw==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (BuildId: 4ff0195244ee97a6b2da5b8881773c3c424a9739)
      #05 pc<PHONE_NUMBER>1d71d4  /data/app/~~7kJMqWKCr_j8wCTwIJFo1g==/<package-name>-9bNmZtBMLC7EDdKLqPkQDw==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (BuildId: 4ff0195244ee97a6b2da5b8881773c3c424a9739)
      #06 pc<PHONE_NUMBER>25efa4  /data/app/~~7kJMqWKCr_j8wCTwIJFo1g==/<package-name>-9bNmZtBMLC7EDdKLqPkQDw==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (mono_runtime_class_init_full+2232) (BuildId: 4ff0195244ee97a6b2da5b8881773c3c424a9739)
      #07 pc<PHONE_NUMBER>0bdc3c  /data/app/~~7kJMqWKCr_j8wCTwIJFo1g==/<package-name>-9bNmZtBMLC7EDdKLqPkQDw==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (BuildId: 4ff0195244ee97a6b2da5b8881773c3c424a9739)
      #08 pc<PHONE_NUMBER>0c24b0  /data/app/~~7kJMqWKCr_j8wCTwIJFo1g==/<package-name>-9bNmZtBMLC7EDdKLqPkQDw==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (BuildId: 4ff0195244ee97a6b2da5b8881773c3c424a9739)
      #09 pc<PHONE_NUMBER>0c191c  /data/app/~~7kJMqWKCr_j8wCTwIJFo1g==/<package-name>-9bNmZtBMLC7EDdKLqPkQDw==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (BuildId: 4ff0195244ee97a6b2da5b8881773c3c424a9739)
      #10 pc<PHONE_NUMBER>152088  /data/app/~~7kJMqWKCr_j8wCTwIJFo1g==/<package-name>-9bNmZtBMLC7EDdKLqPkQDw==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (BuildId: 4ff0195244ee97a6b2da5b8881773c3c424a9739)
      #11 pc<PHONE_NUMBER>151bec  /data/app/~~7kJMqWKCr_j8wCTwIJFo1g==/<package-name>-9bNmZtBMLC7EDdKLqPkQDw==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (BuildId: 4ff0195244ee97a6b2da5b8881773c3c424a9739)
      #12 pc<PHONE_NUMBER>004300  <anonymous:785d707000>

There is also no libmono-android.release.so in our entire .aab, but libmonodroid.so is present.
Attaching a zip with the .json representation of a crash minidump with the addresses, a piece of logcat, the list of the .so libs in the app (excluded most of the company-related libs though) and the libmonosgen-2.0.so:  abort_application.zip

I've just realized why we see libmono-android.release.so name in the traces despite having libmonodroid.so in the archive.  Android uses the shared library SONAME field in the trace, instead of the file name (as it was previously) and that creates the inconsistency, since the SONAME is used to construct what appears to be a file path.  So at least that part was a red herring.  However, we do have our error:
01-26 15:46:10.860 28165 17919 E <app-process-name>: * Assertion at /__w/1/s/src/mono/mono/metadata/object.c:657, condition `lock->done' not met
01-26 15:46:10.860 28165 17664 E <app-process-name>: * Assertion at /__w/1/s/src/mono/mono/metadata/object.c:657, condition `lock->done' not met

The assertion ends up logged by us, then, since its a fatal error, the app aborts by calling the abort(2) function.
Looks like it's a MonoVM runtime issue. @lambdageek would you mind taking a look, or delegating to whomever could look into it? Thanks!

@akravch is there any output tagged with monodroid or DOTNET above the first line in your logcat?

@akravch is there any output tagged with monodroid or DOTNET above the first line in your logcat?

No, unfortunately, not a single line.
Are these logs enabled by default in release builds though? I'm not really familiar with how to configure verbosity for this kind of logs, but if someone here knows a way to make sure they will remain enabled, we could try it in our next release.

01-26 15:46:10.860 28165 17919 E <app-process-name>: * Assertion at /__w/1/s/src/mono/mono/metadata/object.c:657, condition `lock->done' not met
01-26 15:46:10.860 28165 17664 E <app-process-name>: * Assertion at /__w/1/s/src/mono/mono/metadata/object.c:657, condition `lock->done' not met

This is a known regression in .NET SDK 8.0.1.  See https://github.com/dotnet/runtime/issues/96804 it will be fixed in .NET SDK 8.0.2 (coming in February).
As a temporary workaround you can force the SDK to use the runtime from 8.0.0 - see https://github.com/dotnet/runtime/issues/96804#issuecomment-1897432561 for instructions.

@lambdageek thanks for the idea. Although, we did try to release our app on 8.0.100 a few weeks back, and we still had these abort_application crashes too, it just wasn't top 1. Maybe the failed assertion is not (always?) a root cause.
I think we'll try to release on 8.0.100 once again and see if we'll be able to get more logs.

note that if you already have 8.0.101 installed, just changing things in global.json to pin the SDK isn't enough.  you need the .csproj Target to override the runtime pack explicitly.  .NET workloads are non-intuitive
<Target Name="UpdateRuntimePackVersion" BeforeTargets="ProcessFrameworkReferences">
  <ItemGroup>
    <KnownRuntimePack Condition="%(RuntimePackLabels) == 'Mono'" LatestRuntimeFrameworkVersion="8.0.0" />
  </ItemGroup>
</Target>

Also experiencing a similar issue, might be related to https://github.com/dotnet/maui/issues/22812.
Using latest Android 34.0.113, was also occurring on previous version.
Fatal signal 6 (SIGABRT), code -1 (SI_QUEUE) in tid 3202 (.NET TP Worker), pid 2403 (o.adelaidemetro)
locat.txt

@grendello Interesting... it's a release build deployed from Visual Studio. Getting Fatal signal 6 (SIGABRT) from GooglePlay builds and was trying to add some extra logging locally.

@dmariogatto it might be that the trimmer removes something it shouldn't have (it's just a wild guess).  The message above comes from this code, but it doesn't mean Mono encountered a, well, Type type it doesn't know, but that the Type isn't specified (the 0x00 in your log message).  If you can repro this locally reliably, would you be able to try without the trimmer?
Also, to record the most useful log for us, please issue these commands from the VS dev prompt before you repro the crash:
> adb shell setprop debug.mono.log default,assembly,mono_log_level=debug,mono_log_mask=all
> adb logcat -G 64M
> adb logcat -c
rem Cause the app to crash here and after it does so, wait 2-3 seconds and:
> adb logcat -d > logcat.txt

@grendello Attached is the logcat with the settings asked for, this is for the Release build from VS with Trimming/AOT enabled. I will also try without trimming and report back.
logcat.zip

@dmariogatto thanks for the log! Alas, Android this time swallowed the abort message and the context I was hoping for isn't there :(.  Could you try logging the crashes with the same procedure until you can find the * Assertion: string in the resulting logcat?
Also, could you extract libmonosgen-2.0.so from the apk/aab that crashes and attach it here?

@dmariogatto I also noticed that you appear to be making a HTTP request on the main thread of the application.  This is, in general, inadvisable but in our case it not only throws a connection exception, but also might be causing Android to drop some log messages, and also causes this message to be logged:
06-19 06:42:11.687 10982 10982 I Choreographer: Skipped 30 frames!  The application may be doing too much work on its main thread.

@grendello Thank you for looking at the log!
Sorry to ask a tech support question but, how do I get it off the main thread? Essentially the view models will make an async call into a service after which a HTTP request will be made using configure await false. Although not the same repo it's the same pattern as this app.
Attached is the libmonosgen-2.0.so (arm64-v8a) file from the APK.
libmonosgen-2.0.zip

@dmariogatto async/await is fine(-ish) to make network requests, with one caveat - the preparation to make the request must run asynchronously as well. DNS lookup for the initial request is also a network request and it may take place on the same thread as the caller.  I generally prefer making network requests synchronously from a dedicated thread, without using async/await and the whole state machine it generates and uses behind the scenes.  This way I don't have hidden "infrastructure" code and can control all the aspects.
In your case it appears the actual request is made on the main thread and it appears to be a 100% Java one:
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform: Error making request.
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform: java.net.ConnectException: Failed to connect to fundingchoicesmessages.google.com/<IP_ADDRESS>:443
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.io.RealConnection.connectSocket(RealConnection.java:147)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.io.RealConnection.connect(RealConnection.java:116)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.http.StreamAllocation.findConnection(StreamAllocation.java:186)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.http.StreamAllocation.findHealthyConnection(StreamAllocation.java:128)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.http.StreamAllocation.newStream(StreamAllocation.java:97)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.http.HttpEngine.connect(HttpEngine.java:289)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.http.HttpEngine.sendRequest(HttpEngine.java:232)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.huc.HttpURLConnectionImpl.execute(HttpURLConnectionImpl.java:465)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.huc.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:131)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.huc.HttpURLConnectionImpl.getOutputStream(HttpURLConnectionImpl.java:262)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.huc.DelegatingHttpsURLConnection.getOutputStream(DelegatingHttpsURLConnection.java:219)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.android.okhttp.internal.huc.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:30)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.google.android.gms.internal.consent_sdk.zzu.zzd(com.google.android.ump:user-messaging-platform@@2.2.0:11)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.google.android.gms.internal.consent_sdk.zzu.zzb(com.google.android.ump:user-messaging-platform@@2.2.0:6)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at com.google.android.gms.internal.consent_sdk.zzq.run(Unknown Source:10)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
06-19 06:42:10.832 10982 10982 W UserMessagingPlatform:         at java.lang.Thread.run(Thread.java:919)

So perhaps it's a component you use that's not initiated directly from the managed code?

@grendello That specific call, UserMessagingPlatform, is from a Google library checking if it needs to display a consent form to show ads via AdMob - it's failing because of the PiHole on my local network. The actual DNS/HTTP request in this case is not from managed code.
Interesting point though on async/await & requests.

The symbolicated SIGABRT stack trace is as follows:
#03 pc<PHONE_NUMBER>1d71e4  /data/app/com.dgatto.adelaidemetro-D1KDwM_m8lglGh7lbJlEGQ==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (offset 0x150a000) (monoeg_g_logstr at /__w/1/s/src/mono/mono/eglib/goutput.c:151)
#04 pc<PHONE_NUMBER>1d726c  /data/app/com.dgatto.adelaidemetro-D1KDwM_m8lglGh7lbJlEGQ==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (offset 0x150a000) (monoeg_g_logv at /__w/1/s/src/mono/mono/eglib/goutput.c:173)
#05 pc<PHONE_NUMBER>151814  /data/app/com.dgatto.adelaidemetro-D1KDwM_m8lglGh7lbJlEGQ==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (offset 0x150a000) (mini_resolve_imt_method at /__w/1/s/src/mono/mono/mini/mini-trampolines.c:217)
#06 pc<PHONE_NUMBER>151eb4  /data/app/com.dgatto.adelaidemetro-D1KDwM_m8lglGh7lbJlEGQ==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (offset 0x150a000) (common_call_trampoline at /__w/1/s/src/mono/mono/mini/mini-trampolines.c:478)
#07 pc<PHONE_NUMBER>152e8c  /data/app/com.dgatto.adelaidemetro-D1KDwM_m8lglGh7lbJlEGQ==/split_config.arm64_v8a.apk!libmonosgen-2.0.so (offset 0x150a000) (mono_vcall_trampoline at /__w/1/s/src/mono/mono/mini/mini-trampolines.c:850)
Especially interesting is frame #05 which points us to the message that was logged:
	/* This has to be variance aware since imt_method can be from an interface that vt->klass doesn't directly implement */
	interface_offset = mono_class_interface_offset_with_variance (vt->klass, imt_method->klass, &variance_used);
	if (interface_offset < 0)
		g_error ("%s doesn't implement interface %s\n", mono_type_get_name_full (m_class_get_byval_arg (vt->klass), MONO_TYPE_NAME_FORMAT_IL), mono_type_get_name_full (m_class_get_byval_arg (imt_method->klass), MONO_TYPE_NAME_FORMAT_IL))

And, indeed, while we don't have the abort message, we do see the above in the logcat:
06-19 06:42:10.214 10982 11039 E         : System.Runtime.CompilerServices.AsyncTaskMethodBuilder.AsyncStateMachineBox<System.Collections.Generic.List<AdelaideMetro.Models.Stop>,System.Text.Json.Serialization.Metadata.JsonTypeInfo.<DeserializeAsync>d__1<System.Collections.Generic.List<AdelaideMetro.Models.Stop>>> doesn't implement interface System.Threading.Tasks.Sources.IValueTaskSource<System.Collections.Generic.List<AdelaideMetro.Models.Stop>>

So it would look like trimmer removing some required interface method implementations from the above type, I think.

@grendello That specific call, UserMessagingPlatform, is from a Google library checking if it needs to display a consent form to show ads via AdMob - it's failing because of the PiHole on my local network. The actual DNS/HTTP request in this case is not from managed code.

Can you perform the check from a separate thread?

Interesting point though on async/await & requests.

I have a general tendency to avoid comfortable "black box" code... :)

This issue still persists.

@akravch As per this comment, it's probably trimmer removing some type and you need to find what that is.  The details in the aforementioned comment should help you in this.
Also, as asked here, I wonder if you could test the messaging platform call on a separate thread.

@grendello I think you may be referring to the other issue, the one that @dmariogatto is experiencing. Unfortunately, in my case I don't have such a detailed logcat, it's hard to say if it's related to some interface not being implemented.
Also, now as we have more crash reports in our crash reporting system, it looks like this is happening more often on older Android versions (9 and below). A few crash reports have stdout/stderr attached with a single line:
WARNING: linker: "/data/app/com.android.chrome-gcItg8H1gBH_x7xCICPIYA==/base.apk!/lib/arm64-v8a/libmonochrome.so" unused DT entry: type 0x70000001 arg 0x0

So this can probably be a crash in a web view.


http.Request.Form.Get can ParseForm automatically

req.ParseForm() is needed to be called before accessing the form parameters using param := req.Form.Get("param-name") where req is a http.Request
Is there a reason behind this?
I would like to add a feature to ParseForm automatically from Form.Get() on first execution and on next calls, check if Form is already parsed and work as usual.
What are your thoughts?

How exactly would this work? r.Form is of type url.Values, so it can't possibly make a call back to http.Request - that would mean an import cycle.

This functionality is already implemented in one way as r.FormValue but the parse error is ignored and multiple values for a key isn't handled (POST/PUT body parameters take precedence over URL query values, and the first value is picked).
// Go 2 improvement?
func (r *Request) FormValue(key string) ([]string, error)

Ah, I didn't know about r.FormValue 😋 That is indeed what I need! Most of form tutorials were using Parse and then Form.Get, so I thought maybe it doesn't exist.
What about an alias GetFormValue? because first time I tried to find the function in my IDE, I typed req.Get in hopes something like this will show up.

Go2 changes are already being tracked in another issue, so I'm going to close this one.
Exposing the same method under two names is a bad idea in my opinion; especially since Go tends to not like getters: https://golang.org/doc/effective_go.html#Getters


Different handling of nested Futures

Consider this code:
foo.dart
void main() {
  foo(new Future.value(true)).then((result) {
    print(result.runtimeType);
  });
}

Future<R> foo<R>(R value) => new Future.value(value);

It gives no analyzer issues. However, running it with "legacy" VM and with Dart2 options results in different output:
$ ./dart-sdk/sdk/out/ReleaseX64/dart-sdk/bin/dart --version
Dart VM version: 2.0.0-edge.226c715542fa1bf9419e3f2e25f765ef33575d26 (Tue Jan 2 13:29:03 2018 +0000) on "linux_x64"

$ ./dart-sdk/sdk/out/ReleaseX64/dart-sdk/bin/dart foo.dart
bool

$ ./dart-sdk/sdk/pkg/vm/tool/dart2 foo.dart
_Future<bool>

Is it expected?

The isolate library seems to be creating a _Future<dynamic> in a place where it needs a Future<bool>. It needs to be updated.
The Future<FutureOr<bool>> looks wrong, though.

What is the status of this issue? Is this a VM issue, a library issue or a front-end issue?
/cc @lrhn @kmillikin

The behavior from the comment above could be replicated with the current master.
Moreover, sometimes dart process hangs indefinitely after throwing Exception.

@lrnhn @lexaknyazev If the return type of _run is typed as Future<bool> then balancer.run(_run,null) will have type Future<Future<bool>>, the then callback will be passed a Future<bool> which explains your first problem.
If the return type of _run is typed as FutureOr<bool> then balancer.run(_run,null) will ultimately get into this function in isolate_runner.dart in the isolate library:
  Future<R> run<R, P>(R function(P argument), P argument,
      {Duration timeout, onTimeout()}) {
    return singleResultFuture((SendPort port) {
      _commandPort.send(list4(_RUN, function, argument, port));
    }, timeout: timeout, onTimeout: onTimeout);
  }

R is the return type of _run namely FutureOr<bool>.  singleResultFuture is returning the implementation type _Future<dynamic> and we're trying to cast it to Future<FutureOr<bool>>.
We think this is a library issue.

@kmillikin

We think this is a library issue.

Does it also explain process hang? With about 50% chance, dart process goes into sleeping state after printing stack trace.

"Hanging" is most likely just a symptom of the main isolate still having an open receive port.
If something fails in a spawned isolate, it may still print the error and tear down that isolate, but the main isolate is still running and listening on a port.

Given that isolate package has been fixed, should this issue be closed? Also, could updated isolate be published to pub.dartlang.org?


mod: Upgrade the deps and go version

Q
A

Bug fix?
no

New feature?
no

API breaks?
no

Deprecations?
no

License
Apache 2.0

What's in this PR?

upgrade to go 1.17 mod
upgrade the deps

This is done


IE 11 not supported

"Object doesn't support property or method 'find'"
Great library, but I really want my app to support IE.  Is there any way to make this happen?

You're likely missing modern polyfills on the Array object. You'll need to polyfill the find method on Arrays. You can do that in many ways in your project, one option is to run npm install --save core-js and add require('core-js/es6/array'); to your App's entry point.

hi, hello, @MitchEnfield.
if you're conditionally polyfilling other things like fetch, Promise, etc., it should be fairly trivial even to write a find polyfill :)
alternatively, i would likely merge a PR that changed the find to a forEach for better browser support.

Thank you! That did the trick.


test-branch/execute-job/wrong-commit-sha-on-pr/3ffb2ae5-2bd6-4667-84a1-36e84a60b5df

PR for testing 4f838badddfdd1c09ddfc9cbe7cfa0abbb1e65a8

/canonical/self-hosted-runners/run-workflows 931ad21dd9ace68aaa0a7d341e94de96ad93fa6b


:heavy_minus_sign: Removing all dependencies

We can clearly get along without asking to install them.

Codecov Report

Merging #7 into master will decrease coverage by 2.20%.
The diff coverage is 79.59%.

@@            Coverage Diff             @@
##           master       #7      +/-   ##
==========================================
- Coverage   91.69%   89.48%   -2.21%
==========================================
  Files           3        4       +1
  Lines         301      333      +32
==========================================
+ Hits          276      298      +22
- Misses         25       35      +10

Impacted Files
Coverage Δ

kiss_headers/structures.py
65.51% <65.51%> (ø)

kiss_headers/utils.py
91.66% <100.00%> (+0.08%)
:arrow_up:

Continue to review full report at Codecov.

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


Request to reconciler to delete cluster is ignored if the cluster is currently being reconciled

Description
If KEB sends a request to the mothership to delete a cluster, the request is ignored if that cluster is currently in reconciliation cycle.
Expected result
Cluster is deleted.
Actual result
Cluster continues regular reconciliation cycles.
Steps to reproduce
Delete cluster while it's currently running a reconciliation cycle.
Troubleshooting
Here is the relevant log from the mothership:
{"level":"INFO","time":"2021-11-25T19:49:21.695Z","message":"Inventory watcher added runtime 'ff4078b3-2413-417e-baa7-287dad4c2af1' to scheduling queue (clusterVersion:416/configVersion:418/status:delete_pending)"}
{"level":"DEBUG","time":"2021-11-25T19:49:21.695Z","message":"Begin transactional DB context"}
{"level":"DEBUG","time":"2021-11-25T19:49:21.708Z","message":"Starting reconciliation for cluster 'ff4078b3-2413-417e-baa7-287dad4c2af1': set cluster status to 'reconciling'"}
{"level":"DEBUG","time":"2021-11-25T19:49:21.708Z","message":"Begin transactional DB context"}
{"level":"INFO","time":"2021-11-25T19:49:21.824Z","message":"ReconRepo found existing reconciliation for cluster 'ff4078b3-2413-417e-baa7-287dad4c2af1' (configVersion:418) which was created at '2021-11-25 19:47:21.826777 +0000 +0000': cannot create another one"}
{"level":"DEBUG","time":"2021-11-25T19:49:21.824Z","message":"Rollback transactional DB context"}
{"level":"DEBUG","time":"2021-11-25T19:49:21.825Z","message":"Cancelling reconciliation for cluster 'ff4078b3-2413-417e-baa7-287dad4c2af1': cluster is already enqueued"}
{"level":"DEBUG","time":"2021-11-25T19:49:21.825Z","message":"Rollback transactional DB context"}
{"level":"ERROR","time":"2021-11-25T19:49:21.826Z","message":"cluster 'ff4078b3-2413-417e-baa7-287dad4c2af1' is already considered for reconciliation (schedulingID:ff4078b3-2413-417e-baa7-287dad4c2af1--a2b83d4c-6c94-4134-a9fa-7342c4c2a822)"}
{"level":"DEBUG","time":"2021-11-25T19:49:35.706Z","message":"empty X-Envoy-External-Address header"}
{"level":"DEBUG","time":"2021-11-25T19:49:39.375Z","message":"empty X-Envoy-External-Address header"}
{"level":"DEBUG","time":"2021-11-25T19:49:39.376Z","message":"Begin transactional DB context"}
{"level":"DEBUG","time":"2021-11-25T19:49:39.383Z","message":"Commit transactional DB context"}
{"level":"DEBUG","time":"2021-11-25T19:49:51.124Z","message":"Bookkeeper evaluated reconciliation (schedulingID:ff4078b3-2413-417e-baa7-287dad4c2af1--a2b83d4c-6c94-4134-a9fa-7342c4c2a822) for cluster 'ff4078b3-2413-417e-baa7-287dad4c2af1' to cluster status 'ready': Done=CRDs,cluster-essentials,istio-configuration,certificates,monitoring,eventing,ory,api-gateway,service-catalog-addons,cluster-users,rafter,application-connector,logging,service-ca

We have to ensure that the finalization of a reconciliation is only overriding the cluster state if it is reconcling. Any other cluster states have to stay and should not be updated!

fix provided in #494 + #499


1.2-beta.9 Sidebars No Longer Open

Upgraded to 1.2-beta.9 from 1.2-beta-5 and the sidebars no longer open for me. No changes made except for bower install. Anything changed I should be looking for?
I get an uninitialized shared state error:
Warning: Attempt to set uninitialized shared state: uiSidebarLeft

Hi lylepratt,
Could you please  help me on this how you solved this issue. I tried with ng-click="dotest()"
$scope.doTest=finction(){
$rootScope.Ui.toggle('uiSidebarLeft');
}
In debugging , at   $rootScope.Ui.toggle('uiSidebarLeft') opens the sidebar after event It closes automatically


Duplicate errorMessages in new file...

At some point we may want to move all error messages to errorMessages.ts, but I think this is good enough for now.


[WEB-436] Clean up at a glance box

@lscheinkman or @brev please review

@rhyolight I got this warning in the console:
Warning: Failed prop type: The prop `to` is marked as required in `TextLink`, but its value is `undefined`.
    in TextLink (created by SectionHome)
    in SectionHome
    in div (created by Section)
    in section (created by Section)
    in Section (created by HomePage)
    in div (created by HomePage)
    in HomePage (created by RouterContext)
    in main (created by Main)
    in Main (created by Layout)
    in div (created by Layout)
    in Layout (created by Template)
    in Template (created by RouterContext)
    in RouterContext (created by Router)
    in ScrollBehaviorContainer (created by Router)
    in Router

@lscheinkman I've seen that browser error before, but I'm not getting it currently on this branch.

👍 It works

The browser error was fixed by c3b58e2 . It was related to the links.out.school
👍  It all works now!


⚠ Bofrost.lu has degraded performance

In 8f25f82, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1779 ms

Resolved: Bofrost.lu performance has improved in faf1b3a after 8 minutes.


Adding data to payload

Hi,
Thank you very much for this great binding!
I succeeded in modifying the payload content without touching the length of the incoming buffer, but cannot "add" extra content to it.
Is it possible to do this? This is my actual code based on netdump example
class Program
    {
        static void Main(string[] args)
        {
            Diversion diversion = Diversion.Open("true", DivertLayer.Network, 100, 0);

            IPHeader ipHeader = new IPHeader();
            IPv6Header ipv6Header = new IPv6Header();
            ICMPHeader icmpHeader = new ICMPHeader();
            ICMPv6Header icmpv6Header = new ICMPv6Header();
            TCPHeader tcpHeader = new TCPHeader();
            UDPHeader udpHeader = new UDPHeader();

            Address address = new Address();

            byte[] buffer = new byte[65535];
            byte[] newbuffer = new byte[1];

            uint receiveLength = 0;
            uint sendLength = 0;

            string processName;
            bool added = false;

            uint pid = 0;

            Console.WriteLine("Starting...");

            while (true)
            {
                added = false;
                pid = 0;

                receiveLength = 0;
                sendLength = 0;

                if (!diversion.Receive(buffer, address, ref receiveLength))
                {
                    Console.WriteLine("Failed to receive packet with error {0}", System.Runtime.InteropServices.Marshal.GetLastWin32Error());
                    continue;
                }

                diversion.ParsePacket(buffer, receiveLength, ipHeader, ipv6Header, icmpHeader, icmpv6Header, tcpHeader, udpHeader);

                if (ipHeader.Valid && tcpHeader.Valid)
                {
                    Diversion.GetPacketProcess(address, tcpHeader, ipHeader, ref pid, out processName);

                    string processexecutable = processName.Substring(processName.LastIndexOf('\\')+1);

                    if (processexecutable == "client.exe" && address.Direction == DivertDirection.Inbound)
                    {
                        string recibido = Encoding.UTF8.GetString(buffer);

                        Console.WriteLine("Adding");
                        added = true;

                        //Adding new data
                        buffer[receiveLength + 1] = 72;
                        buffer[receiveLength + 2] = 79;
                        buffer[receiveLength + 3] = 76;
                        buffer[receiveLength + 4] = 65;

                        //Creating new buffer
                        newbuffer = new byte[receiveLength + 4];

                        Array.Copy(buffer, newbuffer, receiveLength + 4);

                        //Modifying existing data (OK)
                        //buffer[296] = 72;
                    }
                }

                if (!added)
                {
                    diversion.CalculateChecksums(buffer, receiveLength, 0);
                    diversion.SendAsync(buffer, receiveLength, address, ref sendLength);
                }
                else
                {
                    diversion.CalculateChecksums(newbuffer, Convert.ToUInt32(newbuffer.Length), 0);

                    if (!diversion.SendAsync(newbuffer, Convert.ToUInt32(newbuffer.Length), address, ref sendLength))
                        Console.WriteLine("FAILED!");
                }
            }

            diversion.Close();
        }
    }

I would very much appreciate if you can point me in the right direction regarding this issue.

@oasrog Are you getting a particular error or something?

Hi,
Thank you for your answer.
I only get a false when calling sendasync method and the packet never
reaches the application
By the way, both client.exe and the divert.net application are running on
the same computer.
I'm trying to intercept and modify the incoming payload for that specific
app adding a few characters.
Thanks for your help
El jun 11, 2016 3:30 PM, "Jesse Nicholson"<EMAIL_ADDRESS>escribió:

@oasrog https://github.com/oasrog Are you getting a particular error or
something?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TechnikEmpire/Divert.Net/issues/6#issuecomment-225382076,
or mute the thread
https://github.com/notifications/unsubscribe/ADn4T8Y3Goe2I27PYJecU4FX8GrTjX3bks5qKv7FgaJpZM4IzSV7
.

@oasrog Try using just the regular send function and if you get a failure, call Marshal.GetLastWin32Error() and provide the returned error code here please.

Hi,
I've added the code suggested and got back 87 as GetLastWin32Error()
if (!diversion.Send(newbuffer, Convert.ToUInt32(newbuffer.Length), address,
ref sendLength))
Console.WriteLine(Marshal.GetLastWin32Error());
Sergio
On Sat, Jun 11, 2016 at 3:43 PM, Jesse Nicholson<EMAIL_ADDRESS>wrote:

@oasrog https://github.com/oasrog Try using just the regular send
function and if you get a failure, call Marshal.GetLastWin32Error() and
provide the returned error code here please.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TechnikEmpire/Divert.Net/issues/6#issuecomment-225382735,
or mute the thread
https://github.com/notifications/unsubscribe/ADn4T3aryau4Mn7aZaXUJLgexEdBP_h-ks5qKwG9gaJpZM4IzSV7
.

As stated in MSFT web, this is the meaning of this error
ERROR_INVALID_PARAMETER
87 (0x57)
The parameter is incorrect.
I guess the byte[] payload I'm passing as parameter is wrong
Sergio
On Sun, Jun 12, 2016 at 4:54 PM, Sergio Fernandez<EMAIL_ADDRESS>
wrote:

Hi,
I've added the code suggested and got back 87 as GetLastWin32Error()
if (!diversion.Send(newbuffer, Convert.ToUInt32(newbuffer.Length),
address, ref sendLength))
Console.WriteLine(Marshal.GetLastWin32Error());
Sergio
On Sat, Jun 11, 2016 at 3:43 PM, Jesse Nicholson<EMAIL_ADDRESS>
wrote:

@oasrog https://github.com/oasrog Try using just the regular send
function and if you get a failure, call Marshal.GetLastWin32Error() and
provide the returned error code here please.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TechnikEmpire/Divert.Net/issues/6#issuecomment-225382735,
or mute the thread
https://github.com/notifications/unsubscribe/ADn4T3aryau4Mn7aZaXUJLgexEdBP_h-ks5qKwG9gaJpZM4IzSV7
.

@oasrog Very interesting, perhaps you've found a legit bug! (as if that's a shock, haha). Let me look at this a little closer.

haha, well, let me know if I can help you!
Sergio
On Mon, Jun 13, 2016 at 9:51 AM, Jesse Nicholson<EMAIL_ADDRESS>wrote:

@oasrog https://github.com/oasrog Very interesting, perhaps you've
found a legit bug! (as if that's a shock, haha). Let me look at this a
little closer.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TechnikEmpire/Divert.Net/issues/6#issuecomment-225571705,
or mute the thread
https://github.com/notifications/unsubscribe/ADn4T0mS6Im0kRgdVcQTOIYLngB_R_jFks5qLVJFgaJpZM4IzSV7
.

Code looks fine at least.

I've never actually modified the packets, just re-routed them. However, I think that part of the issue might be that you need to get a copy of the actual packet payload, and then re-construct the packet after modifying the payload. One of the overloads provides this functionality in WinDivert and IIRC, that overload should be here as well. The reason for this is that the packet layout cannot be guaranteed to be in such a way that the trailing bits are actually payload bits.

@oasrog any update on this after my comments? It's impossible for me to accurately test because I don't have your entire test data. Let me know if my last comment and debugging nfo I suggested sheds any light. Thanks.

Jesse,
I haven´t been able to do further testing, but I will get back to you as
soon as I can.
Thank you for your help!
Sergio
On Sun, Jun 26, 2016 at 9:01 PM, Jesse Nicholson<EMAIL_ADDRESS>wrote:

@oasrog https://github.com/oasrog any update on this after my comments?
It's impossible for me to accurately test because I don't have your entire
test data. Let me know if my last comment and debugging nfo I suggested
sheds any light. Thanks.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TechnikEmpire/Divert.Net/issues/6#issuecomment-228631219,
or mute the thread
https://github.com/notifications/unsubscribe/ADn4Ty4pHEBFnNMx98rhUWv1wWRCiFJyks5qPxLUgaJpZM4IzSV7
.

@oasrog How'd this turn out?

Jesse,
I've abandoned the project so far, my current job is getting 110℅ of my
time.
I hope someday I can get some spare time to continue with other personal
projects.
El 25 ene. 2017 4:38 AM, "Jesse Nicholson"<EMAIL_ADDRESS>escribió:

@oasrog https://github.com/oasrog How'd this turn out?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/TechnikEmpire/Divert.Net/issues/6#issuecomment-275039523,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ADn4T6lXbAxMrQ1KwlTURsufggSaI_t4ks5rVvv8gaJpZM4IzSV7
.

@oasrog Alright I'm going to close this out.


[Glossary] : Add the definition of Group component.

there's already documentation for group https://reactnavigation.org/docs/group/


failed to  build caffe

hi, Xiong
There are some errors when run the script buid_all.sh.
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/tanh_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/normalize_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/hdf5_data_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/cudnn_pooling_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/inner_product_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/power_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/loss_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/eltwise_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/silence_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/roi_pooling_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/util/benchmark.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/util/math_functions.cpp.o] 错误 1
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp: In instantiation of ‘void caffe::SegDataLayer::DataLayerSetUp(const std::vector<caffe::Blob>&, const std::vector<caffe::Blob>&) [with Dtype = float]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:164:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:35:65: error: ‘const class caffe::TransformationParameter’ has no member named ‘stride’
const int stride = this->layer_param_.transform_param().stride();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:36:68: error: ‘class caffe::LayerParameter’ has no member named ‘seg_data_param’
const string& source = this->layer_param_.seg_data_param().source();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:37:72: error: ‘class caffe::LayerParameter’ has no member named ‘seg_data_param’
const string& root_dir = this->layer_param_.seg_data_param().root_dir();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:48:2: error: ‘class caffe::LayerParameter’ has no member named ‘seg_data_param’
if (this->layer_param_.seg_data_param().shuffle()){
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:64:4: error: ‘const class caffe::TransformationParameter’ has no member named ‘has_upper_size’
if (this->layer_param_.transform_param().has_upper_size())
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:66:88: error: ‘const class caffe::TransformationParameter’ has no member named ‘upper_size’
crop_height = std::min(crop_height, this->layer_param_.transform_param().upper_size());
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:67:86: error: ‘const class caffe::TransformationParameter’ has no member named ‘upper_size’
crop_width = std::min(crop_width, this->layer_param_.transform_param().upper_size());
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:69:67: error: ‘const class caffe::TransformationParameter’ has no member named ‘has_upper_width’
else if (this->layer_param_.transform_param().has_upper_height() && this->layer_param_.transform_param().has_upper_width())
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:69:67: error: ‘const class caffe::TransformationParameter’ has no member named ‘has_upper_height’
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:71:90: error: ‘const class caffe::TransformationParameter’ has no member named ‘upper_height’
crop_height = std::min(crop_height, this->layer_param_.transform_param().upper_height());
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:72:87: error: ‘const class caffe::TransformationParameter’ has no member named ‘upper_width’
crop_width = std::min(crop_width, this->layer_param_.transform_param().upper_width());
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp: In instantiation of ‘void caffe::SegDataLayer::InternalThreadEntry() [with Dtype = float]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:164:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:105:2: error: ‘class caffe::LayerParameter’ has no member named ‘seg_data_param’
if (this->layer_param_.seg_data_param().balance())
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:158:3: error: ‘class caffe::LayerParameter’ has no member named ‘seg_data_param’
if (this->layer_param_.seg_data_param().shuffle()) {
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp: In instantiation of ‘void caffe::SegDataLayer::DataLayerSetUp(const std::vector<caffe::Blob>&, const std::vector<caffe::Blob>&) [with Dtype = double]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:164:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:35:65: error: ‘const class caffe::TransformationParameter’ has no member named ‘stride’
const int stride = this->layer_param_.transform_param().stride();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:36:68: error: ‘class caffe::LayerParameter’ has no member named ‘seg_data_param’
const string& source = this->layer_param_.seg_data_param().source();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:37:72: error: ‘class caffe::LayerParameter’ has no member named ‘seg_data_param’
const string& root_dir = this->layer_param_.seg_data_param().root_dir();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:48:2: error: ‘class caffe::LayerParameter’ has no member named ‘seg_data_param’
if (this->layer_param_.seg_data_param().shuffle()){
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:64:4: error: ‘const class caffe::TransformationParameter’ has no member named ‘has_upper_size’
if (this->layer_param_.transform_param().has_upper_size())
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:66:88: error: ‘const class caffe::TransformationParameter’ has no member named ‘upper_size’
crop_height = std::min(crop_height, this->layer_param_.transform_param().upper_size());
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:67:86: error: ‘const class caffe::TransformationParameter’ has no member named ‘upper_size’
crop_width = std::min(crop_width, this->layer_param_.transform_param().upper_size());
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:69:67: error: ‘const class caffe::TransformationParameter’ has no member named ‘has_upper_width’
else if (this->layer_param_.transform_param().has_upper_height() && this->layer_param_.transform_param().has_upper_width())
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:69:67: error: ‘const class caffe::TransformationParameter’ has no member named ‘has_upper_height’
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:71:90: error: ‘const class caffe::TransformationParameter’ has no member named ‘upper_height’
crop_height = std::min(crop_height, this->layer_param_.transform_param().upper_height());
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:72:87: error: ‘const class caffe::TransformationParameter’ has no member named ‘upper_width’
crop_width = std::min(crop_width, this->layer_param_.transform_param().upper_width());
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp: In instantiation of ‘void caffe::SegDataLayer::InternalThreadEntry() [with Dtype = double]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:164:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:105:2: error: ‘class caffe::LayerParameter’ has no member named ‘seg_data_param’
if (this->layer_param_.seg_data_param().balance())
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/seg_data_layer.cpp:158:3: error: ‘class caffe::LayerParameter’ has no member named ‘seg_data_param’
if (this->layer_param_.seg_data_param().shuffle()) {
^
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/relu_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/threshold_layer.cpp.o] 错误 1
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp: In instantiation of ‘void caffe::BatchReductionLayer::LayerSetUp(const std::vector<caffe::Blob>&, const std::vector<caffe::Blob>&) [with Dtype = float]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:230:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:15:7: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
op_ = this->layer_param_.batch_reduction_param().reduction_param().operation();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:16:9: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
axis_ = bottom[0]->CanonicalAxisIndex(
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:20:71: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
int n_level = this->layer_param_.batch_reduction_param().level_size();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:22:8: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
pos_ = this->layer_param_.batch_reduction_param().pos();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:25:55: error: ‘class caffe::LayerParameter’ has no member named ‘mutable_batch_reduction_param’
this->layer_param_.mutable_batch_reduction_param()->add_level(1);
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:28:3: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
levels_.reserve(this->layer_param_.batch_reduction_param().level_size());
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:35:5: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
levels_.push_back(this->layer_param_.batch_reduction_param().level(i));
^
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/internal_thread.cpp.o] 错误 1
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/data_layer.cpp: In instantiation of ‘void caffe::DataLayer::InternalThreadEntry() [with Dtype = float]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/data_layer.cpp:149:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/data_layer.cpp:126:55: error: ‘const class caffe::DataParameter’ has no member named ‘shuffle’
if (this->layer_param_.data_param().shuffle() == true){
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp: In instantiation of ‘void caffe::BatchReductionLayer::Forward_cpu(const std::vector<caffe::Blob>&, const std::vector<caffe::Blob>&) [with Dtype = float]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:230:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:134:76: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
int k = this->layer_param_.batch_reduction_param().reduction_param().k();
^
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/infogain_loss_layer.cpp.o] 错误 1
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp: In instantiation of ‘void caffe::BatchReductionLayer::Backward_cpu(const std::vector<caffe::Blob>&, const std::vector&, const std::vector<caffe::Blob>&) [with Dtype = float]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:230:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:206:76: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
int k = this->layer_param_.batch_reduction_param().reduction_param().k();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp: In instantiation of ‘void caffe::BatchReductionLayer::LayerSetUp(const std::vector<caffe::Blob>&, const std::vector<caffe::Blob>&) [with Dtype = double]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:230:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:15:7: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
op_ = this->layer_param_.batch_reduction_param().reduction_param().operation();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:16:9: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
axis_ = bottom[0]->CanonicalAxisIndex(
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:20:71: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
int n_level = this->layer_param_.batch_reduction_param().level_size();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:22:8: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
pos_ = this->layer_param_.batch_reduction_param().pos();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:25:55: error: ‘class caffe::LayerParameter’ has no member named ‘mutable_batch_reduction_param’
this->layer_param_.mutable_batch_reduction_param()->add_level(1);
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:28:3: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
levels_.reserve(this->layer_param_.batch_reduction_param().level_size());
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:35:5: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
levels_.push_back(this->layer_param_.batch_reduction_param().level(i));
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp: In instantiation of ‘void caffe::BatchReductionLayer::Forward_cpu(const std::vector<caffe::Blob>&, const std::vector<caffe::Blob>&) [with Dtype = double]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:230:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:134:76: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
int k = this->layer_param_.batch_reduction_param().reduction_param().k();
^
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp: In instantiation of ‘void caffe::BatchReductionLayer::Backward_cpu(const std::vector<caffe::Blob>&, const std::vector&, const std::vector<caffe::Blob>&) [with Dtype = double]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:230:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/batch_reduction_layer.cpp:206:76: error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param’
int k = this->layer_param_.batch_reduction_param().reduction_param().k();
^
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/accuracy_layer.cpp.o] 错误 1
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/data_layer.cpp: In instantiation of ‘void caffe::DataLayer::InternalThreadEntry() [with Dtype = double]’:
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/data_layer.cpp:149:1:   required from here
/home/whm/HCC/temporal-segment-networks/lib/caffe-action/src/caffe/layers/data_layer.cpp:126:55: error: ‘const class caffe::DataParameter’ has no member named ‘shuffle’
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/split_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/cudnn_sigmoid_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/dummy_data_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/cudnn_softmax_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/seg_data_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/batch_reduction_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/image_data_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/data_layer.cpp.o] 错误 1
make[2]: *** [src/caffe/CMakeFiles/caffe.dir/layers/window_data_layer.cpp.o] 错误 1
make[1]: *** [src/caffe/CMakeFiles/caffe.dir/all] 错误 2
make: *** [all] 错误 2
Can anyone give me some help?

 error: ‘class caffe::LayerParameter’ has no member named ‘batch_reduction_param

are you using the correct version of Caffe we provided?

@770258506  did you konw how to do about this ?

请问一定要安装你们提供的caffe吗？

@770258506 请问一定要安装你们提供的caffe吗？


Verify Core contracts on CeloScan

Re-opening this issue because the core contracts are not verified on celoscan.xyz (for example
OdisPayments.sol).
The list of core contract addresses (implementation and proxy contracts) can be found here: https://dhutch-test.celo-networks-dev.org/mainnet

Closing this issue because it turns out that all OdisPayment was only not verified because the team used the following documentation during the process which doesn’t mention OdisPayments. All other core contracts are verified ✅


Added Queue Code

I added Queue code using Linked List.  It contain enqueue, dequeue and display function.

Thanks for your contribution @pragya644


AttributeError: 'list' object has no attribute 'lower'  preprocessor.preprocess_dataset when num_processes != None

OCTIS version: 1.11.0
Python version: 3.8.15
Operating System: 'posix'
Description - What I Did
I read in my own data and save it as .txt with one document per line. Then I define the preprocessing and execute it via preprocessor.preprocess_dataset. The error message is AttributeError: 'list' object has no attribute 'lower'. If I set no num_processes all is working.
The loop in simple_preprocessing_steps in combination with process_map breaks the documents into letters. See below

import os
import string
from octis.preprocessing.preprocessing import Preprocessing
import pandas as pd

docs = pd.read_csv('tweets.csv',lineterminator='\n')
docs['clean_tweets'].to_csv('documents.txt', header=None,  sep='\n', mode='w', encoding="utf-8")

preprocessor = Preprocessing( max_features=None,
                             remove_punctuation=True, punctuation=string.punctuation,
                             lemmatize=True, stopword_list='german',
                             min_chars=1, min_words_docs=0,  language= 'german', split = False, num_processes= 36, max_df= 0.9, min_df = 0.05)
# preprocess
dataset = preprocessor.preprocess_dataset(documents_path='documents.txt')

Traceback (most recent call last):
  File "/home/p/p_drec01/lda/preprocess_lda_test.py", line 40, in <module>
    dataset = preprocessor.preprocess_dataset(documents_path='/scratch/tmp/p_drec01/lda/octis_data/documents.txt')
  File "/home/p/p_drec01/miniconda3/envs/octis_env/lib/python3.10/site-packages/octis/preprocessing/preprocessing.py", line 171, in preprocess_dataset
    vocabulary = self.filter_words(docs)
  File "/home/p/p_drec01/miniconda3/envs/octis_env/lib/python3.10/site-packages/octis/preprocessing/preprocessing.py", line 290, in filter_words
    vectorizer.fit_transform(docs)
  File "/home/p/p_drec01/miniconda3/envs/octis_env/lib/python3.10/site-packages/sklearn/feature_extraction/text.py", line 1846, in fit_transform
    X = super().fit_transform(raw_documents)
  File "/home/p/p_drec01/miniconda3/envs/octis_env/lib/python3.10/site-packages/sklearn/feature_extraction/text.py", line 1202, in fit_transform
    vocabulary, X = self._count_vocab(raw_documents,
  File "/home/p/p_drec01/miniconda3/envs/octis_env/lib/python3.10/site-packages/sklearn/feature_extraction/text.py", line 1114, in _count_vocab
    for feature in analyze(doc):
  File "/home/p/p_drec01/miniconda3/envs/octis_env/lib/python3.10/site-packages/sklearn/feature_extraction/text.py", line 104, in _analyze
    doc = preprocessor(doc)
  File "/home/p/p_drec01/miniconda3/envs/octis_env/lib/python3.10/site-packages/sklearn/feature_extraction/text.py", line 69, in _preprocess
    doc = doc.lower()
AttributeError: 'list' object has no attribute 'lower'

 ##############
documents_path = 'documents.txt'
docs2 = [line.strip() for line in open(documents_path, 'r').readlines()]

def simple_preprocessing_steps( docs):
        tmp_docs = []
        for d in docs:
            print(d)

docs2 = process_map(simple_preprocessing_steps, docs2, max_workers=16, chunksize=1)

Ü
b
e
r

6
"

U
M
n

etc.

I have the same problem.
Python 3.10.11
OCTIS 1.12.1
Code:
preprocessor = Preprocessing(lowercase = True, vocabulary = None, max_features = None,
remove_punctuation = True, punctuation = string.punctuation,
lemmatize = True, language = 'portuguese', remove_numbers = True,
min_chars = 4, remove_stopwords_spacy = True, min_df = 0.1, max_df = 0.8, num_processes = 7)
AttributeError: 'list' object has no attribute 'lower'

I'm getting the same issue. The issue only persists if num_processes is not None or if split=True. Seems like these functions transform a list of strings (e.g., ['dog', 'cat']) to a list of a list of strings (e.g., [['d', 'o', g'], ['c', 'a', 't']])


Let IDs be strings as well

For example, I want usernames to be user IDs, like /users/iamale.

Hi Ale,
Thanks, it's a bug. I did a quick fix in v0.6.9, so:
{
  users: [ { id: 'iamale' } ]
}

should work now with /users/iamale.
However, new users will have a uuid generated id.
Do you need to customize newly created ids?

Sorry for not responding to this :(
I think it is fine now, thanks!

No worries :)


Unable to install PyGet on Debian and Mac OS X

Hello!
I've was trying PyGet but then it wouldn't work on my computer running on Debian 11.2.0 and Mac OS X 12.0 Monterey
Please help.

Oh wait. The documentation changed. It says that it only works on Windows...........


New functions version

Major Changes for Function directory (Summary)
Function module contains:

Function:
i. Now, proximal_conjugate is implemented based on proximal_conjugate and can be used for any
children classes
ii. new method for TranslatedFunction: centered_at
SumFunction: implements call and gradient method. No explicit formulas for convex_conj, proximal and proximal_conj
SumFunctionScalar: As above with additional convex_conj, proximal and proximal_conj
TranslateFunction: As above
ScaledFunction: As above
ConstantFunction
ZeroFunction

Check/Correct

L1Norm
L2NormSquared
KullbackLeibler

Additions

Rename Norm2Squares to LeastSquares
smooth MixedL21Norm: only call and gradient methods are implemented

Changes in other files

Add min/max for DataContainers here
Fix LinearOperatorMatrix direct/adjoint here and add test
here
Changes for docs here

For every module, add proper docs. But not ready yet!!!!
Update tests directory for the new changes.

closes #433

Great, thanks, I will have a look asap. But first, could you go through the file view
https://github.com/vais-ral/CCPi-Framework/pull/453/files
and double check and remove to a different branch anything unrelated/independent - for example I see ADMM_linearized. Thanks.

at any rate Jenkins fails, so we need to fix the build first.

Build works now.

work is being carried out in #471


Rust analyzer cannot find builders

I have tried the reply_to_message_updates example with VS Code and rust-analyzer. Unfortunately, I noticed that rust analyzer was unable to find any imported api_params builder generated by the derive_builder macro. Hence, no form of intellisense is available, neither when typing the import statement nor when using of the builder. Importing the original structs for the api parameters works as expected.
Having not worked with macros, I was unable to identify the cause of this problem. Do you have an idea why rust_analyzer struggles with the macro? If so, do you no a workaround or a tracking issue here on Github?
P.S. Thank you for the nice work and this great project 👍🏻

Not sure where the problem is for you, but rust_analyzer in VSCode works fine for me.

Mmh, I guess it is not a problem with your crate. If I use the derive_builder crate and their derive macro, code completion also does not work in a strange way. It is able to tell me, that invoking a setter method without an argument is wrong, but it can neither infer the type nor provide code completion.
Just out of curiosity, could you tell me which version of rust and rust-analyzer you have installed?
Since it is clearly not related to your crate, I will close the issue. Nevertheless, thanks for your response 👍🏻

just to make sure, not my crate, I only contributed and saw the issue :innocent:
I am running Arch Linux with rust-analyzer (20220228-1) and rustup, which installed and uses the current stable (1.59.0).
The only relevant config in VSCode I see is my change of the rust-analyzer serverPath to the one of the host binary:
https://github.com/EdJoPaTo/LinuxScripts/blob/d7d518cd0c7c7d5eefcffdc844502abc318ae88a/configs/vscode-settings.json#L20
That way the package manager updates the version when I update everything and I do not need to always wait for the update of the VSCode internal thingy to complete. But its just a different place of the same binary. It shouldnt interfere with the autocompletion / intellisense. Not sure what is happening for you there.

@EdJoPaTo Thank you for looking into this!

just to make sure, not my crate, I only contributed and saw the issue 😇

don't be modest. we built it together :]


Fix dropped closure error in Drop impls of IntoStream and IntoAsyncRead

Closes #24.

Thanks for the excellent bug report and fix! I've confirmed the bug on my end, and validated your fix.
I'm going to add a unit test for this, so this nasty edge case doesn't pop up again. 😅


Critical Error: Vue-Router error when navigating from a Angular app

Demonstration
When going from a Vue app to an Angular app, and then returning to the root i get the error:

Complete Demonstration

The error can be reproduced using this repository https://github.com/brunomartinspro/single-spa (the README includes instructions for reproducing this)
Possible Vue-Router fix
The possible correction for this behavior was created on https://github.com/vuejs/router/pull/1502

Expected Behavior
I can navigate back to the root from another angular app
Actual Behavior
I get an error in the Vue-Router, and it prevents me from returning to the root
Thank you!

I'm not knowledgeable in Vue.js and how to debug/fix it.


End user confusion copying examples elsewhere

Problem:
As a user I don't fully understand how to write smart contracts in Rust. So I clone this repo and build the examples and am happy with them. I want to copy one of the example folders out of the cloned repo and into my Documents folder. I plan to modify the example and use it as a base. When I try … cargo build I get an error and am confused.
Reason:
The Cargo.toml file uses relative paths for the near-bindgen dependency.
near-bindgen = { path = "../../near-bindgen"}
Solution:
Change examples to use a version instead.
Example:
near-bindgen = "^0.4"
Possible Downside:
This may be another thing for near-bindgen core developers to remember.

Looks like there are other paths necessary to build.

Perhaps this is a slightly bigger effort than I thought, but coming from my side as a DevX advocate, I believe users will experience extra hurdles with the relative paths we currently have.

This contract demonstrates the factory example -- deploying one contract with another contract. To be able to deploy another contract it needs to know its location in the file system.

We need to have a general discussion on whether we want Rust examples to be in one place or not.  @evgenykuzyakov and me think that we benefit from having Rust examples next to near-bindgen because then we can use it for CI.
We were planning to have a dedicated repository with all smart contract examples that would include full-stack dApps, and lots of bare contracts (like exchanges and tokens). The plan was to have a CI on near-bindgen repo that would pull these examples and try to test them using the commit in the PR of the near-bindgen, to make sure near-bindgen changes are not breaking examples. @janedegtiareva what is the status on that?
Also CC @damons , @bowenwang1996, @ailisp  since it is a part of the release process.

We were planning to have a dedicated repository with all smart contract examples that would include full-stack dApps

Okay, I'd like that a lot. I am in the middle of writing a tutorial on Rust and wanting to make sure I should send end users to those examples. I will make sure to explain that they're supposed to be run in that repo for now.

I think we can just use mixed dependency:
near-bindgen = { path = "../../near-bindgen", version = "0.4.2"}

I think we can just use mixed dependency:
near-bindgen = { path = "../../near-bindgen", version = "0.4.2"}

Yeah, I tried that before. Seems like that should work! But it doesn't.  sad 🐼

Going to close this. DevX is moving all the relevant examples into standalone repos. This particular example lives here:
https://github.com/near-examples/rust-high-level-cross-contract
This issue about using relative paths for crates no longer is important, as we'll be using the repo just mentioned instead.


Link-style post links to domain rather than full link

Steps to reproduce:

Choose the "link" icon when writing a post.

Paste "https://hackerpaste.hns.siasky.net"

Resulting post links to https://siasky.net rather than the full domain

Fixed in latest beta


VS load issues

This can be closed as it will be merged in with this PR: https://github.com/xamarin/Xamarin.Auth/pull/192


sr-iov error after Mellanox firmware update and udev rename

I did a firmware update for the Mellanox Connect-X5 on one of my node.
udev change the name from p2p1 and p2p2 to enpXXXf0 and enpXXXf1
I manage to configure the CNI sriov to use the enpXXXf0 and enpXXXf1 device but I was facing errors in device list (mixing of unknown devices (the one used) and p2p1_xx/p2p2_xx devices)
So I add a udev rule to rename the interface back to what they were p2p1 and p2p2. I reconfigure back all files. The SR-IOV plugin seems to use the p2pX_xx device now.
My SR-IOV pod failed to init on the node now.
Normal   Scheduled               3m33s                default-scheduler  Successfully assigned tl-bpe/tl-1-28-3-0-probe-7c6d4c9db6-5chdw to worker1
  Normal   AddedInterface          114s                 multus             Add eth0 [<IP_ADDRESS>/32]
  Warning  FailedCreatePodSandBox  113s                 kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "76cfd533f19cb74d54ec8788b8626617570218309c6b4b9150e6f3176d19f923" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to set up pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: [tl-bpe/tl-1-28-3-0-probe-7c6d4c9db6-5chdw:sriov-network-in]: error adding container to network "sriov-network-in": failed to set up IPAM plugin type "whereabouts" from the device "p2p1": Error at storage engine: Could not allocate IP in range: ip: <IP_ADDRESS> / - <IP_ADDRESS> / range: net.IPNet{IP:net.IP{0xac, 0x1d, 0x2c, 0x0}, Mask:net.IPMask{0xff, 0xff, 0xff, 0x0}}, failed to clean up sandbox container "76cfd533f19cb74d54ec8788b8626617570218309c6b4b9150e6f3176d19f923" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to teardown pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 76cfd533f19cb74d54ec8788b8626617570218309c6b4b9150e6f3176d19f923-net2 / delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 76cfd533f19cb74d54ec8788b8626617570218309c6b4b9150e6f3176d19f923-net1]
  Normal   AddedInterface          112s                 multus             Add eth0 [<IP_ADDRESS>/32]
  Warning  FailedCreatePodSandBox  112s                 kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "b8c0f217bf9917be2510372a5a02c095924a048012a1d50c51cf9f91e803e84d" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to set up pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: [tl-bpe/tl-1-28-3-0-probe-7c6d4c9db6-5chdw:sriov-network-in]: error adding container to network "sriov-network-in": failed to set up IPAM plugin type "whereabouts" from the device "p2p1": Error at storage engine: Could not allocate IP in range: ip: <IP_ADDRESS> / - <IP_ADDRESS> / range: net.IPNet{IP:net.IP{0xac, 0x1d, 0x2c, 0x0}, Mask:net.IPMask{0xff, 0xff, 0xff, 0x0}}, failed to clean up sandbox container "b8c0f217bf9917be2510372a5a02c095924a048012a1d50c51cf9f91e803e84d" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to teardown pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name b8c0f217bf9917be2510372a5a02c095924a048012a1d50c51cf9f91e803e84d-net2 / delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name b8c0f217bf9917be2510372a5a02c095924a048012a1d50c51cf9f91e803e84d-net1]
  Normal   AddedInterface          110s                 multus             Add eth0 [<IP_ADDRESS>/32]
  Warning  FailedCreatePodSandBox  110s                 kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "65236beca589589f28de23ac279d73e3533ba9c822e6001f0260e32016b8b4a7" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to set up pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: [tl-bpe/tl-1-28-3-0-probe-7c6d4c9db6-5chdw:sriov-network-in]: error adding container to network "sriov-network-in": failed to set up IPAM plugin type "whereabouts" from the device "p2p1": Error at storage engine: Could not allocate IP in range: ip: <IP_ADDRESS> / - <IP_ADDRESS> / range: net.IPNet{IP:net.IP{0xac, 0x1d, 0x2c, 0x0}, Mask:net.IPMask{0xff, 0xff, 0xff, 0x0}}, failed to clean up sandbox container "65236beca589589f28de23ac279d73e3533ba9c822e6001f0260e32016b8b4a7" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to teardown pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 65236beca589589f28de23ac279d73e3533ba9c822e6001f0260e32016b8b4a7-net2 / delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 65236beca589589f28de23ac279d73e3533ba9c822e6001f0260e32016b8b4a7-net1]
  Warning  FailedCreatePodSandBox  108s                 kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "912e05e26df1ab9dc8548b314c91ffb2e617f38df824722eb61007ff6eded0d5" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to set up pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: [tl-bpe/tl-1-28-3-0-probe-7c6d4c9db6-5chdw:sriov-network-in]: error adding container to network "sriov-network-in": failed to set up IPAM plugin type "whereabouts" from the device "p2p1": Error at storage engine: Could not allocate IP in range: ip: <IP_ADDRESS> / - <IP_ADDRESS> / range: net.IPNet{IP:net.IP{0xac, 0x1d, 0x2c, 0x0}, Mask:net.IPMask{0xff, 0xff, 0xff, 0x0}}, failed to clean up sandbox container "912e05e26df1ab9dc8548b314c91ffb2e617f38df824722eb61007ff6eded0d5" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to teardown pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 912e05e26df1ab9dc8548b314c91ffb2e617f38df824722eb61007ff6eded0d5-net2 / delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 912e05e26df1ab9dc8548b314c91ffb2e617f38df824722eb61007ff6eded0d5-net1]
  Normal   AddedInterface          108s                 multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          106s                 multus             Add eth0 [<IP_ADDRESS>/32]
  Warning  FailedCreatePodSandBox  106s                 kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "acd7982b478f927b13c4af499e78991f259c5b9203a412e0f220f0f8f44176c0" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to set up pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: [tl-bpe/tl-1-28-3-0-probe-7c6d4c9db6-5chdw:sriov-network-in]: error adding container to network "sriov-network-in": failed to set up IPAM plugin type "whereabouts" from the device "p2p1": Error at storage engine: Could not allocate IP in range: ip: <IP_ADDRESS> / - <IP_ADDRESS> / range: net.IPNet{IP:net.IP{0xac, 0x1d, 0x2c, 0x0}, Mask:net.IPMask{0xff, 0xff, 0xff, 0x0}}, failed to clean up sandbox container "acd7982b478f927b13c4af499e78991f259c5b9203a412e0f220f0f8f44176c0" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to teardown pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name acd7982b478f927b13c4af499e78991f259c5b9203a412e0f220f0f8f44176c0-net2 / delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name acd7982b478f927b13c4af499e78991f259c5b9203a412e0f220f0f8f44176c0-net1]
  Normal   AddedInterface          104s                 multus             Add eth0 [<IP_ADDRESS>/32]
  Warning  FailedCreatePodSandBox  104s                 kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "e6eb8c4bd8feb958525ccd616591791d7150ebf1aaee1be95caa0b4be11d4f52" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to set up pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: [tl-bpe/tl-1-28-3-0-probe-7c6d4c9db6-5chdw:sriov-network-in]: error adding container to network "sriov-network-in": failed to set up IPAM plugin type "whereabouts" from the device "p2p1": Error at storage engine: Could not allocate IP in range: ip: <IP_ADDRESS> / - <IP_ADDRESS> / range: net.IPNet{IP:net.IP{0xac, 0x1d, 0x2c, 0x0}, Mask:net.IPMask{0xff, 0xff, 0xff, 0x0}}, failed to clean up sandbox container "e6eb8c4bd8feb958525ccd616591791d7150ebf1aaee1be95caa0b4be11d4f52" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to teardown pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name e6eb8c4bd8feb958525ccd616591791d7150ebf1aaee1be95caa0b4be11d4f52-net2 / delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name e6eb8c4bd8feb958525ccd616591791d7150ebf1aaee1be95caa0b4be11d4f52-net1]
  Warning  FailedCreatePodSandBox  102s                 kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "a4cb7e6b000a686ecbf5a57d407f626f60e613971ced8d0a9d55a4b30ae9167e" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to set up pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: [tl-bpe/tl-1-28-3-0-probe-7c6d4c9db6-5chdw:sriov-network-in]: error adding container to network "sriov-network-in": failed to set up IPAM plugin type "whereabouts" from the device "p2p1": Error at storage engine: Could not allocate IP in range: ip: <IP_ADDRESS> / - <IP_ADDRESS> / range: net.IPNet{IP:net.IP{0xac, 0x1d, 0x2c, 0x0}, Mask:net.IPMask{0xff, 0xff, 0xff, 0x0}}, failed to clean up sandbox container "a4cb7e6b000a686ecbf5a57d407f626f60e613971ced8d0a9d55a4b30ae9167e" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to teardown pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name a4cb7e6b000a686ecbf5a57d407f626f60e613971ced8d0a9d55a4b30ae9167e-net2 / delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name a4cb7e6b000a686ecbf5a57d407f626f60e613971ced8d0a9d55a4b30ae9167e-net1]
  Normal   AddedInterface          102s                 multus             Add eth0 [<IP_ADDRESS>/32]
  Warning  FailedCreatePodSandBox  100s                 kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "32c94324e3e5aa8e7f1dc0041e6c95a63afad127586a00873e1f128efe64eda8" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to set up pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: [tl-bpe/tl-1-28-3-0-probe-7c6d4c9db6-5chdw:sriov-network-in]: error adding container to network "sriov-network-in": failed to set up IPAM plugin type "whereabouts" from the device "p2p1": Error at storage engine: Could not allocate IP in range: ip: <IP_ADDRESS> / - <IP_ADDRESS> / range: net.IPNet{IP:net.IP{0xac, 0x1d, 0x2c, 0x0}, Mask:net.IPMask{0xff, 0xff, 0xff, 0x0}}, failed to clean up sandbox container "32c94324e3e5aa8e7f1dc0041e6c95a63afad127586a00873e1f128efe64eda8" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to teardown pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 32c94324e3e5aa8e7f1dc0041e6c95a63afad127586a00873e1f128efe64eda8-net2 / delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 32c94324e3e5aa8e7f1dc0041e6c95a63afad127586a00873e1f128efe64eda8-net1]
  Normal   AddedInterface          100s                 multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          98s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Warning  FailedCreatePodSandBox  98s                  kubelet            Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "0daa2c3730dbad8db3cf7af2fbbebb6bdf4f420cc30bf5c549c5c11809dd9eab" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to set up pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: [tl-bpe/tl-1-28-3-0-probe-7c6d4c9db6-5chdw:sriov-network-in]: error adding container to network "sriov-network-in": failed to set up IPAM plugin type "whereabouts" from the device "p2p1": Error at storage engine: Could not allocate IP in range: ip: <IP_ADDRESS> / - <IP_ADDRESS> / range: net.IPNet{IP:net.IP{0xac, 0x1d, 0x2c, 0x0}, Mask:net.IPMask{0xff, 0xff, 0xff, 0x0}}, failed to clean up sandbox container "0daa2c3730dbad8db3cf7af2fbbebb6bdf4f420cc30bf5c549c5c11809dd9eab" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to teardown pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 0daa2c3730dbad8db3cf7af2fbbebb6bdf4f420cc30bf5c549c5c11809dd9eab-net2 / delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 0daa2c3730dbad8db3cf7af2fbbebb6bdf4f420cc30bf5c549c5c11809dd9eab-net1]
  Normal   AddedInterface          96s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          94s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          92s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   SandboxChanged          91s (x12 over 113s)  kubelet            Pod sandbox changed, it will be killed and re-created.
  Normal   AddedInterface          90s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Warning  FailedCreatePodSandBox  89s (x4 over 96s)    kubelet            (combined from similar events): Failed to create pod sandbox: rpc error: code = Unknown desc = [failed to set up sandbox container "0d4a29ccc9716c440c7cb3946e5b323624a5ef6184e700fbd134a0f9b4bc0ef6" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to set up pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: [tl-bpe/tl-1-28-3-0-probe-7c6d4c9db6-5chdw:sriov-network-in]: error adding container to network "sriov-network-in": failed to set up IPAM plugin type "whereabouts" from the device "p2p1": Error at storage engine: Could not allocate IP in range: ip: <IP_ADDRESS> / - <IP_ADDRESS> / range: net.IPNet{IP:net.IP{0xac, 0x1d, 0x2c, 0x0}, Mask:net.IPMask{0xff, 0xff, 0xff, 0x0}}, failed to clean up sandbox container "0d4a29ccc9716c440c7cb3946e5b323624a5ef6184e700fbd134a0f9b4bc0ef6" network for pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw": networkPlugin cni failed to teardown pod "tl-1-28-3-0-probe-7c6d4c9db6-5chdw_tl-bpe" network: delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 0d4a29ccc9716c440c7cb3946e5b323624a5ef6184e700fbd134a0f9b4bc0ef6-net2 / delegateDel: error invoking DelegateDel - "sriov": error in getting result from DelNetwork: error reading cached NetConf in /var/lib/cni/sriov with name 0d4a29ccc9716c440c7cb3946e5b323624a5ef6184e700fbd134a0f9b4bc0ef6-net1]
  Normal   AddedInterface          88s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          86s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          84s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          82s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          80s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          78s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          76s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          74s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          72s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          70s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          68s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          66s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          64s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          61s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          59s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          57s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          55s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          53s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          51s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          49s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          47s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          45s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          43s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          41s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          39s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          37s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          35s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          33s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          31s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          29s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          27s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          25s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          23s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          21s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          19s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          17s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          15s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          13s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          11s                  multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          9s                   multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          7s                   multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          5s                   multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          3s                   multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          0s                   multus             Add eth0 [<IP_ADDRESS>/32]
  Normal   AddedInterface          0s                   multus             Add eth0 [<IP_ADDRESS>/32]

I had check the /var/lib/cni/sriov and in most of file I found a reference to "master": enpXXf0 and enpXXf1.
I deleted these files. It did not solve my problems. Perhaps, I made it worst.
I'm trying to find a way to resume and recreate missing /var/lib/cni/sriov/***-net1 like this one
{"cniVersion":"0.3.1","name":"sriov-network-in","type":"sriov","ipam":{"type":"whereabouts"},"dns":{},"OrigVfState":{"HostIFName":"p2p1_26","SpoofChk":false,"AdminMAC":"00:00:00:00:00:00","EffectiveMAC":"","Vlan":0,"VlanQoS":0,"MinTxRate":0,"MaxTxRate":0,"LinkState":0},"DPDKMode":false,"Master":"p2p1","MAC":"","vlan":null,"vlanQoS":null,"deviceID":"0000:c4:03.4","VFID":26,"ContIFNames":"net1","min_tx_rate":null,"max_tx_rate":null,"spoofchk":"off","trust":"on","runtimeConfig":{}}

Does it exist a way to generate this file without pods ? Do I have to delete all files in order to return to a stable situation ?
What is the correct status when node is clean and virgin of any sriov pods ?

I fully reinstalled the node (scaledown, reinstall OS, ..., scaleup) and it did not solve the issue. I still have the same error in logs.


Vector Math MoveTowards Support

Added vector math MoveTowards and MoveTowardsToRef functions

MoveTowards is basically a port of Vector.MoveTowards from Unity... I basically did a verbatim port from unity vector classes

If we don’t want MoveTowards in our Babylon vector classes, that’s kool too... I can always add them in my toolkit utilities. I just come across a lot using different unity mechanics for third person movement. Thought others might like access to such vector movement function

Also the maxDelta distance  description is a copy of Scaler.MoveTowards param description

Also the maxDelta distance description is a copy of Scaler.MoveTowards param description

This is the Unity documentation - https://docs.unity3d.com/ScriptReference/Vector3.MoveTowards.html . Speed is being used in the examples to calculate the step, but the variable itself is not speed

If we don’t want MoveTowards in our Babylon vector classes, that’s kool too...

Totally not what we mean. I hope it didn't come out this way. What we are saying is this - vector.math is imported everywhere, let's keep it as small as possible.
My general question was this - why not expand the lerp function with maxDistance? Defining maxDistance as MAX_NUMBER if not provided?
Personally I don't think MoveTowards is a perfect name for this function. Move indicates an action on an object. A mesh, a node. This is the mathematical computation of a future movement. But naming is always personal

I definitely see your point. And keeping it small is a priority. I just copied MoveTowards as is from unity so it can be used the exact same way you would unity... so you could literally follow one the unity third person controller examples... verbatim.
With that being said, I’m game for renaming , or moving somewhere that is not everywhere.
Sorry if it sounds like I’m bitching bout it. Not my intent 😊

I just copied MoveTowards as is from unity

I am not sure their open source license allows you to do that.

Well ported... created Babylon js code using Babylon js classes that do the same thing

Just went over the code again - what is the difference between this and
const distance = Vector3.Distance(start, end);
Vector3.Lerp(start, end, Math.min(distance, maxDistance));

So does that mean no go on this pull request ?

Oh sorry I thought we closed on that :) (check last answer from Raanan)


Remove code coverage

TBR

cc @rafael-atticlabs, @kalman

done
On Mon, Apr 17, 2017 at 6:11 PM, Ben Kalman<EMAIL_ADDRESS>wrote:

@kalman commented on this pull request.
In tools/run_pr_builder.sh
https://github.com/attic-labs/noms/pull/3395#discussion_r111853986:

@@ -17,18 +17,6 @@ node --version

go list is expensive, only do it once.
GO_LIST="$(go list ./... | grep -v /vendor/ | grep -v /samples/js/)"
p.s. you can also remove the node --version above.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/attic-labs/noms/pull/3395#pullrequestreview-33124690,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AA0CBA54ihIBpBHK7u7RsxJl8YXdYxN_ks5rxA3RgaJpZM4M_v1H
.