MonacoEditor: Payara throws ClassNotFoundException on deployment

Describe the bug
According to the documentation for CKEditor, PDF Exporter and InputPhone I assume that the resources for MonacoEditor are optional and thus dont't have to be included in Maven configuration. But that results in a ClassNotFoundException during deployment on Payara:
 java.lang.TypeNotPresentException: Type org.primefaces.extensions.model.monacoeditor.EditorOptions not present
	at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117)
	at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
	at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
	at sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68)
	at sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138)
	at sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
	at sun.reflect.generics.repository.ClassRepository.getSuperclass(ClassRepository.java:90)
	at java.lang.Class.getGenericSuperclass(Class.java:777)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.discoverFromClass(HierarchyDiscovery.java:139)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.discoverTypes(HierarchyDiscovery.java:132)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.discoverFromClass(HierarchyDiscovery.java:139)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.discoverTypes(HierarchyDiscovery.java:113)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.<init>(HierarchyDiscovery.java:94)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.<init>(HierarchyDiscovery.java:87)
	at org.jboss.weld.annotated.enhanced.TypeClosureLazyValueHolder.computeValue(TypeClosureLazyValueHolder.java:41)
	at org.jboss.weld.annotated.enhanced.TypeClosureLazyValueHolder.computeValue(TypeClosureLazyValueHolder.java:31)
	at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:46)
	at org.jboss.weld.annotated.slim.backed.BackedAnnotated.getTypeClosure(BackedAnnotated.java:27)
	at org.jboss.weld.annotated.AnnotatedTypeValidator.validateAnnotated(AnnotatedTypeValidator.java:44)
	at org.jboss.weld.annotated.AnnotatedTypeValidator.validateAnnotatedType(AnnotatedTypeValidator.java:62)
	at org.jboss.weld.manager.BeanManagerImpl.getInjectionTargetFactory(BeanManagerImpl.java:1503)
	at org.jboss.weld.manager.BeanManagerImpl.createInjectionTarget(BeanManagerImpl.java:1019)
	at org.glassfish.weld.services.JCDIServiceImpl.injectManagedObject(JCDIServiceImpl.java:352)
	at org.glassfish.faces.integration.GlassFishInjectionProvider.inject(GlassFishInjectionProvider.java:203)
	at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:233)
	at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:199)
	at com.sun.faces.config.processor.RenderKitConfigProcessor.addRenderers(RenderKitConfigProcessor.java:291)
	at com.sun.faces.config.processor.RenderKitConfigProcessor.process(RenderKitConfigProcessor.java:167)
	at com.sun.faces.config.ConfigManager.lambda$initialize$1(ConfigManager.java:341)
	at java.util.Iterator.forEachRemaining(Iterator.java:116)
	at java.util.Spliterators$IteratorSpliterator.forEachRemaining(Spliterators.java:1801)
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
	at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:318)
	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:206)
	at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:5178)
	at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:681)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:5756)
	at com.sun.enterprise.web.WebModule.start(WebModule.java:619)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:958)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:941)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:694)
	at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1851)
	at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1603)
	at com.sun.enterprise.web.WebApplication.start(WebApplication.java:108)
	at org.glassfish.internal.data.EngineRef.start(EngineRef.java:123)
	at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:293)
	at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:364)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.initialize(ApplicationLifecycle.java:623)
	at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:580)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:556)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:552)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:360)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:551)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:582)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$3.run(CommandRunnerImpl.java:574)
	at java.security.AccessController.doPrivileged(Native Method)
	at javax.security.auth.Subject.doAs(Subject.java:360)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:573)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1497)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1300(CommandRunnerImpl.java:120)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1879)
	at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1755)
	at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:604)
	at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:256)
	at org.glassfish.grizzly.http.server.StaticHttpHandlerBase.service(StaticHttpHandlerBase.java:166)
	at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:520)
	at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:217)
	at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:182)
	at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:156)
	at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:218)
	at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:95)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:260)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:177)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:109)
	at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:88)
	at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:53)
	at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:524)
	at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:89)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:94)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:33)
	at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:114)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:569)
	at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:549)
	at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.ClassNotFoundException: org.primefaces.extensions.model.monacoeditor.EditorOptions
	at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1787)
	at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1628)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Class.java:348)
	at sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
	... 84 more

|#]
Running on PrimeFaces 11.0.0|#]
Running on PrimeFaces Extensions 11.0.1|#]`
This results in strange behavior, e.g. ignored input field events in an overlay panel.
Reproducer
OverlayPanel.zip
Environment:

Payara 5.2021.7 Community Edition
PF Version: 11.0.0
PF-Extensions Version: 11.0.1
JSF + version: Mojarra 2.3.14.payara-p2
Affected browsers: ALL

To Reproduce
Steps to reproduce the behavior:

Compile and deploy (on Payara) the reproducer
See error in log
Start devtools in browser
Click on filter button and enter a text -> no Ajax updates going to be sent

Expected behavior
No error on deployment, application works as expected.

You'll need to add
        <dependency>
            <groupId>org.primefaces.extensions</groupId>
            <artifactId>resources-monacoeditor</artifactId>
        </dependency>

I guess the documentation could be improved on that.

CC @blutorange

Yeah if Payara is scanning classes like that we should move as much of the Java code we can to the Monaco Resources JAR

Try 11.0.1

We could also make resources-monacoeditor non-optional. For CKEditor I believe it's a separate (and optional module) due to the license. But for Monaco editor it's just a separate module for internal structuring, so there's probably not much of a reason not to include it?
https://github.com/primefaces-extensions/primefaces-extensions/blob/master/core/pom.xml#L730

I use 11.0.1. Because I had trouble with 11.0.0 and OmniFaces 3.13.

We separate it also to make the JAR less huge for people that don't need Monaco it reduces the main JAR size with all that Monaco JS significantly.

Monaco is a 3MB JAR.

I will take this ticket and refactor for 11.0.2

I gotta think about this one some more.  CKEDitor is different because it doesn't import any classes.  MonacoEditor depends on some autogenerated classes from the resources JAR that is what is causing this class load issue.

@blutorange Is it possible to add interfaces to the autogenerated classes? Then the interfaces would be imported, and the autogenerated sources would be the actual implementation.

Just for clarification, manually adding the resources-monacoeditor to your pom is one way to solve the issue with Payara? But that's not a good solution when you don't actually need the Monaco editor?

Yes, adding resources-monacoeditor to the pom solved the issue.

So instead of adding resources-monacoeditor as an optional dependency to core, we could add core as a dependency to resources-monacoeditor (which should then be called component-monacoeditor, but we probably shouldn't change it for compatibility). Basically like an additional project on top of primefaces extensions. Then we can move component classes and widget JavaScript into resources-monacoeditor.

I like the idea of having separate jars for the extension components. There could be a primefaces-ext-core and then primefaces-ext-monacoeditor, primefaces-ext-ck-editor, primefaces-ext-....
How it is planned for a sheet pro version: #152

I think I have a trick that will work that we have used in PrimeFaces core before.  It goes like this...

We move all Monaco .model classes to the Monaco Resources JAR project.
That leaves only the .component classes in core.  Then in those .component classes we don't use import statements.

Instead of...
import org.primefaces.extensions.model.monacoeditor.DiffEditorOptions;

public abstract class MonacoDiffEditorBase extends MonacoEditorCommon<DiffEditorOptions> {

It would switch to...
public abstract class MonacoDiffEditorBase extends MonacoEditorCommon<org.primefaces.extensions.model.monacoeditor.DiffEditorOption> {

Basically the classloaders like Payara are looking at import statements as it loads classes and not inside the class itself until that code is used.
@GedMarc and @jepsar correct me if I am wrong but I know we have used that trick in PF Core for optional dependencies?

That sounds like it could work, but it feels like quite the hack and rather fragile: no guarantee that third-party code will always ignore fully qualified class references; and it's very easy for somebody to accidentally readd an import when working on the code.
@melloware What do you think about reversing the dependency (see my suggestion above), having monacoeditor depend on core instead of vice-versa?

so basically moving all the code to Monaco?  I am OK with it as long as...

We don't add another new JAR
it remains the same name as it is now for backwards compatibility.

I would think it would then need its own faces-config.xml and taglib.xml etc.

@ltlBeBoy I deployed 11.0.2-SNAPSHOT if you want to give it a try with Payara just to see if it fixed the issue?
To use 11.0.2-SNAPSHOT you need to add this to your pom.xml
<repository>
    <id>sonatype-snapshots</id>
    <name>Sonatype Snapshot Repository</name>
    <url>https://s01.oss.sonatype.org/content/repositories/snapshots</url>
    <releases>
        <enabled>false</enabled>
    </releases>
    <snapshots>
        <enabled>true</enabled>
    </snapshots>
</repository>

so basically moving all the code to Monaco? I am OK with it as long as...
We don't add another new JAR
it remains the same name as it is now for backwards compatibility.

Yes exactly. While the name resources-monacoeditor wouldn't quite fit anymore, I agree we should leave it unchanged for compatibility. And we'd need a faces-config.xml etc, but that should work -- I original made the component as a separate project depending on PrimeFaces and that worked too.
And there's one more thought I had, can this really work? Shouldn't the class file / byte code always contain the fully qualified names, regardless of the source code? I guess we'll need to hear back from ltlBeBoy, though in the long term, I think it would be better to refactor and move the monaco classes completely out of the core.

Yeah I am not sure if this will work either but it has worked in the past in PF core for other 3rd party lib deps.

I will check tomorrow. On my way to a birthday party now. :-)

@melloware I think you were referring to something like
https://github.com/primefaces/primefaces/blob/107df1f05950b862d47fcfbf3bd6c9ca0212a6de/primefaces/src/main/java/org/primefaces/application/resource/PrimeResourceHandler.java#L59-L61

So I gave this quick try and moved all files into resources-monacoeditor, removing the optional dependency.
This works for the most part, but I came accross one issue: We need to create a separate taglib.xml in resources-monacoeditor, and two taglibs cannot share the same namespace (it works with MyFaces, but not with Mojarra). So this refactoring requires a separate namespace for resources-monacoeditor, e.g.
<ui:composition
        xmlns:pe="http://primefaces.org/ui/extensions"
        xmlns:pem="http://primefaces.org/ui/extensions-monaco">
  <pem:monacoEditor />
</ui:composition>

While small change, that is a breaking change. With that in mind, my suggestion would be:

keep things as they are for 11.x

The workaround for now is to add resources-monacoeditor as a dependency
If you don't need MonacoEditor, setting the dependency to <scope>provided</scope> might help too -- perhaps you could test tomorrow as well @ltlBeBoy ? (and best wishes to whoever whose birthday it is)
Perhaps what melloware tried might also solve the issue for the time being

We do the refactoring in the 12.x release, and add a note about adding the namespace in the release notes

I thought we might need to have a separate taglib.xml and yep it might be a good idea for this refactoring for 12.0 is this is the way to go.

Ok so I guess that answers that my fix did not work.

Guess I'll finish what I started in my branch then. The master branch is for the 12.x release?

Yep no rush.  Master can be considered 12.0-SNAPSHOT.  I have an 11.X branch I use for any 11.0 patches.

I am actually not sure this is worth fixing.  I use Jboss EAP, WildFly, and Jetty+OpenWebbeans and none of them have this issue.
I feel like this is a Payara bug and not something we should worry about?  Maybe report it to Payara?

I have reported this to Payara: https://github.com/payara/Payara/issues/5674

Hi, i have the same error with this configuration:
Primefaces 11, Primefaces-exstension 11.0.4, resources-monacoeditor 11.0.4, mojarra 2.1.28, Jboss EAP 7.3
Error stacktrace:
Caused by: javax.faces.FacesException: Cant instantiate class: org.primefaces.extensions.component.monacoeditor.MonacoEditorInline.     at com.sun.faces.application.ApplicationImpl.newThing(ApplicationImpl.java:1738)     at com.sun.faces.application.ApplicationImpl.createComponentApplyAnnotations(ApplicationImpl.java:1893)     ... 105 more Caused by: java.lang.NoClassDefFoundError: org/primefaces/extensions/model/monacoeditor/EditorOptions     at org.primefaces.extensions.component.monacoeditor.MonacoEditorBase.<init>(MonacoEditorBase.java:57)     at org.primefaces.extensions.component.monacoeditor.MonacoEditorInline.<init>(MonacoEditorInline.java:57)     at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)     at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)     at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)     at java.lang.reflect.Constructor.newInstance(Constructor.java:423)     at java.lang.Class.newInstance(Class.java:442)

@rocco-natuzzi Something else must be wrong then because I use Jboss 7.3 and Jboss 7.4 and we do not have this issue.  Are you sure you don't have multiple versions in your classapth....

I already have that library and i use Jboss EAP 7.3 and not Payara

Why also is it mojarra 2.1.28 when Jboss 7.3 should be Mojarra 2.3.14 ??

Because we have a problem with version higher than 2.1
https://stackoverflow.com/questions/57054020/javax-faces-component-stateholdersaver-possible-memory-leak

@rocco-natuzzi could you please answer your question https://stackoverflow.com/questions/72528086/primefaces-extension-11-noclassdeffounderror-editoroptions so it could help others?

Trying to update from extension 11.0.0 to 12.0.1 i suddenly get this error now with Glassfish 5. I did not got it before?

@djmj I suggest going to this ticket and +1 it: https://github.com/payara/Payara/issues/5674

I had similar error with PrimeFaces 13.0.4 on Eclipse Glassfish 6.2.5.

SEVERE: java.lang.TypeNotPresentException: Type org.primefaces.extensions.model.monacoeditor.EditorOptions not present
	at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117)
	at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125)
	at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
	at java.base/sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68)
	at java.base/sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138)
	at java.base/sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49)
	at java.base/sun.reflect.generics.repository.ClassRepository.computeSuperclass(ClassRepository.java:104)
	at java.base/sun.reflect.generics.repository.ClassRepository.getSuperclass(ClassRepository.java:86)
	at java.base/java.lang.Class.getGenericSuperclass(Class.java:1028)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.discoverFromClass(HierarchyDiscovery.java:139)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.discoverTypes(HierarchyDiscovery.java:132)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.discoverFromClass(HierarchyDiscovery.java:139)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.discoverTypes(HierarchyDiscovery.java:113)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.<init>(HierarchyDiscovery.java:94)
	at org.jboss.weld.util.reflection.HierarchyDiscovery.<init>(HierarchyDiscovery.java:87)
	at org.jboss.weld.annotated.enhanced.TypeClosureLazyValueHolder.computeValue(TypeClosureLazyValueHolder.java:41)
	at org.jboss.weld.annotated.enhanced.TypeClosureLazyValueHolder.computeValue(TypeClosureLazyValueHolder.java:31)
	at org.jboss.weld.util.LazyValueHolder.get(LazyValueHolder.java:46)
	at org.jboss.weld.annotated.slim.backed.BackedAnnotated.getTypeClosure(BackedAnnotated.java:27)
	at org.jboss.weld.annotated.AnnotatedTypeValidator.validateAnnotated(AnnotatedTypeValidator.java:44)
	at org.jboss.weld.annotated.AnnotatedTypeValidator.validateAnnotatedType(AnnotatedTypeValidator.java:62)
	at org.jboss.weld.manager.BeanManagerImpl.getInjectionTargetFactory(BeanManagerImpl.java:1503)
	at org.jboss.weld.manager.BeanManagerImpl.createInjectionTarget(BeanManagerImpl.java:1019)
	at org.glassfish.weld.services.JCDIServiceImpl.injectManagedObject(JCDIServiceImpl.java:324)
	at org.glassfish.faces.integration.GlassFishInjectionProvider.inject(GlassFishInjectionProvider.java:164)
	at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:224)
	at com.sun.faces.config.processor.AbstractConfigProcessor.createInstance(AbstractConfigProcessor.java:191)
	at com.sun.faces.config.processor.RenderKitConfigProcessor.addRenderers(RenderKitConfigProcessor.java:288)
	at com.sun.faces.config.processor.RenderKitConfigProcessor.process(RenderKitConfigProcessor.java:165)
	at com.sun.faces.config.ConfigManager.lambda$initialize$1(ConfigManager.java:293)
	at java.base/java.util.AbstractList$RandomAccessSpliterator.forEachRemaining(AbstractList.java:720)
	at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:762)
	at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:276)
	at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:207)
	at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:5005)
	at com.sun.enterprise.web.WebModule.contextListenerStart(WebModule.java:562)
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:5574)
	at com.sun.enterprise.web.WebModule.start(WebModule.java:510)
	at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:877)
	at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:860)
	at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:644)
	at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:2020)
	at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1666)
	at com.sun.enterprise.web.WebApplication.start(WebApplication.java:82)
	at org.glassfish.internal.data.EngineRef.start(EngineRef.java:98)
	at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:267)
	at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:328)
	at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:480)
	at com.sun.enterprise.v3.server.ApplicationLoaderService.processApplication(ApplicationLoaderService.java:382)
	at com.sun.enterprise.v3.server.ApplicationLoaderService.postConstruct(ApplicationLoaderService.java:219)
	at org.jvnet.hk2.internal.ClazzCreator.postConstructMe(ClazzCreator.java:303)
	at org.jvnet.hk2.internal.ClazzCreator.create(ClazzCreator.java:351)
	at org.jvnet.hk2.internal.SystemDescriptor.create(SystemDescriptor.java:466)
	at org.glassfish.hk2.runlevel.internal.AsyncRunLevelContext.findOrCreate(AsyncRunLevelContext.java:281)
	at org.glassfish.hk2.runlevel.RunLevelContext.findOrCreate(RunLevelContext.java:65)
	at org.jvnet.hk2.internal.Utilities.createService(Utilities.java:2103)
	at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:93)
	at org.jvnet.hk2.internal.ServiceHandleImpl.getService(ServiceHandleImpl.java:67)
	at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.oneJob(CurrentTaskFuture.java:1213)
	at org.glassfish.hk2.runlevel.internal.CurrentTaskFuture$QueueRunner.run(CurrentTaskFuture.java:1144)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
	at java.base/java.lang.Thread.run(Thread.java:833)
Caused by: java.lang.ClassNotFoundException: org.primefaces.extensions.model.monacoeditor.EditorOptions
	at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1577)
	at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1427)
	at java.base/java.lang.Class.forName0(Native Method)
	at java.base/java.lang.Class.forName(Class.java:467)
	at java.base/sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114)
	... 62 more

INFORMATION: Running on PrimeFaces 13.0.4
INFORMATION: Running on PrimeFaces Extensions 13.0.4

I my case, some ajax-behaviors (rowSelect, filter) inside p:dataTable have not working.

The workaround for now is to add resources-monacoeditor as a dependency

The size of this dependency comes to 3.4 MB. This is enough much. Instead of it I create two empty classes org.primefaces.extensions.model.monacoeditor.EditorOptions and org.primefaces.extensions.model.monacoeditor.DiffEditorOptions in my project's code and this helps too. As a disadvantage of this work-around I can say, that if I decide to use MonacoEditor in my project and forget about these two empty classes, I receive errors a-la MethodNotFound/FieldNotFound.

We could perhaps move the EditorOptions and DiffEditorOptions classes from the monaco-editor JAR to the main JAR, leaving only the JavaScript and CSS resources in the monaco-editor JAR. It would add an additional build step where it generates those classes, but that build step should not take long.

@blutorange should I re-open this ticket then?

Thanks this will be included in 13.0.5!

@melloware would it be possible / not too much work to push this to 12.0.x?

sure let me try and cherry pick this to 12.0.x now.

12.0.11 in Maven Central


Create file.gitkeep

Context
Changes proposed in this pull request
Guidance to review

Could we rename this file to .gitkeep to keep it in line with our other versioned controlled directory structure

Could we rename this file to .gitkeep to keep it in line with our other versioned controlled directory structure

Sure, fine with me if it works with the broader structure
On Mon, 4 Jan 2021 at 10:14, Alistair Laing<EMAIL_ADDRESS>wrote:

Could we rename this file to .gitkeep to keep it in line with our other
versioned controlled directory structure
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/DFE-Digital/get-help-with-tech/pull/980#issuecomment-753886664,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQP5XXOYPDIPKCBWXDJJ7ALSYGIILANCNFSM4U7W7UMA
.

Sure, fine with me if it works with the broader structure
On Mon, 4 Jan 2021 at 10:14, Alistair Laing<EMAIL_ADDRESS>wrote:

Could we rename this file to .gitkeep to keep it in line with our other
versioned controlled directory structure
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/DFE-Digital/get-help-with-tech/pull/980#issuecomment-753886664,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AQP5XXOYPDIPKCBWXDJJ7ALSYGIILANCNFSM4U7W7UMA
.


Fix register fails on channles requests. #137

Fixed register mutation not working in channels environment. Instead of the get_current_site() function, we implemented it by getting the required values from the request.headers object and the request.consumer.scope object and returning them. There are a few things that need to be reviewed.

the content of the request object has changed - this is included in the context used when rendering html mail. If they want to include the contents of the request in the email, they will need to customize it.
I've tested and found that the site_name and domain returned by get_mail_context() actually contain the same values, so it should work the same in a channels environment. However, if your site_name and domain are different, you may run into issues.
I used the port number by parsing request.header["host"]. if the request.header contains anything other than a valid "host:port" form of the value, an error may occur.

Release Notes

Just wanted to say

Release type: patch
Fix register fails on channles requests. #137
Do noyt call get_current_site() from get_email_context()
Extract values from channels context.

run the schema.execute() function in the channels context: I haven't seen this done, if you know how, please let me know.
You can try to use the tests consumer
https://github.com/nrbnlulu/strawberry-django-auth/blob/710017565314d6403f1fadb79fd48cd6616ff044/tests/test_middlewares.py#L13

BTW TBH I am not sure that you should use channels for mutation / queries... Do you have any reason to do so?

As per your suggestion, I wrote a test code to call register mutation in channels context using verified_user_status_type andverified_channels_app_communicator. However, it seems to fail to execute. When I ran the same code in sync context, it worked fine. Do you have any idea how to fix it?

The problem is that it's trying to register a new user, and the username and phone_number already exist. I fixed it and republished the PR, so please review it.


Add support for Instance Owner access option in the access controls

We can use VRCPlayerApi.IsInstanceOwner to check that.
Networking.IsInstanceOwner always returns true, so don't use that!
Could be just another option in the list of checkboxes. Should probably rename the Owner to Object Owner to clarify

I'm currently using the following as a working alternative to the broken Networking.IsInstanceOwner:
if (Networking.LocalPlayer.isInstanceOwner) {
(be careful to use the lowercase "is")


Use Carthage for dependency management

Reviewer: Caine
Asana: https://app.asana.com/0/361428290920652/377216334725597
Description:
Dependencies were previously managed manually via submodules. This PR switches to Carthage which removes the pain and clutter of bringing them into the project manually.
Steps to test this PR:
There should be no noticeable difference to the app.
Reviewer Checklist:

[ ] Ensure the PR solves the problem
[ ] Review every line of code
[ ] Ensure the PR does no harm by testing the changes thoroughly
[ ] Get help if you're uncomfortable with any of the above!
[ ] Determine if there are any quick wins that improve the implementation

PR DRI Checklist:

[x] Get advice or leverage existing code
[x] Agree on technical approach with reviewer (if the changes are nuanced)
[x] Ensure that there is a testing strategy (and documented non-automated tests)
[x] Ensure there is a documented monitoring strategy (if necessary)
[x] Consider systems implications (Database connections, Grafana stats, CPU)

Approved by Caine over hipchat


Crash

Crash with version 1.3.1 +
Crash occurs when you try to log in to a server or a single player
If I install version 1.3.0 then there is no such crash
crash-2021-02-06_16.44.31-client.txt

Thank you for posting this! This has never happened to me during development so I didnt notice it.
This has something to do with the signs tooltip. To determine whether the tooltip will be applied, it checks if its a sign but for some reason that check is being called before it properly knows what a sign is...

Okay so I removed the function call that was responsible for the crash, it was not really necessary anyway (it was more like a redundancy thing). Please tell me if the crash still occurs when the next version is out.


Fixed the React.addons.update typing to work with TS1.6

Typescript 1.6 types are a bit stricter so we need to explicitly specify that update can either take a dynamic property, or one of the command.s

Can you make the same change to react-global.d.ts?

Added the modification to react-global.d.ts too

@pspeter3 @vsiao can I merge this PR?

lgtm other than the trailing whitespace

thanks mate!


SARAALERT-1175: Refactor ConsumeAssessmentsJob to be performed by Sidekiq Async

Description
Jira Ticket: SARAALERT-1175
Maybe also SARAALERT-1377
Currently ConsumeAssessmentsJob launches into an infinite loop. This means we cannot see any timings/performance on any of the methods inside this loop - we will only get notified of a final exception because at that point the thread will actually exit.
The main benefit of this reorganization is visibility into the log
and 'errors' during a ConsumeAssessmentJob. Secondary benefit is a
scaling architecture which is homogeneous with the rest of of
background jobs.
Important Changes
reports.rake

Refactor reports.rake to launch a queue only job ("queue job").

Improve error handling within queue job to include publish backoff
Improved error messaging and logging within queue job
Update threading logic to fix issue where throughput would decline
when a thread would crash

docker-compose.yml

Update docker-compose.yml with queue job and related changes

Nginx.Dockerfile

Change nginx container from latest to alpine to eliminate
vulnerabilities with Debian 10.

README.md

Update README.md with new diagram and updated names/descriptions.

consume_assessments_job.rb

Log information messages within ConsumeAssementsJob to Sentry.

produce_assessments_job.rb

Symbolize assessment keys to assist in debugging
ConsumeAssessmentsJob, ProduceAssessmentsJob, and reports.rake.

Checklists
Submitter:

[x] This PR describes why these changes were made.
[x] This PR is into the correct branch.
[x] This PR includes the correct JIRA ticket reference.
[x] Code diff has been reviewed (it does not contain: additional white space, not applicable code changes, debug statements, etc.)
[x] If UI changes have been made, Chrome Dev Tools Lighthouse accessibility test has been executed to ensure no 508 issues were introduced.
[x] Tests are included and test edge cases
[x] Tests have been run locally and pass (remember to update Gemfile when applicable)
[x] Test fixtures updated and documented as necessary

@holmesie  :

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code
[ ] If applicable, you have tested changes against a large database, and considered possible performance regressions

@mayerm94  :

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code
[ ] If applicable, you have tested changes against a large database, and considered possible performance regressions

@timwongj  :

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code
[ ] If applicable, you have tested changes against a large database, and considered possible performance regressions

Thanks for the rubocop changes @mayerm94

@tstrass It's worth reiterating with these changes that the current pod that runs rake task, bin/bundle exec rake reports:receive_and_process_reports will need to change to bin/bundle exec sidekiq -q assessments. Keeping the same links. And then a new pod will need to be created that runs bin/bundle exec rake reports:queue_reports that is only on the bridge network. These changes are partly illustrated in the diff to the compose file but will need to get carried over to the Kubernetes service definitions.

Got it, thanks @Bialogs!


fix: issue with string comparision

This PR fixes the problem of a python version comparison  ('3', '10', '0') and ('3', '4', '4')

:tada: This PR is included in version 5.0.6 :tada:
The release is available on:

v5.0.6
GitHub release

Your semantic-release bot :package::rocket:


Framegrabber timeout error with O3R222

I have VPU (with IFM_Software: 0.16.23-823), connected with 2 O3R222 and 1 VGA resolution O3R camera. As I am testing VGA O3R camera, we are using old firmware for VPU as new firmware does not support VGA O3R camera. All 3 camera are working fine when checked with ifm vision assistant software. But when I try to grab frames using ifm 3d library (v1.5.2), I am getting framegrabber timeout error with O3R222 but not with VGA resolution O3R camera. I am getting warnings(type must be number, but is null) and error (JSON Path not valid: /applications/instances) for both cameras but in case of VGA resolution O3R camera it is able to capture frame but not in case of O3R222 camera.
2024-03-05 05:36:56 ERROR [xmlrpc_wrapper.hpp:100] http://<IP_ADDRESS>:80/api/rpc/v1/com.ifm.efector/ -> get: RPC response indicates failure.  JSON Path not valid: /applications/instances
2024-03-05 05:36:56 WARN [o3r_impl.hpp:221] XMLRPC ERRO : Unknown error 104012: JSON Path not valid: /applications/instances
2024-03-05 05:36:56 WARN [o3r_impl.hpp:281] JSON: [json.exception.type_error.302] type must be number, but is null
Timeout waiting for camera!

Here is the code:
void get_cloud(const std::string& o3r_ip, const std::string& port, pcl::PointCloud<pcl::PointXYZ>::Ptr cloud_xyz){
    auto t1 = high_resolution_clock::now();
    auto cam = std::make_shared<ifm3d::O3R>(o3r_ip);
    const auto PCIC_PORT = cam->Port(port).pcic_port;
    auto fg = std::make_shared<ifm3d::FrameGrabber>(cam, PCIC_PORT);

    fg->Start({ifm3d::buffer_id::XYZ});
    fg->SWTrigger();
    auto future = fg->WaitForFrame();
    if (future.wait_for(3s) != std::future_status::ready){
        std::cerr << "Timeout waiting for camera!" << std::endl;
        abort();
    }
    auto frame = future.get();
    auto xyz = frame->GetBuffer(ifm3d::buffer_id::XYZ);
    convert_to_point_cloud(xyz, cloud_xyz);
    fg->Stop();
    auto t2 = high_resolution_clock::now();
    std::cout << "Time to get point cloud: " << duration_cast<milliseconds>(t2 - t1).count() << " ms" << std::endl;
}

@robinbansal08 can you please let us know what hardware connectivity you are running?
Meaning which head is connected to which physical port on the VPU.
Please include a complete ifm3d CLI dump or ifm3d API get output in this issue.
There are known limitations where 3D VGA heads can not be connected to the same paired deserializer as a O3R222 or O3R225 on the VPU - similar to the 3D TOF and 2D RGB limitations.

The VGA and regular O3R222 or O3R225 heads can not be connected to the same paired deserializer:
Meaning VGA TOF, VGA TOF on Port [0,1] [2,3] [4,5] would work.
Can you please reconnect your heads using the following connectivity:
port 0: 3D VGA
port 1: no connection
port 2: 3D O3R222 (a)
port 3: 3D O3R222 (b)
Please disconnect the VGA RGB imagers for test purposes.
Please let us know if this changes the connectivity.
If errors still persist, can you please send the complete systemD journalctl output (can be accessed on the VPU embedded device as oem user) via email at<EMAIL_ADDRESS>Thanks.

As per that, current connection should work as nothing is connected in pair with 3D-VGA (port-5 is empty).
[0 1] 2D, 2D
[2 3] 3D, 3D (both O3R222)
[4 5] 3D-VGA, no connection

There are two hypotheses to be double-checked:

[x] No VGA is connected to the same deserializer as a 2D RGB stream and 38k TOF streams
[ ] Disconnect the VGA RGB stream completely - since it may be missing the required calibration on the head.

As mentioned before, can you send a systemD journal output to us via email?

Testing further I found that this issue occurs when camera is set to "IDLE" mode and if we send software trigger to capture frames, it fails with timeout error. But when it is set to "RUN" mode, and we do not send any software trigger, then we are able to get frames. This behavior is experienced with all ports (2D ports and 3D ports of both type of cameras).

This is probably due to a known instability for the software trigger. Consider the following:

No trigger is available for the RGB cameras. They will always be "free-running".
For the 3D cameras, you might need to send a trigger signal a couple times to be able to get a frame. Could you try this and confirm whether or not you are able to get a frame when in "IDLE" mode using the trigger multiple times?
Also note that software trigger support was added in FW 0.16.23, but with known limitations (see https://ifm3d.com/latest/Firmware/ReleaseNotes/FW_0.16.x/FW_0.16.x_Release_Notes.html#known-issues). Also due to the prototype nature of the VGA, the trigger for these types of heads is expected to be unstable.

Sending multiple trigger signals solves the issue for O3R222 but it not reliable in case of VGA cameras and sometimes it fails with timeout error. As a workaround we can set the camera to "RUN" mode which is sufficient for initial testing phase for us. Thanks for the solution.
I have a question regarding temporal filter: does that works also in "IDLE" mode, when we try to capture a frame by sending a software trigger ? If yes, which frames would be used for temporal filter, will it capture multiple new frames first for filtering.

So, we recommend disabling the temporal when using triggering. The filter will keep doing its filtering job on the frames that are collected, but it does not make sense if the scene changes between triggers, because the filter would use completely unrelated frames.

Thank you for your support. Closing this issue.


E-mail confirmations sent twice (duplicate emails)

Gem version: 0.1.38 (as well as from master branch latest)
Rails version: 5.0.0 API
This version resolves #500, however it introduces error where same confirmation e-mail is sent twice, once the auth POST register action is performed resulting in duplicate e-mail sending.
MailCatcher screenshot:

It is also worth noting that this only happens for confirmation e-mails. Password reset e-mails are sent once as expected.

I found out that removing these lines in registrations_controller fixes the problem and confirmation e-mails are sent once:
  unless @resource.confirmed?
              # user will require email authentication
              # @resource.send_confirmation_instructions({
              #   client_config: params[:config_name],
              #   redirect_url: @redirect_url
              # })

            else

Opened-up pull request: https://github.com/lynndylanhurley/devise_token_auth/pull/678

Other way to fix this problem is to include this in the user model:
  before_create :skip_duplicate_devise_confirmation_email

# Fixes problem with duplicate account confirmation emails
  def skip_duplicate_devise_confirmation_email
    skip_confirmation_notification!
  end

@develop-test1 your solution works for me.

#678 got it fixed, closing


x/tools: undefined error running go get golang.org/x/tools

What version of Go are you using (go version)?
go version go1.10.3 linux/amd64

Does this issue reproduce with the latest release?
Yes
What operating system and processor architecture are you using (go env)?
docker run golang:1.10.3 sh -c "go env "
GOARCH="amd64"
GOBIN=""
GOCACHE="/root/.cache/go-build"
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="linux"
GOOS="linux"
GOPATH="/go"
GORACE=""
GOROOT="/usr/local/go"
GOTMPDIR=""
GOTOOLDIR="/usr/local/go/pkg/tool/linux_amd64"
GCCGO="gccgo"
CC="gcc"
CXX="g++"
CGO_ENABLED="1"
CGO_CFLAGS="-g -O2"
CGO_CPPFLAGS=""
CGO_CXXFLAGS="-g -O2"
CGO_FFLAGS="-g -O2"
CGO_LDFLAGS="-g -O2"
PKG_CONFIG="pkg-config"
GOGCCFLAGS="-fPIC -m64 -pthread -fmessage-length=0 -fdebug-prefix-map=/tmp/go-build620362171=/tmp/go-build -gno-record-gcc-switches"

What did you do?
docker run golang:1.10.3 sh -c "go get -u golang.org/x/tools/..."
# golang.org/x/tools/go/internal/gccgoimporter
src/golang.org/x/tools/go/internal/gccgoimporter/parser.go:605:9: undefined: types.NewInterface2
# golang.org/x/tools/go/internal/gcimporter
src/golang.org/x/tools/go/internal/gcimporter/bimport.go:541:8: undefined: types.NewInterface2
src/golang.org/x/tools/go/internal/gcimporter/iimport.go:540:10: undefined: types.NewInterface2
docker run golang:1.10.3 sh -c "go get -u golang.org/x/tools/..."
# golang.org/x/tools/go/internal/gccgoimporter
src/golang.org/x/tools/go/internal/gccgoimporter/parser.go:605:9: undefined: types.NewInterface2
# golang.org/x/tools/go/internal/gcimporter
src/golang.org/x/tools/go/internal/gcimporter/bimport.go:541:8: undefined: types.NewInterface2
src/golang.org/x/tools/go/internal/gcimporter/iimport.go:540:10: undefined: types.NewInterface2

What did you expect to see?
Successful go get execution
What did you see instead?
# golang.org/x/tools/go/internal/gccgoimporter
src/golang.org/x/tools/go/internal/gccgoimporter/parser.go:605:9: undefined: types.NewInterface2
# golang.org/x/tools/go/internal/gcimporter
src/golang.org/x/tools/go/internal/gcimporter/bimport.go:541:8: undefined: types.NewInterface2
src/golang.org/x/tools/go/internal/gcimporter/iimport.go:540:10: undefined: types.NewInterface2

I think this change was introduced here https://go-review.googlesource.com/#/c/114317/

Our automated build system is now also breaking on import

go get -u github.com/golang/lint/golint

golang.org/x/tools/go/internal/gcimporter
src/golang.org/x/tools/go/internal/gcimporter/bimport.go:541:8: undefined: types.NewInterface2
src/golang.org/x/tools/go/internal/gcimporter/iimport.go:540:10: undefined: types.NewInterface2

Confirmed. /cc @griesemer.

I'm also getting a failure on this
$ go get github.com/golang/lint/golint
# golang.org/x/tools/go/internal/gcimporter
../../../golang.org/x/tools/go/internal/gcimporter/bimport.go:541:8: undefined: types.NewInterface2
../../../golang.org/x/tools/go/internal/gcimporter/iimport.go:540:10: undefined: types.NewInterface2

Given that a number of us are coming across the same problem, let's be nice to the maintainers and not post confirmations unless we have constructive info that'll help them put out the fire 😄. Also, it's great to see so many of us are using golint!

Same issue here. Any ETA on the fix?
00:01:41.677 # golang.org/x/tools/go/internal/gcimporter
00:01:41.677 /opt/gotools/obj/src/golang.org/x/tools/go/internal/gcimporter/bimport.go:541:8: undefined: types.NewInterface2
00:01:41.677 /opt/gotools/obj/src/golang.org/x/tools/go/internal/gcimporter/iimport.go:540:10: undefined: types.NewInterface2
00:01:41.729 gotools.mk:53: recipe for target 'gotool.golint' failed

working on it

See https://github.com/golang/lint/issues/402.

All: Apologies for all this.
Post-mortem: Late last night (with emphasis on "late") I created a larger CL in an attempt to finally update x/tools with all the latest fixes and changes that we've made to the various importers in the std lib. This also included fixes to go/types and new tests. The CL was approved and passed all (1.11) tests and I submitted it somewhat in a rush this morning while running out of the door, not thinking abut pre-1.11 builds. As we all saw, the non-1.11 builds failed quickly, and with it tools such as lint that depend on go/types. It was "obvious" what needed to be fixed (the go/types.NewInterface2 call is missing pre-1.11). While submitting that fix, I missed a couple of places (sigh), and also the fact that Interface.EmbeddedType was new as well. Finally, some of the new tests don't pass at all pre-1.11 due to larger fixes in go/types. I've split up the code into version-tagged files and I believe it works now. The primary reason for having these problems in the first place (and not fixing it all with a single CL) is that I relied on the builders to test non-1.11 versions for "expediency" (I hoped to get around installing a pre-1.11 setup on my new laptop while on the go.) Lesson (re-)learned.
I still see a build failure for 1.9 but it is unrelated to the importers.
Please confirm this is now working again and close if so. Thanks.

golang/lint#402 has been confirmed as fixed; this is the same issue. Closing.

go get -u github.com/golang/lint/golint
I got this error
golang.org/x/tools/go/internal/gcimporter
../../../golang.org/x/tools/go/internal/gcimporter/iimport.go:90: undefined: io.SeekCurrent
../../../golang.org/x/tools/go/internal/gcimporter/iimport.go:93: undefined: io.SeekCurrent
../../../golang.org/x/tools/go/internal/gcimporter/iimport.go:169: undefined: io.SeekCurrent
../../../golang.org/x/tools/go/internal/gcimporter/iimport.go:200: r.declReader.Reset undefined (type bytes.Reader has no field or method Reset)
../../../golang.org/x/tools/go/internal/gcimporter/iimport.go:239: r.declReader.Reset undefined (type bytes.Reader has no field or method Reset)


Screen record Android

Sadly the screen record event isn't working in Android

it also not working for me

Me too in POXO X3 Pro - MIUI 12 - Android 12

Its not working cause: link

@overdrowe
The detection of the record does not have to be when the record done, it might be when it is initiated or when it will be initiated like what happens with FLAG_SECURE in Android system, so there might be a callback for that I think.


sudo ShellScript Support

Hi, I have a series of shellscripts that require admin privileges to run.  Today when the scripts kick off I'm bombarded by multiple UAC windows asking for my sudo password.  I would like to issue the script via sudo and enter the password a single time.

Impossible to do due to security concerns, as anything then could be run with root rights, which is really really bad :-P In ControlPlane we try to be very careful and correct with what is allowed to execute with root rights (see the helpertool we created).
For personal scripts I suggest you just modify the sudoers file so that you can run certain scripts or specific commands without the system asking for your password. If you think any of those scripts/actions belong in ControlPlane as a Core action, please create a specific issue/feature request for that action.


how to get the cell value after reading the excel

The excel file can be read quickly by the "read" method, but it is not so convenient to query cell values in the worksheet. Now I get those values in a cell-by-cell way and add those values to a Datatable. I wonder whether there is a better way to query the cell values in the worksheet? Thanks!

Hi
At the moment I don't have any ways to filter the data being read. Adding a for loop and if test on the Worksheet.Rows is the best way to query a worksheet.

Hi mrjono1,
I find out the way to get the cell values after spending several hours, maybe it is because I am not good at using Enumerable values in C#. Here I attach the method that I used. Hope it can help others. Thanks!
`           DataTable RL = new DataTable();
RL.Columns.Add("t");
RL.Columns.Add("r");
RL.Columns.Add("rd");
        // Open excel file using read only is much faster, but you cannot perfrom any writes
        using (FastExcel.FastExcel fastExcel = new FastExcel.FastExcel(inputFile, true))
        {
            Worksheet worksheet0 = fastExcel.Read("RL", 1);
            enuToDatatable(worksheet0, RL);
        }
    /// <summary>
    /// Transform enumerator to datatable
    /// </summary>
    /// <param name="worksheet"></param>
    /// <param name="data"></param>
    public static void enuToDatatable(Worksheet worksheet, DataTable data)
    {
        IEnumerator enumerator = worksheet.Rows.GetEnumerator();

        int count = 0;

        while (enumerator.MoveNext())
        {
            if (count > 0)
            {
                Row row = (Row)enumerator.Current;

                IEnumerator enumerator1 = row.Cells.GetEnumerator();

                DataRow dt = data.NewRow();

                int i = 0;

                while (enumerator1.MoveNext())
                {
                    Cell cell = (Cell)enumerator1.Current;
                    dt[i] = int.Parse(cell.Value.ToString());
                    i = i + 1;
                }

                data.Rows.Add(dt);
            }

            count += 1;
        }
    }

`

Hi jiaodaxiaozi
I'm glad you figured it out :)
I have updated your code to use a foreach, although I have not tested it. I should probably add this to the project.
You might want to do some reading up on for/foreach loops in C# they are heaps easier than while and less chances of bugs. :)
This website is a great help https://www.dotnetperls.com/for-foreach
`DataTable RL = new DataTable();
RL.Columns.Add("t");
RL.Columns.Add("r");
RL.Columns.Add("rd");
     // Open excel file using read only is much faster, but you cannot perfrom any writes
    using (FastExcel.FastExcel fastExcel = new FastExcel.FastExcel(inputFile, true))
    {
         Worksheet worksheet0 = fastExcel.Read("RL", 1);
          enuToDatatable(worksheet0, RL);
     }
    /// <summary>
    /// Transform enumerator to datatable
    /// </summary>
    /// <param name="worksheet"></param>
    /// <param name="data"></param>
    public static void enuToDatatable(Worksheet worksheet, DataTable data)
    {
        foreach (var row in worksheet.Rows)
         {
             foreach(var cell in row.Cells)
             {
                    dt[cell.ColumnNumber] = int.Parse(cell.Value.ToString());
                }
                data.Rows.Add(dt);
            }
        }
    }`


Reorganize pipeline notebooks

This PR reorganizes the notebooks in the downscaling_pipeline folder. Additional folders not added here would include delivery and post_processing.
Also removes a core.py file that was an artifact of the BCSD spatial disaggregation development.

@dgergel @delgadom I added a post_process_and_delivery folder with the relevant codes I used.
I also added the yaml index with intermediary and final output paths because it's a dependency in the notebooks.


refactor JWS

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

7 of 18 (38.89%)  changed or added relevant lines in 1 file are covered.
1 unchanged line in 1 file lost coverage.
Overall coverage decreased (-0.1%) to 53.892%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

jws/jws.go
7
18
38.89%

Files with Coverage Reduction
New Missed Lines
%

jws/jws.go
1
52.75%

Totals

Change from base Build<PHONE_NUMBER>:
-0.1%

Covered Lines:
1343

Relevant Lines:
2492

💛  - Coveralls


How to parse the 9k.tree file to create a graph?

Hello. I want to parse the tree to find common ancestors of the detections (sedan and van are both cars, so I want to assign the car label and not the labels referring to the car types) up to a certain ancestor (since the physical object label is the progenitor class for every other class label).
I opened the 9k.tree file and tried to understand how to create a graph, but I couldn't understand the numbers in the right column. Can you help me understand how this file works?

I found the solution. In the 9k.tree file, the line number is the index of that node and the number on the right is the index of the line that contains the parent node.
n00002452 -1
n00020827 -1
n00002684 -1
n11425580 -1
n05220461 0
n09225146 0

So the first 4 nodes are all root nodes, i.e. no parents.  The last two are children of node at index 0, which is the first node listed.
So it'd be like this
├───0: n00002452
│   ├───4: n05220461
│   └───5: n09225146
├───1: n00020827
├───2: n00002684
├───3: n11425580

Code to create a graph using the networkx library
    # get all 9k names
    names_file = open('data/9k.names')
    names_9k = []
    for name in names_file:
        names_9k.append(name.strip('\n'))

    # dictionary that represents graph of 9k names
    tree_file = open('data/9k.tree')
    dag_9k = {}
    line_counter = 0
    for line in tree_file:
        _, parent_node = line.strip('\n').split(' ')
        name = names_9k[line_counter]
        if name not in dag_9k:
            dag_9k[name] = []
        if int(parent_node) != -1:
            parent_node_label = names_9k[int(parent_node)]
            dag_9k[parent_node_label].append(name)
        line_counter += 1
    tree_graph = nx.DiGraph(dag_9k)

Awesome! Thanks for sharing :)


haskellPackages: update stackage and hackage

This Merge
This PR is the regular merge of the haskell-updates branch into staging.

This will probably be the last iteration for Stackage LTS 22.
This PR is drafted to avoid unnecessary notifications via code owners. See also #367709.

This branch is being continually built and tested by hydra at https://hydra.nixos.org/jobset/nixpkgs/haskell-updates. You may be able to find an up-to-date Hydra build report at cdepillabout/nix-haskell-updates-status.
We roughly aim to merge these haskell-updates PRs at least once every two weeks. See the @NixOS/haskell team calendar for who is currently in charge of this branch.
haskellPackages Workflow Summary
Our workflow is currently described in pkgs/development/haskell-modules/HACKING.md.
The short version is this:

We regularly update the Stackage and Hackage pins on haskell-updates (normally at the beginning of a merge window).
The community fixes builds of Haskell packages on that branch.
We aim at at least one merge of haskell-updates into staging every two weeks.
We only do the merge if the mergeable job is succeeding on hydra.
If a maintained package is still broken at the time of merge, we will only merge if the maintainer has been pinged 7 days in advance. (If you care about a Haskell package, become a maintainer!)

More information about Haskell packages in nixpkgs can be found in the nixpkgs manual.

This is the follow-up to #354270. Come to #haskell:nixos.org if you have any questions.

haskell-updates build report from hydra
evaluation 1810766 of nixpkgs commit 0936177 as of 2024-12-30 12:08 UTC
🟢 Ready to merge (if there are no evaluation errors)
Build summary

Platform
Failed ❌
DependencyFailed ❗
Unfinished ⏳
Success ✅

x86_64-linux 🐧
25
19
1
6710

Maintained Linux packages with build failure

[ ] [🐧❌] echidna @arcz @hellwolf
[ ] jailbreak-cabal @sternenseemann

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧✅] haskell.packages.ghc9101
[🐧❌] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

Maintained Linux packages with failed dependency

[ ] cabal-install @sternenseemann

[🐧✅] toplevel
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] cabal2nix @sternenseemann

[🐧✅] toplevel
[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages
[🐧✅] pkgsStatic.haskell.packages.native-bignum.ghc948
[🐧✅] pkgsStatic.haskellPackages

[ ] haskell-language-server @maralorn

[🐧✅] toplevel
[🐧✅] haskell.packages.ghc9101
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧❗] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] hlint @maralorn

[🐧✅] toplevel
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskellPackages

[ ] language-nix @sternenseemann

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] weeder @maralorn

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

Unmaintained packages with build failure
45 job(s)

[ ] hashable  ⤴ 2885 | 8932

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧❌] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] ghc-source-gen  ⤴ 2 | 5

[🐧❌] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧✅] haskell.packages.ghc928
[🐧✅] haskellPackages

[ ] [🐧❌] haskellPackages.libxml-sax  ⤴ 0 | 21
[ ] [🐧❌] haskellPackages.hsc3  ⤴ 0 | 18
[ ] [🐧❌] haskellPackages.libtorch-ffi  ⤴ 0 | 2
[ ] [🐧❌] haskellPackages.lawful-conversions  ⤴ 0 | 1
[ ] [🐧❌] haskellPackages.debruijn
[ ] [🐧❌] haskellPackages.debruijn-safe
[ ] [🐧❌] haskellPackages.deep-map
[ ] [🐧❌] haskellPackages.effectful-zoo
[ ] [🐧❌] haskellPackages.gi-nm
[ ] [🐧❌] haskellPackages.hsftp
[ ] [🐧❌] haskellPackages.htree
[ ] [🐧❌] haskellPackages.libremidi
[ ] [🐧❌] haskellPackages.nspace
[ ] [🐧❌] haskellPackages.pfile
[ ] [🐧❌] haskellPackages.pg-query
[ ] [🐧❌] haskellPackages.provide
[ ] [🐧❌] haskellPackages.tasty-golden-extra
[ ] [🐧❌] haskellPackages.tinyapp
[ ] [🐧❌] haskellPackages.unbound-generics-unify
[ ] [🐧❌] haskellPackages.wled-json
[ ] [🐧❌] haskellPackages.xz

Unmaintained packages with failed dependency
192 job(s)

[ ] ghc-lib-parser  ⤴ 19 | 71

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] ghc-lib-parser-ex  ⤴ 13 | 44

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] hpack  ⤴ 3 | 15

[🐧✅] toplevel
[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] hoogle  ⤴ 1 | 5

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧✅] haskell.packages.ghc9101
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] Cabal_3_10_3_0

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧✅] haskell.packages.ghc9101
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] Cabal_3_12_1_0

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧✅] haskell.packages.ghc9101
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] Cabal_3_14_1_0

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧✅] haskell.packages.ghc9101
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] cabal2nix-unstable

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] ghc-lib

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc947
[🐧✅] haskell.packages.ghc948
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskell.packages.ghc981
[🐧✅] haskell.packages.ghc982
[🐧✅] haskell.packages.ghc983
[🐧✅] haskell.packages.ghc984
[🐧✅] haskellPackages

[ ] ghc-tags

[🐧✅] haskell.packages.ghc8107
[🐧✅] haskell.packages.ghc902
[🐧❗] haskell.packages.ghc9121
[🐧✅] haskell.packages.ghc925
[🐧✅] haskell.packages.ghc926
[🐧✅] haskell.packages.ghc927
[🐧✅] haskell.packages.ghc928
[🐧✅] haskell.packages.ghc963
[🐧✅] haskell.packages.ghc964
[🐧✅] haskell.packages.ghc965
[🐧✅] haskell.packages.ghc966
[🐧✅] haskellPackages

[ ] [🐧❗] haskellPackages.mplayer-spot
[ ] [🐧❗] haskellPackages.tasty-papi
[ ] [🐧❗] haskellPackages.xml-types-content

Top 50 broken packages, sorted by number of reverse dependencies
50 job(s)
gogol-core ⤴ 184
haskell98 ⤴ 152
failure ⤴ 72
enumerator ⤴ 56
connection ⤴ 53
util ⤴ 49
derive ⤴ 48
web-routes ⤴ 43
accelerate ⤴ 42
syb-with-class ⤴ 42
MonadCatchIO-transformers ⤴ 41
TypeCompose ⤴ 41
PrimitiveArray ⤴ 35
crypto-random ⤴ 35
rank1dynamic ⤴ 33
dual ⤴ 32
hsp ⤴ 32
distributed-static ⤴ 31
language-ecmascript ⤴ 31
distributed-process ⤴ 30
iteratee ⤴ 29
polysemy-time ⤴ 29
composite-base ⤴ 28
polysemy-resume ⤴ 28
polysemy-conc ⤴ 27
regexpr ⤴ 27
crypto-numbers ⤴ 25
either-unwrap ⤴ 25
polysemy-log ⤴ 25
HList ⤴ 24
web-routes-th ⤴ 24
Crypto ⤴ 22
crypto-pubkey ⤴ 22
haskelldb ⤴ 22
wxdirect ⤴ 22
BiobaseTypes ⤴ 21
alg ⤴ 21
userid ⤴ 21
wxc ⤴ 21
biocore ⤴ 20
reform ⤴ 20
wxcore ⤴ 20
attoparsec-enumerator ⤴ 19
bytestring-show ⤴ 19
cprng-aes ⤴ 19
fay ⤴ 19
harp ⤴ 19
hsx2hs ⤴ 19
incipit ⤴ 19
ixset ⤴ 19

⤴: The number of packages that depend (directly or indirectly) on this package (if any). If two numbers are shown the first (lower) number considers only packages which currently have enabled hydra jobs, i.e. are not marked broken. The second (higher) number considers all packages.
Report generated with maintainers/scripts/haskell/hydra-report.hs

Packages that will fix themselves in the next iteration:

[ ] hasktorch and friends
[ ] hsc3
[ ] gi-nm possibly (or in Stackage LTS 23?)
[ ] libremidi

Note that this PR notably regresses echidna (due to the hevm update). There will be ample time to merge a fix into staging, staging-next and even master eventually since it doesn't have many (any?) reverse dependencies. cc @hellwolf @arcz


KAFKA-10173: Use SmokeTest for upgrade system tests

Replaces the previous upgrade test's trivial Streams app
with the commonly used SmokeTest, exercising many more
features. Also adjust the test matrix to test upgrading
from each released version since 2.2 to the current branch.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

@vvcephei I have a couple meta questions about the missing tests: in test_metadata_upgrade we are testing upgrading from metadata_2_versions to metadata_3_or_higher_versions, where metadata_3_or_higher_versions includes up to trunk versions, would that provide some coverage?
A second question is that, we should still keep the "downgrade" test from trunk to the specified old version, right?

Thanks, @guozhangwang,
Yes, the metadata upgrade test does provide some coverage, although, it only demonstrates that you can upgrade across metadata versions, not within them. I.e., it proves upgrading from 1.1 to 2.5, but not 2.4 to 2.5.
Actually, now that you mention it, it seems like the "simple upgrade" (now "app upgrade") should not be setting "upgrade from". I'll take that out.
Also, yes, I think you're right, we should also verify downgrading, although it's actually a bit of an issue for suppression in particular and for any change in persistent data in general. For suppression, the later versions would write a "version 3" record to the changelog, and upon downgrading, the old application would only know how to decode a "version 1" record. How can it make progress? The best it could do is stop processing and shut itself down. Then, the operator would have to reset the app.
Off the top of my head, this is also going to be true of all changes that change anything about changelogs or repartition topics. Additionally, things that change the on-disk format, such as the timestamped state stores, would not be downgradeable, unless the operator deletes the state directory. I think we never noticed because the upgrade/downgrade app was using a trivial topology. I bet if we backport the smoke test app to the 0.x and 1.x series, we'd find that it's never been practically possible to downgrade without a reset or at least dropping the state directory.
That said, I'm very much at risk of motivated reasoning here, so please bring your best skeptical counterarguments :)

Oof, looks like I missed "something": http://confluent-kafka-branch-builder-system-test-results.s3-us-west-2.amazonaws.com/2020-06-30--001.1593562449--vvcephei--kafka-10173-upgrde-smoke-system-test--1123f6f2c/report.html

I had a chat with @ableegoldman earlier today.
As a general strategy, maybe what we can do is aim to repair the non-downgradability where it exists. For example, when we release 2.5.1, then it will become possible to downgrade (with suppression) from 2.6.0 to 2.5.1 even though it's not possible to downgrade from 2.6.0 to 2.5.0.
There's a bit of a chicken-and-egg problem here, since we can't add the downgrade tests yet, but what I can do is to create the tickets to both fix the known downgrade issues and then add the relevant downgrade path to the test matrix. Similar to how I couldn't add an upgrade test from 2.1 to trunk, but I filed a ticket with a note that once the ticket is fixed, we should be able to add the missing test parameters.

The existing streams_upgrade_test.py passes:
http://confluent-kafka-branch-builder-system-test-results.s3-us-west-2.amazonaws.com/2020-07-01--001.1593623647--vvcephei--kafka-10173-upgrde-smoke-system-test--be475ec5e/report.html
The new streams_application_upgrade_test.py passes:
http://confluent-kafka-branch-builder-system-test-results.s3-us-west-2.amazonaws.com/2020-07-01--001.1593622020--vvcephei--kafka-10173-upgrde-smoke-system-test--131f98db8/report.html
The full streams test suite is ongoing: https://jenkins.confluent.io/job/system-test-kafka-branch-builder/4007/console

There's a bit of a chicken-and-egg problem here, since we can't add the downgrade tests yet, but what I can do is to create the tickets to both fix the known downgrade issues and then add the relevant downgrade path to the test matrix. Similar to how I couldn't add an upgrade test from 2.1 to trunk, but I filed a ticket with a note that once the ticket is fixed, we should be able to add the missing test parameters.

Sounds good to me!

LGTM.

The full streams suite completed. There was just one unrelated failure: http://confluent-kafka-branch-builder-system-test-results.s3-us-west-2.amazonaws.com/2020-07-01--001.1593635888--vvcephei--kafka-10173-upgrde-smoke-system-test--131f98db8/report.html

The test failures were just the usual suspects:
org.apache.kafka.connect.mirror.MirrorConnectorsIntegrationTest.testOneWayReplicationWithAutorOffsetSync1
org.apache.kafka.streams.integration.EosBetaUpgradeIntegrationTest.shouldUpgradeFromEosAlphaToEosBeta[false/true]

Thanks, @guozhangwang !
I'll start the process of backporting this.


Add the module keyword to package.json

Hi,
This should allow package bundlers that support ES Modules to import the package correctly.
Thank you!

Thanks a lot for this addition to the library!


Plugin config

As a plugin developer I would like to customize the settings page so I can add more info that only the plugin fields.
e.g.
For the stripe plugin I would like to add the possibility to connect via Oauth, so when the plugin is installed I would like to add the connect button.

When I'm connected to stripe I would also like to hide the form so I can show a custom settings page like that one:

:+1: for the Oauth (or any form of third-party authorization) in payments. It's the way to go

@rogergros did you solve this in Shopery? How?
Thanks!

I think that @tonipinel solved that. He added a render for a "header" and a "footer" template for the config and in case the plugin contains this template it renders the content.

@rogergros But this is solved in Bamboo?

I don't think so but as I said the right guy to ask that is @tonipinel

so... @tonipinel ?

Thanks.


Submitting expression with identical text crashes bug

Reproduce:

copy text of default expression and run it
run "x"
run on copied default expression

Result:

No longer reproducible


Improve the algorithm of the paths that represent loop edges

Multiple loop edges are just moving away from the node

fixed in https://github.com/maurizzzio/greuler/commit/9d6f8e86ea15c8dd6529666392f95f0380a3f624
v0.5.0


[SDK BUG] Gamebar resizes preferences window to a different size than specified

Describe the bug
After a recent gamebar update, a preferences window will be resized to a size different from what is specified in the manifest.
To Reproduce
Steps to reproduce the behavior:

Open the WidgetAvSampleCs sample
Change the size of the preferences window in the manifest to something different (e.g. the height to 600)
Open the widget in the gamebar and click on the preferences button
The window will be opened at the correct size for a split second but will then will be resized

Expected behavior
The window size should follow the size defined in the manifest
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS version: Windows 10 2004 (19041.264)
Game Bar version 5.320.5221.0
SDK version: XboxGameBar.5.1.200402003

Additional context
Add any other context about the problem here.

We're investigating this now.

We'll be addressing this in the next update, should be available early next week.
VSO 26769630

Please try the latest Game Bar build we have pushed to SDK Insiders: v5.320.6093.0
This issue should be addressed now.

The issue has been fixed. Thank you!

FYI - the 20.06 release date has been tentatively moved to 6/24 in order to work through a recently discovered issue. Please continue to hold any app submissions that depend on the 5.3 SDK until it has been released.
Sorry for the inconvenience.


Use fopen for isFileExistsInternal on android

I was just profiling my game and realized that isFileExists was appearing in my profile for some reason. Upon digging further, it seems we are using the stat struct to know about the file's existence on android. I changed it back to fopen and the profiling showed a great improvement.
I tested this on an android 10 device (snapdragon 865+) with the project built in release with profiling on.
Maybe you can also test on other devices.
Performance with stat

Performance with fopen

Could you share your performance test code?

Since our build system fully support c++17 filesystem, what about use filesystem is_regular_file?

Could you share your performance test code?

I tested this on my production game's code, so I can't share it :(
You can just load run the tests and profile them.

Since our build system fully support c++17 filesystem, what about use filesystem is_regular_file?
is_regular_file or exists ?
Let me try to profile this.

OK, I will test on my device MI MIX4 (Android 12)

@halx99
I wrote a very simple test and slapped it in FileUtilsTests in cpp_tests project and std::filesystem api is the slowest.
These are the results -
fopen - 6.5ms
struct stat - 6.2ms
std::filesystem::exists - 10ms
std::filesystem::is_regular_file - 9.5ms
stat seems to be performing better here as expected. Not really sure why my initial tests showed it to be slow.
// TestIsFileExistPerformance

void TestIsFileExistPerformance::onEnter()
{
    FileUtilsDemo::onEnter();
    auto fs = FileUtils::getInstance();

    int subDirectories;
    for (int i = 0; i < MAX_FILES; i++)
    {
        _filePaths[i] = fs->getWritablePath();
        subDirectories = rand() % 5;
        for (int j = 0; j < subDirectories; j++)
            _filePaths[i] += std::to_string(j) + "/";

        if (subDirectories > 0)
            fs->createDirectory(_filePaths[i]);
        _filePaths[i] += "_" + std::to_string(i);
    }

    // The data that we will write to test files
    std::string data(2048, '0');
    for (int i = 0; i < MAX_FILES; i+=2)
    {
        fs->writeStringToFile(data, _filePaths[i]);
    }

    int existsCount = 0;
    int notExists = 0;
    auto start = std::chrono::high_resolution_clock::now();
    for (int i = 0; i < MAX_FILES; ++i)
    {
        if (fs->isFileExist(_filePaths[i]))
        {
            existsCount++;
        }
        else
        {
            notExists++;
        }
    }
    auto end = std::chrono::high_resolution_clock::now();
    auto ms = std::chrono::duration_cast<std::chrono::milliseconds>(end - start).count();

    AXLOG("[TestIsFileExistPerformance]: Took %d ms", ms);

    AXASSERT(existsCount == MAX_FILES / 2, "existsCount invalid!");
    AXASSERT(notExists == MAX_FILES / 2, "notExists invalid!");
}

void TestIsFileExistPerformance::onExit()
{
    FileUtils* fs = FileUtils::getInstance();
    for (int i = 0; i < MAX_FILES; ++i)
    {
        if (fs->isFileExist(_filePaths[i]))
        {
             fs->removeFile(_filePaths[i]);
        }
    }

    FileUtilsDemo::onExit();
}

std::string TestIsFileExistPerformance::title() const
{
    return "FileUtils: check performance of isFileExistInternal";
}

std::string TestIsFileExistPerformance::subtitle() const
{
    return "";
}

class TestIsFileExistPerformance : public FileUtilsDemo
{
private:
    static const int MAX_FILES = 2000;
    std::string _filePaths[MAX_FILES];

public:
    CREATE_FUNC(TestIsFileExistPerformance);

    virtual void onEnter() override;
    virtual void onExit() override;
    virtual std::string title() const override;
    virtual std::string subtitle() const override;
};


lazy_lookup  crash

Expected behaviour:
Not to crash...
Actual behaviour:
Crash
Steps to reproduce:
Run full config at https://github.com/pluskal/flexget/blob/master/config.yml
Config:
  disable-seen-retry:
    disable:
      - seen
      - seen_info_hash
      - retry_failed

  series-metainfo:
    trakt_lookup: yes
    imdb_lookup: yes
    metainfo_series: yes
    thetvdb_lookup: yes

  fill-series-list:
    priority: 3
    template:
      - disable-seen-retry
      - series-metainfo
    trakt_list:
      account: '{? trakt.account ?}'
      list: '{? trakt.series ?}'
      type: shows
    accept_all: yes
    set:
      title: "{{ tvdb_series_name|escape|replace(''', '') }}"
    list_add:
      - entry_list: trakt-series

Log:
2017-05-24 19:52 ERROR    lazy_lookup   fill-series-list Unhandled error in lazy lookup plugin
2017-05-24 19:52 CRITICAL manager       fill-series-list An unexpected crash has occurred. Writing crash report to /root/.flexget/crash_report.2<IP_ADDRESS>223061436.log. Please verify you are running the latest version of flexget by using "flexget -V" from CLI or by using version_checker plugin at http://flexget.com/wiki/Plugins/version_checker. You are currently using version 2.10.52
2017-05-24 19:52 DEBUG    manager       fill-series-list Traceback:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/site-packages/flexget/utils/lazy_dict.py", line 37, in __getitem__
    func(self.store)
  File "/usr/local/lib/python2.7/site-packages/flexget/plugins/metainfo/trakt_lookup.py", line 212, in lazy_series_actor_lookup
    entry.update_using_map(self.series_actor_map, series)
  File "/usr/local/lib/python2.7/site-packages/flexget/utils/sqlalchemy_utils.py", line 142, in __exit__
    self.commit()
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 906, in commit
    self.transaction.commit()
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 461, in commit
    self._prepare_impl()
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 441, in _prepare_impl
    self.session.flush()
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2171, in flush
    self._flush(objects)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2291, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 2255, in _flush
    flush_context.execute()
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 389, in execute
    rec.execute(self)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 548, in execute
    uow
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 181, in save_obj
    mapper, table, insert)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 799, in _emit_insert_statements
    execute(statement, multiparams)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 945, in execute
    return meth(self, multiparams, params)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/sql/elements.py", line 263, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1053, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1189, in _execute_context
    context)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1402, in _handle_dbapi_exception
    exc_info
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1159, in _execute_context
    context)
  File "/usr/local/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 467, in do_executemany
    cursor.executemany(statement, parameters)
IntegrityError: (sqlite3.IntegrityError) UNIQUE constraint failed: trakt_actors.id [SQL: u'INSERT INTO trakt_actors (id, name, slug, tmdb, imdb, biography, birthday, death, homepage) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)'] [parameters: ((200576, u'George Blagden', u'george-blagden', 1256160, u'nm4491241', None, None, None, u''), (560638, u'Stuart Bowman', u'stuart-bowman', 1532375, None, None, None, None, None), (642027, u'Maddison Jaizani', u'maddison-jaizani', 1630124, None, None, None, None, None), (7172, u'Joe Sheridan', u'joe-sheridan', 12983, u'nm0792190', None, None, None, None), (15763, u'Pip Torrens', u'pip-torrens', 36666, u'nm0868476', u'From Wikipedia, the free encyclopedia.\xa0\n\nPip Torrens\xa0(born June 2, 1960) is an English actor.\xa0He studied English Literature at Trinity Co ... (692 characters truncated) ... cework for Valiant.\n\n\xa0Description above from the Wikipedia article Pip Torrens, licensed under CC-BY-SA, full list of contributors on Wikipedia.', None, None, None), (45183, u'Evan Williams', u'evan-williams', 59600, u'nm0930570', None, None, None, u''), (64148, u'Elisa Lasowski', u'elisa-lasowski', 1027457, u'nm2489799', None, None, None, None), (180610, u'Steve Cumyn', u'steve-cumyn', 188634, u'nm0192056', None, None, None, None)  ... displaying 10 of 19 total bound parameter sets ...  (552114, u'Gilly Gilchrist', u'gilly-gilchrist', 1475236, None, None, None, None, None), (568571, u'No\xe9mie Schmidt', u'noemie-schmidt', 1573867, None, None, '1990-11-18', None, u''))]

Additional information:

FlexGet version: 2.10.52
Python version: Python 2.7.12
Installation method: pip
Using daemon (yes/no): yes
OS and version: Arch
Link to crash log: https://pastebin.com/sNdsCgEB

Does this consistently fail for you?

Yes, every time that the task runs.

Can you find out which particular series causes this? Otherwise we can't really fix it.

Strongly guessing Versailles based on the combination of actors in the log.

Confirmed... It is a Versailes

But is Versailles itself enough to trigger this?

Can you give me a hint how to do that? I`m very sorry, but I do not have time to find on my own in next two weeks.

flexget database reset-plugin api_trakt

Ok, tested and it crashes still with only Versailles in the list.

Works for me, so I'm guessing it's not just Versailles causing this.

What does it matter @cvium? There's obviously an issue here

Well... the error is IntegrityError so something must have added one of actors before.  Maybe race condition, missing check fox item existence,or something.
I guess that the  IntegrityError  is collision in ID or other column if there is some index in the trakt_actors table.

You can't fix an error you can't reproduce. I'm not saying there isn't a problem, I'm just saying it works for me.

check actors because there are times when a single actor actually has multiple id's so there might be an issue there not sure.


Reset button for heat infrastructure

It would be nice to a have a button to reset the heat infrastructure to the orginal values of the LES.

Transfering the issue from me to @MarjoleinSchwachofer

I guess it would also be nice to have a similar feature for the gas infrastructure. Another possibility might be to whenever a new part of the infrastructure is added to give it the default values as it was imported from ETM and/or scaled to the number of gasconnections.

I guess it would also be nice to have a similar feature for the gas infrastructure.

We already have that. It's the "Rescale assets to gas connections"-button:

Another possibility might be to whenever a new part of the infrastructure is added to give it the default values as it was imported from ETM and/or scaled to the number of gasconnections or heatconnections, respectively.

Can you give a concrete example of what yo mean and how that differs from what we currently do?


Hide 'Issue Request' button for standalone checks

Closes https://github.com/sensu/uchiwa/issues/754

Yeah, this completely removed the 'Issue  Request' button from our non standalone checks as well.

I opened a new issue in order to track this bug: https://github.com/sensu/uchiwa/issues/778.
Thanks!

I just updated to the latest version - 1.3.0 and the 'issue request' button is still missing for our non-standalone checks.

What version of uchiwa should I use to restore the "issue request" button back to uchiwa?
Thanks!

1.1.2 is the one you are looking for.

Did this button ever make it back in? We're running 1.5.0 and this button is still missing.
Thanks.

Nope, see #778


kubectl crashes while creating 1000 pvc

Create a GCS cluster.
Start a parallel PVC creation and wait for for all the PVC

  0s
pvc-2d9eaa04-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Pending   default/gcs-pvc711   glusterfs-csi         0s
pvc-2d9eaa04-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Bound   default/gcs-pvc711   glusterfs-csi         0s
pvc-2e1cdbef-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Pending   default/gcs-pvc713   glusterfs-csi         0s
pvc-2e1cdbef-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Bound   default/gcs-pvc713   glusterfs-csi         0s
pvc-2e1cdbef-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Bound   default/gcs-pvc713   glusterfs-csi         0s
pvc-2e6c2866-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Pending   default/gcs-pvc714   glusterfs-csi         0s
pvc-2e6c2866-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Bound   default/gcs-pvc714   glusterfs-csi         1s
pvc-2e6c2866-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Bound   default/gcs-pvc714   glusterfs-csi         1s
pvc-2eaf6432-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Pending   default/gcs-pvc715   glusterfs-csi         0s
pvc-2eaf6432-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Bound   default/gcs-pvc715   glusterfs-csi         0s
pvc-2eaf6432-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Bound   default/gcs-pvc715   glusterfs-csi         0s
pvc-2ef34e4a-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Pending   default/gcs-pvc716   glusterfs-csi         0s
pvc-2ef34e4a-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Pending   default/gcs-pvc716   glusterfs-csi         0s
pvc-2ef34e4a-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Bound   default/gcs-pvc716   glusterfs-csi         1s
pvc-2de0ae97-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Pending   default/gcs-pvc712   glusterfs-csi         0s
pvc-2de0ae97-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Bound   default/gcs-pvc712   glusterfs-csi         0s
pvc-2de0ae97-0f4c-11e9-8d2d-525400e329db   500Mi   RWX   Delete   Bound   default/gcs-pvc712   glusterfs-csi

After a while kubectl crashes

[vagrant@kube1 ~]$
[vagrant@kube1 ~]$ kubectl get pv
The connection to the server localhost:8080 was refused - did you specify the right host or port?
[vagrant@kube1 ~]$ kubectl get pvc
The connection to the server localhost:8080 was refused - did you specify the right host or port?
[vagrant@kube1 ~]$
[vagrant@kube1 ~]$ kubectl get pods -n gcs
The connection to the server localhost:8080 was refused - did you specify the right host or port?

[root@gluster-kube3-0 /]# systemctl status gluster-exporter
● gluster-exporter.service - Gluster Prometheus Exporter
   Loaded: loaded (/usr/lib/systemd/system/gluster-exporter.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/gluster-exporter.service.d
           └─override.conf
   Active: active (running) since Thu 2019-01-03 10:34:24 UTC; 40min ago
 Main PID: 22 (gluster-exporte)
   CGroup: /kubepods.slice/kubepods-besteffort.slice/kubepods-besteffort-pod8fe4cc3a_0f42_11e9_be36_525400d45ea4.slice/docker-71abc8de24c30e52ac2edb2d3e145d607499b042f17c90704dc1436a793aed0d.scope/system.slice/gluster-exporter.service
           └─22 /usr/sbin/gluster-exporter --config=/etc/gluster-exporter/gluster-exporter....

Jan 03 10:34:24 gluster-kube3-0 systemd[1]: Started Gluster Prometheus Exporter.
[root@gluster-kube3-0 /]# systemctl stop gluster-exporter
[root@gluster-kube3-0 /]#
[root@gluster-kube3-0 /]#
[root@gluster-kube3-0 /]# systemctl status gluster-exporter
● gluster-exporter.service - Gluster Prometheus Exporter
   Loaded: loaded (/usr/lib/systemd/system/gluster-exporter.service; enabled; vendor preset: disabled)
  Drop-In: /etc/systemd/system/gluster-exporter.service.d
           └─override.conf
   Active: inactive (dead) since Thu 2019-01-03 11:15:24 UTC; 1s ago
  Process: 22 ExecStart=/usr/sbin/gluster-exporter --config=/etc/gluster-exporter/gluster-exporter.toml (code=killed, signal=TERM)
 Main PID: 22 (code=killed, signal=TERM)

Jan 03 10:34:24 gluster-kube3-0 systemd[1]: Started Gluster Prometheus Exporter.
Jan 03 11:15:24 gluster-kube3-0 systemd[1]: Stopping Gluster Prometheus Exporter...
Jan 03 11:15:24 gluster-kube3-0 systemd[1]: Stopped Gluster Prometheus Exporter.

[vagrant@kube2 ~]$ kubectl get pods -n gcs
NAME                                   READY   STATUS      RESTARTS   AGE
anthill-7f9dbb66c8-dx72h               1/1     Running     0          5h6m
csi-attacher-glusterfsplugin-0         2/2     Running     0          5h
csi-nodeplugin-glusterfsplugin-6msqc   2/2     NodeLost    0          5h
csi-nodeplugin-glusterfsplugin-7xbp5   2/2     Running     0          5h
csi-nodeplugin-glusterfsplugin-hz22z   2/2     Running     0          5h
csi-provisioner-glusterfsplugin-0      3/3     Unknown     0          5h
etcd-gjzts8xdvx                        0/1     Running     0          5h6m
etcd-hv429kv7tp                        0/1     Unknown     0          5h5m
etcd-operator-7cb5bd459b-d2c79         1/1     Running     5          5h7m
etcd-sslrc7n9bh                        0/1     Completed   0          5h5m
gluster-kube1-0                        1/1     Unknown     1          5h4m
gluster-kube2-0                        1/1     Running     1          5h4m
gluster-kube3-0                        1/1     Running     1          5h4m
[vagrant@kube2 ~]$

Observations:-

Seeing the etcd pods going into completed state.
Total bound number of PVC are 716 ; total number of PVC issued are 1001
PVC are still not deleting gracefully.

etcd-gj.log
etcd-hv.log
etcd-operator.log
etcd-ss.log
glusterd2_kubectlcrash.log

csiattcher.log

I have seen this in Vagrant as well. The problem I had was that I overloaded the nodes (VMs) and various processes were getting oom-killed. Is that a possibility here? (from "NodeLost" and "unknown" pods states, it looks like it may be)


Execute child commands async

Closing in favor of a better solution proposed in https://github.com/colyseus/command/issues/3.


feature/96/faq

Are the comments marked as resolved because they are being worked on @norachams ? If yes, a comment saying they are being worked on would be nice if changes have not been committed.


refreshTokenWithAssertion  Failing reauthentication

I am running a script to patch 2000 business using Google My Business
At record 900 i get
"code": 401,
"message": "Request had invalid authentication credentials.",
Before each curl call I am checking the token
if ($client->isAccessTokenExpired()) {
$oauth2Token = $client->refreshTokenWithAssertion()['access_token'];
}
Are there any timeout issues here?  Is this the correct implementation for  "google/apiclient": "2.0.0-RC7"

I am running a script to patch 2000 business using Google My Business
At record 900 i get
"code": 401,
"message": "Request had invalid authentication credentials.",
Before each curl call I am checking the token
I am getting a UNAUTHENTICATED error between 900 and 1000 records when doing a test update
if ($client->isAccessTokenExpired()) {
$oauth2Token = $client->refreshTokenWithAssertion()['access_token'];
}
Are there any timeout issues here? Is this the correct implementation for "google/apiclient": "2.0.0-RC7"

What you are doing looks correct. It does seem like refreshTokenWithAssertion is not successfully fetching the token.
I would debug what is being returned first, and see if that sheds any light on the issue.  If a JSON error is the response from the HTTP server, then that error will be returned from refreshTokenWithAssertion:
if ($client->isAccessTokenExpired()) {
    $result = $client->refreshTokenWithAssertion();
    if (!isset($result['access_token'])) {
        throw new \Exception('unexpected response: ' . json_encode($result));
    }
    $oauth2Token = $result['access_token'];
}

If that doesn't work, you should be able to use a web proxy like Charles to debug the HTTP request going across the wire:
$client = new Google_Client;
$http = new GuzzleHttp\Client([
    'proxy' => 'localhost:8888', // this is where charles is running
    'verify' => false,
]);
$client->setHttpClient($http);

This issue has been closed due a lack of response. Please reopen with more information if the problem is still occurring.