Fixed
Status Update
Comments
se...@google.com <se...@google.com> #2
Heres the other logs if the previous log isnt detailed
yb...@google.com <yb...@google.com> #3
Im trying to open the page again using my other project (cgdx-1132485) using Microsoft Edge Version 127.0.2651.98 (Official build) (64-bit) with Windows 11 23H2 Build 22631.3880.
But maybe this helps (Edit: even though if the error said 'Too Many Request', im just opening it normally without reopen the page many times)
VM1948 m=hfcr:34
POSThttps://accounts.google.com/RotateCookies 429 (Too Many Requests)
db @ VM1948 m=hfcr:34
fb @ VM1948 m=hfcr:35
(anonymous) @ VM1948 m=hfcr:33
setTimeout
(anonymous) @ VM1948 m=hfcr:33
$a @ VM1948 m=hfcr:33
e @ VM1948 m=hfcr:32
(anonymous) @ VM1948 m=hfcr:32
setTimeout
Xa.start @ VM1948 m=hfcr:32
gb @ VM1948 m=hfcr:36
(anonymous) @ VM1949 RotateCookiesPage:1
But maybe this helps (Edit: even though if the error said 'Too Many Request', im just opening it normally without reopen the page many times)
VM1948 m=hfcr:34
POST
db @ VM1948 m=hfcr:34
fb @ VM1948 m=hfcr:35
(anonymous) @ VM1948 m=hfcr:33
setTimeout
(anonymous) @ VM1948 m=hfcr:33
$a @ VM1948 m=hfcr:33
e @ VM1948 m=hfcr:32
(anonymous) @ VM1948 m=hfcr:32
setTimeout
Xa.start @ VM1948 m=hfcr:32
gb @ VM1948 m=hfcr:36
(anonymous) @ VM1949 RotateCookiesPage:1
yb...@google.com <yb...@google.com> #4
I Had same issue with my Laravel project that work in IDX Project. Im using IDX Laravel Template for this
yb...@google.com <yb...@google.com> #5
It seems that everyone is struggling with this issue? (Because I see the viewer count at 60+) I hope that this issue can be fixed ASAP
da...@gmail.com <da...@gmail.com> #6
i'm also experiencing this issue for about a week now in one of my workspace
yb...@google.com <yb...@google.com> #7
Automated by Blunderbuss job monospace-web-ide-autoassigner for config bug_blunderbuss_config for component 1379083.
ap...@google.com <ap...@google.com> #8
Same issue for since morning. Been trying to get access this whole time but to no avail.
Description
Version used: 2.2.0-alpha01
Devices/Android versions reproduced on: Android 9
I'm having some random crashes due to CoroutineLiveData
```
Fatal Exception: java.lang.IllegalArgumentException: This source was already added with the different observer
at androidx.lifecycle.MediatorLiveData.addSource + 89(MediatorLiveData.java:89)
at androidx.lifecycle.CoroutineLiveDataKt.addDisposableSource + 102(CoroutineLiveDataKt.java:102)
at androidx.lifecycle.CoroutineLiveData.emitSource$lifecycle_livedata_ktx_release + 200(CoroutineLiveData.java:200)
at androidx.lifecycle.LiveDataScopeImpl$emitSource$2.invokeSuspend + 89(LiveDataScopeImpl.java:89)
at androidx.lifecycle.LiveDataScopeImpl$emitSource$2.invoke(LiveDataScopeImpl.java:11)
at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn + 91(UndispatchedKt.java:91)
at kotlinx.coroutines.BuildersKt__Builders_commonKt.withContext + 156(BuildersKt__Builders_commonKt.java:156)
at kotlinx.coroutines.BuildersKt.withContext + 1(BuildersKt.java:1)
at androidx.lifecycle.LiveDataScopeImpl.emitSource + 88(LiveDataScopeImpl.java:88)
at com.geekorum.ttrss.articles_list.FeedsViewModel$refreshed$1.invokeSuspend + 90(FeedsViewModel.java:90)
at com.geekorum.ttrss.articles_list.FeedsViewModel$refreshed$1.invoke(FeedsViewModel.java:8)
at androidx.lifecycle.BlockRunner$maybeRun$1.invokeSuspend + 147(BlockRunner.java:147)
at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith + 33(BaseContinuationImpl.java:33)
at kotlinx.coroutines.DispatchedTask.run + 241(DispatchedTask.java:241)
at android.os.Handler.handleCallback + 873(Handler.java:873)
at android.os.Handler.dispatchMessage + 99(Handler.java:99)
at android.os.Looper.loop + 193(Looper.java:193)
at android.app.ActivityThread.main + 6898(ActivityThread.java:6898)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run + 537(RuntimeInit.java:537)
at com.android.internal.os.ZygoteInit.main + 858(ZygoteInit.java:858)
```
From what I understand of CoroutineLiveData source code, when calling `LiveDataScope.emitSource()` the previous source is removed before adding the new one on MediatorLiveData.
```
@MainThread
internal fun emitSource(source: LiveData<T>): DisposableHandle {
clearSource()
val newSource = addDisposableSource(source)
emittedSource = newSource
return newSource
}
```
However the removing is done by launching a new coroutine
```
internal fun <T> MediatorLiveData<T>.addDisposableSource(
source: LiveData<T>
): DisposableHandle {
val disposed = AtomicBoolean(false)
addSource(source) {
if (!disposed.get()) {
value = it
} else {
removeSource(source)
}
}
return object : DisposableHandle {
override fun dispose() {
if (disposed.compareAndSet(false, true)) {
CoroutineScope(Dispatchers.Main).launch {
removeSource(source)
}
}
}
}
}
```
So there is no guarantee that `MediatorLiveData.addSource()` will be called after the removing coroutine is executed. This leads to the IllegalArgumentException in `MediatorLiveData.addSource()`
```
@MainThread
public <S> void addSource(@NonNull LiveData<S> source, @NonNull Observer<? super S> onChanged) {
Source<S> e = new Source<>(source, onChanged);
Source<?> existing = mSources.putIfAbsent(source, e);
if (existing != null && existing.mObserver != onChanged) {
throw new IllegalArgumentException(
"This source was already added with the different observer");
}
if (existing != null) {
return;
}
if (hasActiveObservers()) {
e.plug();
}
}
```