Marathon lost FrameworkId and tasks after crashing

Environment:
Marathon 0.10.1 (--ha mode with 3 instances)
Mesos 0.23 (3 instances running on the same hosts that Marathon is)
A lot of event subscribers (we are using Qubit Bamboo for service discovery)
About 120 apps and 400 tasks
The first error was in instance 13 (current leader):
[ERROR] [09/07/2015 01:31:35.640] [marathon-akka.actor.default-dispatcher-52] [ActorSystem(marathon)] Uncaught error from thread [marathon-akka.actor.default-dispatcher-52] shutting down JVM since 'akka.jvm-exit-on-fatal-error' is enabled
java.lang.StackOverflowError
        at scala.collection.MapLFike$FilteredKeys.iterator(MapLike.scala:232)
        at scala.collection.MapLike$FilteredKeys.iterator(MapLike.scala:232)
        at scala.collection.MapLike$FilteredKeys.iterator(MapLike.scala:232)
        at scala.collection.MapLike$FilteredKeys.iterator(MapLike.scala:232)
        at scala.collection.MapLike$FilteredKeys.iterator(MapLike.scala:232)
        at scala.collection.MapLike$FilteredKeys.iterator(MapLike.scala:232)
        at scala.collection.MapLike$FilteredKeys.iterator(MapLike.scala:232)
        ...
        at scala.collection.MapLike$FilteredKeys.iterator(MapLike.scala:232)

This happened together with mesos reconciliation.
Some logs more in the same instance:
[2015-09-07 01:31:35,661] INFO Shutting down services (mesosphere.marathon.Main$:42)

[2015-09-07 01:31:35,708] INFO Shutdown triggered (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:167)
[2015-09-07 01:31:35,708] INFO Stopping driver (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:222)

[2015-09-07 01:31:35,804] INFO Driver future completed. Executing optional abdication command. (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:193)
[2015-09-07 01:31:35,811] INFO Cancelling timer (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:173)
[2015-09-07 01:31:35,813] INFO Defeated (Leader Interface) (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:233)
[2015-09-07 01:31:35,813] INFO Defeat leadership (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:276)
[2015-09-07 01:31:35,813] INFO Now standing by. Closing existing handles and rejecting new. (mesosphere.marathon.event.http.HttpEventStreamActor:96)
[INFO] [09/07/2015 01:31:35.813] [marathon-akka.actor.default-dispatcher-62] [akka://marathon/user/MarathonScheduler/$a] Suspending scheduler actor

[2015-09-07 01:31:35,816] INFO Do not proxy to myself. Waiting for consistent leadership state. Are we leader?: false, leader: Some(<IP_ADDRESS>:8080) (mesosphere.marathon.api.LeaderProxyFilter$:130)

[2015-09-07 01:31:35,819] INFO Leadership info is consistent again! (mesosphere.marathon.api.LeaderProxyFilter$:99)

Now the log of the new elected leader:
[2015-09-07 01:31:35,813] INFO Candidate /marathon3/leader/member_0000000174 is now leader of group: [member_0000000176, member_0000000174] (com.twitter.common.zookeeper.CandidateImpl:152)
[2015-09-07 01:31:35,846] INFO Elected (Leader Interface) (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:242)
[2015-09-07 01:31:35,926] INFO Elect leadership (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:290)
[2015-09-07 01:31:35,927] INFO Running driver (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:185)
[2015-09-07 01:31:35,926] INFO Migration successfully applied for version Version(0, 10, 0) (mesosphere.marathon.state.Migration:70)

[INFO] [09/07/2015 01:31:35.949] [marathon-akka.actor.default-dispatcher-64] [akka://marathon/user/MarathonScheduler/$a] Starting scheduler actor

[2015-09-07 01:31:35,949] INFO Became active. Accepting event streaming requests. (mesosphere.marathon.event.http.HttpEventStreamActor:101)

[INFO] [09/07/2015 01:31:35.977] [marathon-akka.actor.default-dispatcher-64] [akka://marathon/user/MarathonScheduler/$a] Scheduler actor ready

[2015-09-07 01:31:36,078] INFO Reset offerLeadership backoff (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:320)
[2015-09-07 01:31:36,097] INFO Registered as 20150902-231517-235670794-5050-13589-0000 to master '20150902-231517-235670794-5050-13589' (mesosphere.marathon.MarathonScheduler$$EnhancerByGuice$$a7f5cf0a:55)

[INFO] [09/07/2015 01:31:36.106] [marathon-akka.actor.default-dispatcher-64] [akka://marathon/user/offerReviver] Received scheduler registration event
[INFO] [09/07/2015 01:31:36.106] [marathon-akka.actor.default-dispatcher-71] [akka://marathon/user/$b] POSTing to all endpoints.
[INFO] [09/07/2015 01:31:36.106] [marathon-akka.actor.default-dispatcher-64] [akka://marathon/user/offerReviver] => revive offers NOW, canceling any scheduled revives

Then I saw the two frameworks running together and obviously I did some work to shutdown all old tasks because Marathon don't recognize all of then.
I'm suspecting of the event bus as the cause of the crash, but I think the bigger problem is that Marathon didn't recognize the oldest FrameworkId.
Let me know if you guys need some more information.

Hey @gomes the StackOverflow error really sounds bad. Can we have the log file of that instance?
The second snippet looks correct: the leadership is abdicated and the instance is waiting for consistent leadership.
The third snippet shows, that only two instances are applying for leadership.
The leader is Marathon version 0.10.0 - do you have different versions in your cluster?
From the logs provided I do not see the loss of FrameworkId.
Can you elaborate on that? Thanks!

Hi @aquamatthias, my bad, we have 3 instances running Marathon 0.10.0, not 0.10.1
About the loss of FrameworkId, the previous was 20150817-153018-202116362-5050-21340-0000
[2015-09-03 03:36:20,009] INFO Candidate /marathon3/leader/member_0000000173 is now leader of group: [member_0000000174, member_0000000173] (com.twitter.common.zookeeper.CandidateImpl:152)
[2015-09-03 03:36:20,011] INFO Elected (Leader Interface) (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:242)
[2015-09-03 03:36:20,099] INFO Migration successfully applied for version Version(0, 10, 0) (mesosphere.marathon.state.Migration:70)
[2015-09-03 03:36:20,099] INFO Elect leadership (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:290)
[2015-09-03 03:36:20,100] INFO Running driver (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:185)
[2015-09-03 03:36:20,103] INFO Became active. Accepting event streaming requests. (mesosphere.marathon.event.http.HttpEventStreamActor:101)
[INFO] [09/03/2015 03:36:20.103] [marathon-akka.actor.default-dispatcher-5] [akka://marathon/user/MarathonScheduler/$a] Starting scheduler actor
[2015-09-03 03:36:20,105] INFO Reset offerLeadership backoff (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$2c1b9a:320)
[2015-09-03 03:36:20,132] INFO Registered as 20150817-153018-202116362-5050-21340-0000 to master '20150902-231517-235670794-5050-13589' (mesosphere.marathon.MarathonScheduler$$EnhancerByGuice$$a7f5cf0a:55
)

Hello,
We can report the same issue. We have seen the java process die, with this as a result:

Im working on getting the logs, since we have 2G binary log files on the test machines it is taking some time. So far i found this:
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: #
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: # A fatal error has been detected by the Java Runtime Environment:
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: #
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: #  Internal Error (safepoint.cpp:310), pid=1301, tid=139942606366464
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: #  guarantee(PageArmed == 0) failed: invariant
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: #
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: # JRE version: OpenJDK Runtime Environment (8.0_25-b18) (build 1.8.0_25-b18)
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: # Java VM: OpenJDK 64-Bit Server VM (25.25-b02 mixed mode linux-amd64 compressed oops)
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: # Failed to write core dump. Core dumps have been disabled. To enable core dumping, try "ulimit -c unlimited" before starting Java again
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: #
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: # An error report file with more information is saved as:
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: # //hs_err_pid1301.log
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: #
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: # If you would like to submit a bug report, please visit:
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: #   http://bugreport.sun.com/bugreport/crash.jsp
Sep 23 09:28:57 mf02.surfsara.nl marathon[1318]: #
Sep 23 09:28:58 mf02.surfsara.nl systemd[1]: marathon.service: main process exited, code=killed, status=6/ABRT
Sep 23 09:28:58 mf02.surfsara.nl systemd[1]: Unit marathon.service entered failed state.
Sep 23 09:28:58 mf02.surfsara.nl systemd[1]: marathon.service failed.
Sep 23 09:29:18 mf02.surfsara.nl marathon[26660]: run_jar
Sep 23 09:29:18 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:18,832] INFO Starting Marathon 0.10.0 (mesosphere.marathon.Main$:87)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,190] INFO Connecting to Zookeeper... (mesosphere.marathon.Main$:37)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,207] INFO Client environment:zookeeper.version=3.4.6-1569965, built on 02/20/2014 09:09 GMT (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,207] INFO Client environment:host.name=mf02.surfsara.nl (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,207] INFO Client environment:java.version=1.8.0_25 (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,208] INFO Client environment:java.vendor=Oracle Corporation (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,208] INFO Client environment:java.home=/usr/lib/jvm/java-1.8.0-openjdk-<IP_ADDRESS>-4.b18.fc21.x86_64/jre (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,208] INFO Client environment:java.class.path=/usr/bin/marathon (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,208] INFO Client environment:java.library.path=/usr/local/lib:/usr/lib:/usr/lib64 (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,208] INFO Client environment:java.io.tmpdir=/tmp (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,208] INFO Client environment:java.compiler=<NA> (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,208] INFO Client environment:os.name=Linux (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,208] INFO Client environment:os.arch=amd64 (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,208] INFO Client environment:os.version=3.17.4-301.fc21.x86_64 (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,208] INFO Client environment:user.name=root (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,209] INFO Client environment:user.home=/root (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,210] INFO Client environment:user.dir=/ (org.apache.zookeeper.ZooKeeper:100)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,210] INFO Initiating client connection, connectString=mm01.surfsara.nl:2181,mm02.surfsara.nl:2181,mm03.surfsara.nl:2181 sessionTimeout=30000 watcher=com.twitter.common.zookeeper.ZooKeeperClient$3@21d8bcbe (org.apache.zookeeper.ZooKeeper:438)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,288] INFO Opening socket connection to server <IP_ADDRESS>/<IP_ADDRESS>:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn:975)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,358] INFO Socket connection established to <IP_ADDRESS>/<IP_ADDRESS>:2181, initiating session (org.apache.zookeeper.ClientCnxn:852)
Sep 23 09:29:20 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:20,407] INFO Session establishment complete on server <IP_ADDRESS>/<IP_ADDRESS>:2181, sessionid = 0x14fb16ba2830109, negotiated timeout = 30000 (org.apache.zookeeper.ClientCnxn:1235)
Sep 23 09:29:21 mf02.surfsara.nl marathon[26674]: [INFO] [09/23/2015 09:29:21.804] [marathon-akka.actor.default-dispatcher-4] [akka://marathon/user/offerReviver] Starting up
Sep 23 09:29:21 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:21,832] INFO Initiating client connection, connectString=mm01.surfsara.nl:2181,mm02.surfsara.nl:2181,mm03.surfsara.nl:2181 sessionTimeout=1800000 watcher=com.twitter.zk.EventBroker@7ed9499e (org.apache.zookeeper.ZooKeeper:438)
Sep 23 09:29:21 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:21,839] INFO Opening socket connection to server <IP_ADDRESS>/<IP_ADDRESS>:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn:975)
Sep 23 09:29:21 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:21,842] INFO Socket connection established to <IP_ADDRESS>/<IP_ADDRESS>:2181, initiating session (org.apache.zookeeper.ClientCnxn:852)
Sep 23 09:29:21 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:21,871] INFO Session establishment complete on server <IP_ADDRESS>/<IP_ADDRESS>:2181, sessionid = 0x34f6ead413f071a, negotiated timeout = 40000 (org.apache.zookeeper.ClientCnxn:1235)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,336] INFO Registering in Zookeeper with hostPort:mf02.surfsara.nl:8080 (mesosphere.marathon.MarathonModule:257)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,539] INFO Now standing by. Closing existing handles and rejecting new. (mesosphere.marathon.event.http.HttpEventStreamActor:96)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,586] INFO Adding HTTP support. (mesosphere.marathon.MarathonApp$$anon$1:47)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,587] INFO No HTTPS support configured. (mesosphere.marathon.MarathonApp$$anon$1:50)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,604] INFO Starting up (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$a77b4e58:146)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,604] INFO Beginning run (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$a77b4e58:151)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,605] INFO Will offer leadership after 500 milliseconds backoff (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$a77b4e58:325)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,605] INFO jetty-8.y.z-SNAPSHOT (org.eclipse.jetty.server.Server:272)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,803] INFO Registering com.codahale.metrics.jersey.InstrumentedResourceMethodDispatchAdapter as a provider class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:113)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,804] INFO Registering com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider as a provider class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:113)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,805] INFO Registering mesosphere.marathon.api.MarathonExceptionMapper as a provider class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:113)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,805] INFO Registering mesosphere.marathon.api.v2.AppsResource as a root resource class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:116)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,805] INFO Registering mesosphere.marathon.api.v2.TasksResource as a root resource class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:116)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,805] INFO Registering mesosphere.marathon.api.v2.EventSubscriptionsResource as a root resource class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:116)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,805] INFO Registering mesosphere.marathon.api.v2.QueueResource as a root resource class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:116)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,806] INFO Registering mesosphere.marathon.api.v2.GroupsResource as a root resource class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:116)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,806] INFO Registering mesosphere.marathon.api.v2.InfoResource as a root resource class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:116)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,806] INFO Registering mesosphere.marathon.api.v2.LeaderResource as a root resource class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:116)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,806] INFO Registering mesosphere.marathon.api.v2.DeploymentsResource as a root resource class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:116)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,806] INFO Registering mesosphere.marathon.api.v2.ArtifactsResource as a root resource class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:116)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,807] INFO Registering mesosphere.marathon.api.v2.SchemaResource as a root resource class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:116)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,807] INFO Registering mesosphere.chaos.validation.ConstraintViolationExceptionMapper as a provider class (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:113)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,809] INFO Initiating Jersey application, version 'Jersey: 1.18.1 02/19/2014 03:28 AM' (com.sun.jersey.server.impl.application.WebApplicationImpl:815)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,882] INFO Binding com.codahale.metrics.jersey.InstrumentedResourceMethodDispatchAdapter to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,912] INFO Binding mesosphere.marathon.api.MarathonExceptionMapper to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,915] INFO Binding mesosphere.chaos.validation.ConstraintViolationExceptionMapper to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,916] INFO Binding com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:22 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:22,933] INFO HV000001: Hibernate Validator 5.1.2.Final (org.hibernate.validator.internal.util.Version:27)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,127] INFO Using HA and therefore offering leadership (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$a77b4e58:332)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,188] INFO Set group member ID to member_0000000081 (com.twitter.common.zookeeper.Group:426)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,199] INFO Candidate /marathon/leader/member_0000000081 waiting for the next leader election, current voting: [member_0000000081, member_0000000079, member_0000000080] (com.twitter.common.zookeeper.CandidateImpl:165)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,599] INFO Binding mesosphere.marathon.api.v2.AppsResource to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,617] INFO Binding mesosphere.marathon.api.v2.TasksResource to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,620] INFO Binding mesosphere.marathon.api.v2.EventSubscriptionsResource to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,624] INFO Binding mesosphere.marathon.api.v2.QueueResource to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,639] INFO Binding mesosphere.marathon.api.v2.GroupsResource to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,642] INFO Binding mesosphere.marathon.api.v2.InfoResource to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,644] INFO Binding mesosphere.marathon.api.v2.LeaderResource to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,648] INFO Binding mesosphere.marathon.api.v2.DeploymentsResource to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,661] INFO Binding mesosphere.marathon.api.v2.ArtifactsResource to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,666] INFO Binding mesosphere.marathon.api.v2.SchemaResource to GuiceManagedComponentProvider with the scope "Singleton" (com.sun.jersey.guice.spi.container.GuiceComponentProviderFactory:168)
Sep 23 09:29:23 mf02.surfsara.nl marathon[26674]: [2015-09-23 09:29:23,748] INFO Started SelectChannelConnector@<IP_ADDRESS>:8080 (org.eclipse.jetty.server.AbstractConnector:338)
Sep 23 09:30:59 mf02.surfsara.nl systemd-coredump[26630]: Process 1301 (java) of user 0 dumped core.

We are using:
marathon-0.10.0-1.0.409.el7.x86_64
java-1.8.0-openjdk-headless-<IP_ADDRESS>-4.b18.fc21.x86_64
mesos-0.23.0-1.0.centos701406.x86_64
mesosphere-zookeeper-3.4.6-0.1.20141204175332.centos7.x86_64
Setup:
3 instances of marathon in ha on seperate vm's from the mesos masters
3 instances of mesos masters in vm's.
What seems to be the pattern is that the java process dies for x reason, marathon respawns and registers with a new framework id.

Today I had the problem again, Marathon became unresponsive and I restarted the current leader and after that, the new leader registered with a new FrameworkId and started to deploy all apps
I'm now running Marathon 0.11.1
[2015-10-28 12:10:17,577] INFO Proxying request to GET http://<IP_ADDRESS>:8080/ from <IP_ADDRESS>:8080 (mesosphere.marathon.api.JavaUrlConnectionRequestForwarder$:289)
[2015-10-28 12:10:17,579] INFO <IP_ADDRESS> - - [28/Oct/2015:14:10:17 +0000] "GET //localhost:8080/ HTTP/1.0" 502 172 "-" "Sensu-HTTP-Check (mesosphere.chaos.http.ChaosRequestLog$$EnhancerByGuice$$71dfd42d:14)
[2015-10-28 12:10:18,018] INFO Candidate /marathon3/leader/member_0000000288 is now leader of group: [member_0000000290, member_0000000288, member_0000000289] (com.twitter.common.zookeeper.CandidateImpl:152)
[2015-10-28 12:10:18,019] INFO Elected (Leader Interface) (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$5e112585:244)
[2015-10-28 12:10:18,035] INFO Initiating client connection, connectString=<IP_ADDRESS>:2181,<IP_ADDRESS>:2181,<IP_ADDRESS>:2181 sessionTimeout=1800000 watcher=com.twitter.zk.EventBroker@3a19caf5 (org.apache.zookeeper.ZooKeeper:438)
[2015-10-28 12:10:18,048] INFO Opening socket connection to server <IP_ADDRESS>/<IP_ADDRESS>:2181. Will not attempt to authenticate using SASL (unknown error) (org.apache.zookeeper.ClientCnxn:975)
[2015-10-28 12:10:18,049] INFO Socket connection established to <IP_ADDRESS>/<IP_ADDRESS>:2181, initiating session (org.apache.zookeeper.ClientCnxn:852)
[2015-10-28 12:10:18,055] INFO Session establishment complete on server <IP_ADDRESS>/<IP_ADDRESS>:2181, sessionid = 0x35000b7cb869613, negotiated timeout = 40000 (org.apache.zookeeper.ClientCnxn:1235)
[2015-10-28 12:10:18,240] INFO Migration successfully applied for version Version(0, 11, 1) (mesosphere.marathon.state.Migration:85)
[2015-10-28 12:10:18,252] INFO Elect leadership (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$5e112585:295)
[2015-10-28 12:10:18,252] INFO Running driver (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$5e112585:187)
[INFO] [10/28/2015 12:10:18.252] [marathon-akka.actor.default-dispatcher-20] [akka://marathon/user/leaderShipCoordinator] All actors active:
* Actor[akka://marathon/user/killOverdueStagedTasks#-1501348468]
* Actor[akka://marathon/user/launchQueue#291125118]
* Actor[akka://marathon/user/offerMatcherLaunchTokens#1776320406]
* Actor[akka://marathon/user/offerMatcherManager#939201752]
* Actor[akka://marathon/user/rateLimiter#23200717]
* Actor[akka://marathon/user/reviveOffersWhenWanted#829503753]
[2015-10-28 12:10:18,259] INFO Became active. Accepting event streaming requests. (mesosphere.marathon.event.http.HttpEventStreamActor:101)
[INFO] [10/28/2015 12:10:18.259] [marathon-akka.actor.default-dispatcher-15] [akka://marathon/user/MarathonScheduler/$a] Starting scheduler actor
[2015-10-28 12:10:18,260] INFO Reset offerLeadership backoff (mesosphere.marathon.MarathonSchedulerService$$EnhancerByGuice$$5e112585:327)
[INFO] [10/28/2015 12:10:18.266] [marathon-akka.actor.default-dispatcher-17] [akka://marathon/user/rateLimiter/1] started RateLimiterActor
[INFO] [10/28/2015 12:10:18.325] [marathon-akka.actor.default-dispatcher-17] [akka://marathon/user/MarathonScheduler/$a] Scheduler actor ready
[2015-10-28 12:10:18,562] INFO Registered as 20150909-124930-235670794-5050-4874-0000 to master '20150909-124930-235670794-5050-4874' (mesosphere.marathon.MarathonScheduler$$EnhancerByGuice$$3afa924e:48)

Mesos Master log
I1028 12:10:18.516634  4929 master.cpp:1834] Registering framework 20150909-124930-235670794-5050-4874-0000 (marathon) at scheduler-e9aa02d9-48de-4ef1-af18-c9150b83517e@<IP_ADDRESS>:9001 with checkpointing enabled and capabilities [  ]
I1028 12:10:18.516988  4929 hierarchical.hpp:386] Added framework 20150909-124930-235670794-5050-4874-0000
I1028 12:10:18.549805  4934 master.cpp:4290] Sending 72 offers to framework 20150909-124930-235670794-5050-4874-0000 (marathon) at scheduler-e9aa02d9-48de-4ef1-af18-c9150b83517e@<IP_ADDRESS>:9001

@gomes The general logic if a leader got elected:

read the framework id
if there is no framework id, a new framework id is generated and stored.

If you run into the case, that a new framework id is created, we need to understand why the old one is not readable:

You say Marathon became unresponsive. what do you mean?
Is zookeeper healthy? Any information in the zk logs? Could it be a zookeeper related problem?
There is one specifc case, where the framework id is deleted by Marathon: if mesos reports a driver error. In the logs of the previous leading master, do you see an error log statement with this message:
"Committing suicide!" ? Can you share the logs of the previous leading master ( the last couple of minutes should be enough)

There is currently no way to circumvent new registration. We could add that as command line property. What do you think?

@a-nldisr the problem you see is a dying JVM. I can not say anything from the logs provided.
What does the hs_err file say?
The ulimit is high enough?
You also use a rather old jvm (1.8.0_25), latest is 1.8.0_65 - perhaps try to update.
You say that the Marathon process fails for various reasons. Can you please share those reasons?

The first crash looks like #2185. That was hopefully fixed in 0.11.

I'm running marathon 0.11.1-1.0.432.ubuntu1404 on Ubuntu 14.04 and I'm still experiencing the same issue as mentioned above.
We are using:
Marathon: 0.11.1-1.0.432.ubuntu1404
Mesos: 0.23.1-0.2.61.ubuntu1404
JDK" 1.8.0_60

Hey @echinthaka Can we have the (complete) logs for the timeframe? Interesting would be:

ZooKeeper logs
Mesos master logs
Marathon logs.

If you had a Mesos driver error, the default behavior in Marathon until 0.14 is to delete the frameworkId.
We changed that in Marathon 0.14: https://github.com/mesosphere/marathon/pull/2765

@aquamatthias I think we can close this issue, since Marathon changed a lot and I don't have this kind of issue anymore.

Close it for now.


 :)
Write this issue in Python!
Links
These links will help you understand how this works!
https://en.wikipedia.org/wiki/Autokey_cipher
http://rumkin.com/tools/cipher/vigenere-autokey.php

hey id like to give this a try

I am currently working on Vigenere in Python along with Vigenere variants like this. No one should work on this, as they will all need to be somewhat together.


Perfomance issue for CI Sessionn

Currently, within the Session library when using file - we see CI_Session_files_driver::read taking up to 120s to process
Sessions old files are deleted but after some time I see still see these performance issues on requests tracked in NewRelic where it takes 100-120s
please resolve this!!


Prevent recursive view including (infinite recursion)

Hi, I've spent quite much time trying to fix issue with emails sending while real problem was in recursive view include. It is 100% my fault but I think it needs to be prevented by renderer because this situation is not throwing any errors or shows anything that explain what happened. Investigation might waste a lot of time.
Also it works different depending on OS:
In Windows this causes rendered template to be echoed without any explanation.
In Linux it causes "Segmentation fault".
I think that including view inside itself is very rare situation, so
Suggestion 1:

Prevent including view inside itself by default (throw exception with clear message)
Add possibility to include view inside itself somehow (for example - by argument like $allowRecursion in @include())

Suggestion 2:
When recursion counter is high enough (something like 30-50+) - analyze situation and throw exception if there is infinite recursion. This should not affect perfomance or functionality and will solve the problem.
Thank you.

Xdebug is designed to catch such issues for you. ;)

It still takes around 30 min in difficult situations.


V3: setup typecheck with vitest

~added typecheck to ci~
ignored errors form sources to avoid errors form previous types

TODO:

[ ] remove files with dtslint tests
[ ] check types in ci

Merging this for now, let's solve the CI issue separately.


Set up Travis CI

Set up Travis CI to run cargo fmt and cargo clippy for each commit.

Let me try this in my forked repository first.


P-R Curve

Could you provide the macro_pr and micro_pr result on Wikidata Dataset please?

Hi,
Please find the results as below the results. It's also in the paper. Are you asking something else?


is_archive and etc are ad-hoc

There probably should be column mime.
Bonus point: detect MIME types by the content.

mime column has finally arrived. Thank you very much for this suggestion!


[Bug]: Exporting the result set to excel failed, and converting csv to excel failed.

ODC version
ODC4.2.3
OB version
OCeanbase2277
What happened?
Exporting the result set to excel failed, and converting csv to excel failed.

What did you expect to happen?
can export normmally
How can we reproduce it (as minimally and precisely as possible)?
chat privately
Anything else we need to know?
chat privately
Cloud
No response

pass


Add parent_directory_ref as an ID contributing property for file SCOs

Fixes #361
I didn't add a unit test for this, just added the property name to the contributing property list.  There were no unit tests for specific SCOs, just the general deterministic ID machinery, so perhaps it isn't necessary.

Thanks @chisholm!


HTTP Post body content not passing to controller after adding Microsoft.AspNetCore.OData.Versioning

I am working on an ASP.NET Core 2.2 API that is implementing OData via Microsoft.AspNetCore.Odata v7.1.0 NuGet. I had everything working fine so I decided to add API Versioning via the Microsoft.AspNetCore.OData.Versioning v3.1.0.
Now, my GET and GET{id} methods in my controller work correctly with versioning. For example, I can get to the GET list endpoint method by using the URL;
~/api/v1/addresscompliancecodes
or
~/api/addresscompliancecodes?api-version=1.0
However when I try to create a new record, the request routes to the correct method in the controller but now the request body content is not being passed to the POST controller method
I have been following the examples in the Microsoft.ApsNetCore.OData.Versioning GitHub
There is the HttpPost method in my controller;
    [HttpPost]
    [ODataRoute()]
    public async Task<IActionResult> CreateRecord([FromBody] AddressComplianceCode record, ODataQueryOptions<AddressComplianceCode> options)
    {

        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        _context.Add(record);
        await _context.SaveChangesAsync();

        return Created(record);
    }

When I debug, the request routes to the controller method properly but the "record" variable is now null, whereas, before adding the code changes for API Versioning, it was correctly populated.
I suspect it is how I am using the model builder since that code changed to support API versioning.
Before trying to implement API Versioning, I was using a model builder class as shown below;
public class AddressComplianceCodeModelBuilder
{

    public IEdmModel GetEdmModel(IServiceProvider serviceProvider)
    {
        var builder = new ODataConventionModelBuilder(serviceProvider);

        builder.EntitySet<AddressComplianceCode>(nameof(AddressComplianceCode))
            .EntityType
            .Filter()
            .Count()
            .Expand()
            .OrderBy()
            .Page() // Allow for the $top and $skip Commands
            .Select();

        return builder.GetEdmModel();
    }

}

And a Startup.cs --> Configure method like what is shown in the snippet below;
       // Support for OData $batch
        app.UseODataBatching();

        app.UseMvc(routeBuilder =>
        {
            // Add support for OData to MVC pipeline
            routeBuilder
                .MapODataServiceRoute("ODataRoutes", "api/v1",
                    modelBuilder.GetEdmModel(app.ApplicationServices),
                    new DefaultODataBatchHandler());
        });

And it worked, passing the content body object with [FromBody] in the HttpPost method of the controller.
However, in following the examples in the API Versioning OData GitHub, I am now using a Configuration class like what is shown below, rather than the model builder from before;
public class AddressComplianceCodeModelConfiguration : IModelConfiguration
{

    private static readonly ApiVersion V1 = new ApiVersion(1, 0);

    private EntityTypeConfiguration<AddressComplianceCode> ConfigureCurrent(ODataModelBuilder builder)
    {
        var addressComplianceCode = builder.EntitySet<AddressComplianceCode>("AddressComplianceCodes").EntityType;

        addressComplianceCode
            .HasKey(p => p.Code)
            .Filter()
            .Count()
            .Expand()
            .OrderBy()
            .Page() // Allow for the $top and $skip Commands
            .Select();

        return addressComplianceCode;
    }
    public void Apply(ODataModelBuilder builder, ApiVersion apiVersion)
    {
        if (apiVersion == V1)
        {
            ConfigureCurrent(builder);
        }
    }
}

And my Startup.cs --> Configure method is changed as shown below;

public void Configure(IApplicationBuilder app,
        IHostingEnvironment env,
        VersionedODataModelBuilder modelBuilder)
    {

        // Support for OData $batch
        app.UseODataBatching();

        app.UseMvc(routeBuilder =>
        {
            // Add support for OData to MVC pipeline
            var models = modelBuilder.GetEdmModels();
            routeBuilder.MapVersionedODataRoutes("odata", "api", models);
            routeBuilder.MapVersionedODataRoutes("odata-bypath", "api/v{version:apiVersion}", models);
        });

    }

if it is relevant, I have the following code in my Startup.cs -> ConfigureServices;
   // Add Microsoft's API versioning
    services.AddApiVersioning(options =>
    {
        // reporting api versions will return the headers "api-supported-versions" and "api-deprecated-versions"
        options.ReportApiVersions = true;
    });

    // Add OData 4.0 Integration
    services.AddOData().EnableApiVersioning();

    services.AddMvc(options =>
        {
            options.EnableEndpointRouting = false; // TODO: Remove when OData does not causes exceptions anymore
        })
        .SetCompatibilityVersion(CompatibilityVersion.Version_2_2)
        .AddJsonOptions(opt =>
        {
            opt.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
        });

I feel the issue is with the model is somehow not matching up correctly but I cannot see exactly why it isn't
Here is my entity class;

    [Table("AddressComplianceCodes")]
    public class AddressComplianceCode : EntityBase
    {
        [Key]
        [Column(TypeName = "char(2)")]
        [MaxLength(2)]
        public string Code { get; set; }

        [Required]
        [Column(TypeName = "varchar(150)")]
        [MaxLength(150)]
        public string Description { get; set; }
    }

and the EntityBase class;
    public class EntityBase : IEntityDate
    {
        public bool MarkedForRetirement { get; set; }

        public DateTimeOffset? RetirementDate { get; set; }

        public DateTimeOffset? LastModifiedDate { get; set; }

        public string LastModifiedBy { get; set; }

        public DateTimeOffset? CreatedDate { get; set; }

        public string CreatedBy { get; set; }

        public bool Delete { get; set; }

        public bool Active { get; set; }
    }

And here is the request body from Postman;
{
<EMAIL_ADDRESS>"https://localhost:44331/api/v1/$metadata#AddressComplianceCodes",
    "Code": "Z1",
    "Description": "Test Label - This is a test for Z1",
    "Active": true
}

Any ideas?

As it turned out, the problem was because I was not using camel case as my proprty names in the Postman request body. This was not an issue with Microsoft.AspNetCore.Odata alone but once I added the Microsoft.AspNetCore.Odata.Versioning NuGet package, it failed with the upper case starting character of the property names. It seems that Microsoft.AspNetCore.Odata.Versioning uses it's own MediaTypeFormatter that enables lower camel case. I discovered this in the following GitHub post; https://github.com/Microsoft/aspnet-api-versioning/issues/310

Ah … that makes sense. The majority of JSON configurations use camelcasing so this is the default. There is no custom media type formatter. You can easily change this and other settings like so:
modelBuilder.ModelBuilderFactory = () => new ODataConventionModelBuilder();

In a similar fashion, you don't have use IModelConfiguration. You configure everything inline if you prefer a la:
modelBuilder.DefaultModelConfiguration = (builder, apiVersion) =>
{
   // this method is called for each discovered API version
   // a new 'builder' is created via ModelBuilderFactory for each API version
};

Since DI is available out-of-the-box in ASP.NET Core, IModelConfiguration instances are discovered within the application and added automatically You can, however, also add or remove instances imperatively using VersionedODataModelBuilder.ModelConfigurations.Add and VersionedODataModelBuilder.ModelConfigurations.Remove respectively. This enables you to handle scenarios the default DI mechanism does not solve automatically. You can make all the changes you want this way before you call VersionedODataModelBuilder.GetEdmModel().
I also noticed that you registered two routes for OData; that's not necessary. It's purely shown as an example of what you can do.
routeBuilder.MapVersionedODataRoutes("odata", "api", models);

// TODO: remove this unless you want to version by path, in which case you should swap these lines
// routeBuilder.MapVersionedODataRoutes("odata-bypath", "api/v{version:apiVersion}", models);

I hope that helps.

I added
            // This allows me to use PascalCase in the request body for property names
            modelBuilder.ModelBuilderFactory = () => new ODataConventionModelBuilder();

To my Startup.cs, Configure method and it worked great. .
Also, originally, I thought it was a nice feature to have both the routing by path and the routing by querystring, which is why I had both listed, as you pointed out.
However, this turned out to be a problem when trying to add swagger/SwashBuckle integration following your examples, here. It stopped the swagger.json file from being generated. This made sense after I thought about it. :|
So, I removed the querystring route code and I am just using the path based routing. Now I also have swagger/swashbuckle integration working great.
Thanks for your help and great tools. 👍

It appears this issue is resolved. Feel free to come back or reopen it if it's not. Thanks.

Hey
I'm having the same issue and have added the
modelBuilder.ModelBuilderFactory = () => new ODataConventionModelBuilder();
But the parameter is still coming up null
Here is my HTTP Post
using EF.Kids.Odata.Connector.Api.Data;
using EF.Kids.Odata.Connector.Api.Models;
using Microsoft.AspNet.OData;
using Microsoft.AspNet.OData.Query;
using System.Linq;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
using Microsoft.AspNet.OData.Routing;
using System.Threading.Tasks;
using Newtonsoft.Json;

namespace EF.Kids.Odata.Connector.Api.Controllers
{
    [ApiVersion("1.0")]
    [ODataRoutePrefix("Odata_API_Log")]
    public class ApiLogController : ODataController
    {
        private readonly KidsDbContext _kidsDbContext;
        private readonly ILogger _logger;

        public ApiLogController(KidsDbContext kidsDbContext, ILogger<ApiLogController> logger)
        {
            _kidsDbContext = kidsDbContext;
            _logger = logger;
        }

        [ODataRoute]
        [EnableQuery(AllowedArithmeticOperators = AllowedArithmeticOperators.Add, MaxNodeCount = 200)]
        public IActionResult GetApiLogModel()
        {
            _logger.LogInformation($"Result [MetaData]: {_kidsDbContext.ApiLogModels}");
            return Ok(_kidsDbContext.ApiLogModels);
        }

        [ODataRoute]
        [HttpPost]
        public async Task<IActionResult> PostApiLogModel([FromBody] ApiLogModel model)
        {
            _logger.LogInformation($"Request [PostApiLogModel]: {JsonConvert.SerializeObject(model)}");

            if (!ModelState.IsValid)
            {
                return BadRequest(ModelState);
            }

            _kidsDbContext.ApiLogModels.Add(model);
            await _kidsDbContext.SaveChangesAsync();
            return Created(model);
        }

        [ODataRoute("({Id})")]
        [EnableQuery]
        public SingleResult<ApiLogModel> GetApiLogModel([FromODataUri] string Id)
        {
            _logger.LogInformation($"Request : API Log Id : {Id}");
            IQueryable<ApiLogModel> result = _kidsDbContext.ApiLogModels.Where(p => p.Id == Id);
            _logger.LogInformation($"Result : {result}");
            return SingleResult.Create(result);
        }
    }
}

Here is my Startup
using System.Linq;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNet.OData.Extensions;
using Microsoft.AspNet.OData.Builder;
using Microsoft.EntityFrameworkCore;
using EF.Kids.Odata.Connector.Api.Models;
using EF.Kids.Odata.Connector.Api.Data;
using Microsoft.OData.Edm;
using EF.Kids.Odata.Connector.Api.Controllers;
using EF.Kids.Odata.Connector.Api.Helpers;
using Microsoft.AspNetCore.Mvc.Versioning.Conventions;
using EF.Kids.Odata.Connector.Api.Configuration;
using Microsoft.AspNet.OData;
using static Microsoft.OData.ODataUrlKeyDelimiter;
using Newtonsoft.Json.Serialization;

namespace EF.Kids.Odata.Connector.Api
{
    public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {

            services.AddMvcCore( option =>
            {
                option.EnableEndpointRouting = false;
                option.RespectBrowserAcceptHeader = true;
            }).SetCompatibilityVersion(CompatibilityVersion.Version_2_1);

            services.AddApiVersioning(options =>
            {
                options.ReportApiVersions = true;
                options.DefaultApiVersion = new ApiVersion(1, 0);
                options.AssumeDefaultVersionWhenUnspecified = true;
                options.Conventions.Controller<ApiLogController>()
                    .HasApiVersion(1, 0);
            });

            services.AddOData().EnableApiVersioning();

            services.AddOptions();
            services.AddCors();

            services.AddDbContext<KidsDbContext>(
                options => options.UseNpgsql(Configuration.GetConnectionString("PostGresConnString"))
            );
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env, VersionedODataModelBuilder modelBuilder)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            else
            {
                // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
                app.UseHsts();
            }

            app.UseRequestLoggingMiddleware();

            // app.UseHttpsRedirection();
            using (var serviceScope = app.ApplicationServices.GetRequiredService<IServiceScopeFactory>().CreateScope())
            {
                using (var context = serviceScope.ServiceProvider.GetService<KidsDbContext>())
                {
                    context.Database.Migrate();
                    //context.Database.EnsureCreated();
                }
            }

            app.UseCors(builder => builder.AllowAnyOrigin()
                   .AllowAnyMethod()
                   .AllowAnyHeader());

            app.UseMvc(routeBuilder =>
            {
                var models = modelBuilder.GetEdmModels();
                modelBuilder.ModelBuilderFactory = () => new ODataConventionModelBuilder();
                routeBuilder.ServiceProvider.GetRequiredService<ODataOptions>().UrlKeyDelimiter = Parentheses;
                routeBuilder.MapVersionedODataRoutes("odata", "api/v{apiVersion}", models);
                routeBuilder.EnableDependencyInjection();
            });
        }
    }
}

Below is the Model Configuration
using EF.Kids.Odata.Connector.Api.Models;
using Microsoft.AspNet.OData.Builder;
using Microsoft.AspNetCore.Mvc;

namespace EF.Kids.Odata.Connector.Api.Configuration
{
    public class ApiLogConfiguration : IModelConfiguration
    {
        private static readonly ApiVersion V1 = new ApiVersion(1, 0);

        private EntityTypeConfiguration<ApiLogModel> ConfigureCurrent(ODataModelBuilder builder)
        {
            var logModel = builder.EntitySet<ApiLogModel>("Odata_API_Log").EntityType;

            logModel.HasKey(p => p.Id)
                    .Filter()
                    .Count()
                    .Expand()
                    .OrderBy()
                    .Page()
                    .Select();

            return logModel;
        }

        public void Apply(ODataModelBuilder builder, ApiVersion apiVersion)
        {
            // note: only available in version 1.0
            if (apiVersion == V1)
            {
                ConfigureCurrent(builder);
            }
        }
    }
}

And finally the model
using System;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using Newtonsoft;

namespace EF.Kids.Odata.Connector.Api.Models
{
    [Table("Odata_API_Log")]
    public class ApiLogModel
    {
        [Key]
        public string Id { get; set; }
        public string CreatedById { get; set; }
        public bool IsDeleted { get; set; }
        public string End_Time { get; set; }
        public string Http_Type { get; set; }
        public string LastModifiedById { get; set; }
    }
}

I have a request logger middleware to get more detailed logs and data, and I can see the body request coming but it is not being passed to the controller.

@hjaimee it looks correct. What does the client request look like? Are you sure the client is sending the data members with the correct casing? If the casings do not match on both sides, deserialization will fail.

@commonsensesoftware
This is the request
{
<EMAIL_ADDRESS>"#EF.Kids.Odata.Connector.Api.Models.ApiLogModel",
<EMAIL_ADDRESS>"String",
    "Id": "test36"
}

I also have this LogRequestMiddleware
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Http.Internal;
using Microsoft.Extensions.Logging;
using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;

namespace EF.Kids.Odata.Connector.Api.Helpers
{
    public class RequestLoggingMiddleware
    {
        private readonly RequestDelegate _next;
        private readonly ILogger<RequestLoggingMiddleware> _logger;

        public RequestLoggingMiddleware(
        RequestDelegate next,
        ILogger<RequestLoggingMiddleware> logger)
        {
            _next = next;
            _logger = logger;
        }

        private async Task<string> FormatRequest(HttpRequest request)
        {
            var body = request.Body;
            request.EnableRewind();

            var buffer = new byte[Convert.ToInt32(request.ContentLength)];
            await request.Body.ReadAsync(buffer, 0, buffer.Length);
            var bodyAsText = Encoding.UTF8.GetString(buffer);
            request.Body = body;

            return $"Scheme: {request.Scheme} ContentType: {request.ContentType} Headers: {request.Headers} Host|Path: {request.Host}{request.Path} QueryString: {request.QueryString} Body: {bodyAsText}";
        }

        private async Task<string> FormatResponse(HttpResponse response)
        {
            response.Body.Seek(0, SeekOrigin.Begin);
            var text = await new StreamReader(response.Body).ReadToEndAsync();
            response.Body.Seek(0, SeekOrigin.Begin);

            return $"Response {response.StatusCode} {text}";
        }

        public async Task Invoke(HttpContext context)
        {
            _logger.LogInformation(await FormatRequest(context.Request));

            var originalBodyStream = context.Response.Body;

            using (var responseBody = new MemoryStream())
            {
                context.Response.Body = responseBody;

                await _next(context);

                _logger.LogInformation(await FormatResponse(context.Response));

                await responseBody.CopyToAsync(originalBodyStream);
            }
        }
    }

    public static class RequestLoggingMiddlewareExtensions
    {
        public static IApplicationBuilder UseRequestLoggingMiddleware(this IApplicationBuilder builder)
        {
            return builder.UseMiddleware<RequestLoggingMiddleware>();
        }
    }
}

As you mentioned from what I can tell everything looks good, but the request keeps coming up null. Been trying to rack my brain on this for days.

Below is a screenshot of my console.
As you can see I output the request via the RequestLogginMiddleware and I can see the data coming in, but once in my controller it comes up null.

To reduce the variables, what happens if you remove this middleware? If that succeeds, then you know that there is something not quite right with how the incoming content is being buffered.

Yes sorry forgot to mentioned I have tried this, and still null.

Ok so I've realized that my issue is that it's not accepting the PascalCase even with
modelBuilder.ModelBuilderFactory = () => new ODataConventionModelBuilder();
The method works if I use camelCase.

Sorry I got it, I had inserted that line of code in the wrong place, works now!


Shutdown Stratux From Menu

Issue
It is often cumbersome to have to open up the Stratux config page at the end of each flight to shut down the Raspberry Pi safely.
Ideal Solution
The Stratux AHRS application already provides an easily accessible menu. It would be fairly trivial to add an option to shutdown Stratux there, and it could use the same XHR post that the Stratux config page uses.
There are other solutions, such as additional hardware, locked file systems, etc, however the easy of use and low cost of this solution makes it appealing.

Perhaps this is the ideal solution - are there any reasons against the "heavy method" (switching off the power supply)?

Please, check the wiki page I wrote on a possible solution.
Shutdown link to home screen button
A more elegant way on iOS involves the creation of a custom profile with Apple Configurator loaded with the links and personalized icons.
This profile is then transferred to the device where the icons (shortcuts) act as push buttons.

For convenience, find below the aforementioned wiki.

A more convenient shutdown method, without the need to access the web interface.
Place the links you need in the home screen of your device (both Android and iOS). The links appear like any other app.
To add the links:

open the browsers menu
select "Add to Home Screen"
assign an appropriate name

When you need to shutdown, simply press on the home screen button and the Stratux will shutdown.
Shutdown: http://<IP_ADDRESS>/shutdown
Reboot: http://<IP_ADDRESS>/reboot

Working on Stratux - European edition
Update accordingly if working on Stratux as well.


Update Together model name for H3

The Together model name format is now model-size-framework, so H3 is h3-2.7b-h3.

Ping; I'd like to run H3 this week.


Download Image From Native Plots

Is your feature request related to a problem? Please describe
Would be very useful to be able to download Wave native plots to images.
Describe the solution you'd like
Perhaps right clicking on the plot allows you to save it as a PNG/copy it or maybe a button below the plot download it to a file (similar to the table functionality).
Describe alternatives you've considered
Could maybe be done by extracting the raw HTML using a third-party library but this seems overly cumbersome.

The easiest and quickest solution is to take a screenshot though.


[BUG] Generating invalid HTTP headers

Describe the bug
Schemathesis generates headers like:
x-api-key: \x80

The \x80 character is not a part of ISO-8859-1 (AKA Latin-1). This is an issue because according to the HTTP 1.1 standard, all HTTP headers are encoded with ISO-8859-1. This means that my tests will always fail because of something I can't actually control.
To Reproduce

In your OpenAPI Schema, add a security schema:  securitySchemes:
    ApiKey:
      type: apiKey
      in: header
      name: x-custom-api-key-header
security:
  - ApiKey: []

Run Schemathesis

Expected behavior
I expect Schemathesis to not generate things that are unsupported due to the HTTP spec. By definition, these things will not have stable behaviour, so it'll be impossible to test with Schemathesis.
Environment (please complete the following information):

OS: Windows 10
Python version: 3.9.2
Schemathesis version: 3.6.3
Spec version: Open API 3.0.3

Cool! Thank you for the detailed report! :)
I will take a look today

I've skimmed through RFC 7230, and it seems like \x80 is a valid value for an HTTP header.
Section 3.2 defines header field value like this:
field-value     = *( field-content / obs-fold )
field-content  = field-vchar [ 1*( SP / HTAB ) field-vchar ]
field-vchar     = VCHAR / obs-text

obs-fold        = CRLF 1*( SP / HTAB )
                    ; obsolete line folding
                    ; see Section 3.2.4

Having field-vchar defined as VCHAR / obs-text gives us alternatives:

any visible USASCII character, which is x00-x7F
%x80-FF (as defined in section  3.2.6)

Which gives the total interval x00-xFF, which contains the mentioned value of x80 (matching the obs-text rule).
For such headers, schemathesis uses this Hypothesis strategy - st.text(alphabet=st.characters(min_codepoint=0, max_codepoint=255)) which corresponds to that interval.
Maybe I missed something, let me know what do you think :)

Hmm reading a bit in 3.1:
3.2.4:

Historically, HTTP has allowed field content with text in the
ISO-8859-1 charset [ISO-8859-1], supporting other charsets only
through use of [RFC2047] encoding.  In practice, most HTTP header
field values use only a subset of the US-ASCII charset [USASCII].
Newly defined header fields SHOULD limit their field values to
US-ASCII octets.  A recipient SHOULD treat other octets in field
content (obs-text) as opaque data.

Where ISO-8859-1 = \x00-\x7f
I think I'm feeling that one. It looks like I'm seeing this behaviour with everything > \x80.
Maybe some servers implement the full \x00-\xFF. But mine clearly does not :\
I ran some more tests. It looks like my server returns a generic 400 for the following situations:
API key header == \x00

And all the following values in the API key header
"0x81" contains the following non-Latin-1 character: 0x81
"0xbf" contains the following non-Latin-1 character: 0xbf
"0xe1" contains the following non-Latin-1 character: 0xe1
"0xd4" contains the following non-Latin-1 character: 0xd4
"0x95" contains the following non-Latin-1 character: 0x95
"0x89" contains the following non-Latin-1 character: 0x89
"0xd2" contains the following non-Latin-1 character: 0xd2
"0xd2" contains the following non-Latin-1 character: 0xd2
"0x76 0xa8" contains the following non-Latin-1 character: 0xa8
"0x67 0xc6 0xfa 0x9b 0x1a" contains the following non-Latin-1 character:  0xc6 0xfa0x9b
"0x7c 0xaf 0x56 0xbc" contains the following non-Latin-1 character:  0xaf0xbc
"0xe5 0xc5" contains the following non-Latin-1 character:  0xe50xc5
"0xd8 0x7b 0x55 0xc9" contains the following non-Latin-1 character:  0xd80xc9
"0xdb 0x75 0x13 0x66 0x2e 0x26" contains the following non-Latin-1 character: 0xdb
"0xc1" contains the following non-Latin-1 character: 0xc1
"0x57 0x9a" contains the following non-Latin-1 character: 0x9a
"0x61 0xe9" contains the following non-Latin-1 character: 0xe9
"0x91 0x64" contains the following non-Latin-1 character: 0x91
"0x91" contains the following non-Latin-1 character: 0x91
"0x91" contains the following non-Latin-1 character: 0x91
"0x91" contains the following non-Latin-1 character: 0x91
"0xbe 0xb9 0x71 0x47" contains the following non-Latin-1 character:  0xbe0xb9
"0x91 0x75 0x49 0x8c" contains the following non-Latin-1 character:  0x910x8c
"0x3e 0x94" contains the following non-Latin-1 character: 0x94
"0x55 0xef" contains the following non-Latin-1 character: 0xef
"0xfa" contains the following non-Latin-1 character: 0xfa
"0xb1 0xb7 0xe6 0x67 0xa3" contains the following non-Latin-1 character:  0xb1 0xb7 0xe60xa3
"0xdc" contains the following non-Latin-1 character: 0xdc
"0xa1" contains the following non-Latin-1 character: 0xa1
"0x30 0xfd" contains the following non-Latin-1 character: 0xfd
"0x7d 0xc3" contains the following non-Latin-1 character: 0xc3
"0xc3" contains the following non-Latin-1 character: 0xc3
"0xc3" contains the following non-Latin-1 character: 0xc3
"0x94 0xe7 0xaf" contains the following non-Latin-1 character:  0x94 0xe70xaf
"0x94 0xaf 0xaf" contains the following non-Latin-1 character:  0x94 0xaf0xaf
"0x94 0x94 0xaf" contains the following non-Latin-1 character:  0x94 0x940xaf
"0x94 0x94 0xaf" contains the following non-Latin-1 character:  0x94 0x940xaf
"0xf3" contains the following non-Latin-1 character: 0xf3
"0xa9 0x13" contains the following non-Latin-1 character: 0xa9
"0xd6 0xd3 0xe7" contains the following non-Latin-1 character:  0xd6 0xd30xe7
"0xe8 0xff 0x82 0x61" contains the following non-Latin-1 character:  0xe8 0xff0x82
"0x62 0xc4 0xf8 0x29 0xac 0x51 0xb0 0xdd 0x61" contains the following non-Latin-1 character:  0xc4 0xf8 0xac 0xb00xdd
"0x8f 0x79" contains the following non-Latin-1 character: 0x8f
"0xef 0x94 0x6f" contains the following non-Latin-1 character:  0xef0x94
"0x4e 0xeb 0x3a 0x3 0x3 0xa7 0x8f 0xb1 0x59 0xd0 0x7 0x4f 0x6e 0xe0" contains the following non-Latin-1 character:  0xeb 0xa7 0x8f 0xb1 0xd00xe0
"0x4 0x9a 0x0 0x32 0x95 0x2f 0xb 0x46 0xb" contains the following non-Latin-1 character:  0x9a0x95
"0xee" contains the following non-Latin-1 character: 0xee
"0xee" contains the following non-Latin-1 character: 0xee
"0x32 0x9d 0x9 0x71" contains the following non-Latin-1 character: 0x9d
"0x93" contains the following non-Latin-1 character: 0x93
"0xf5" contains the following non-Latin-1 character: 0xf5
"0x33 0xe3 0x40 0xb7 0xde 0x77 0x77 0xd8 0x67" contains the following non-Latin-1 character:  0xe3 0xb7 0xde0xd8
"0xc8 0xa1 0xe6" contains the following non-Latin-1 character:  0xc8 0xa10xe6
"0xf7 0xe" contains the following non-Latin-1 character: 0xf7
"0x43 0xa9 0x3f 0x5f 0xb0 0x19 0xc8" contains the following non-Latin-1 character:  0xa9 0xb00xc8
"0x7f 0xd2" contains the following non-Latin-1 character: 0xd2
"0x26 0xe7 0x40 0x12 0x33" contains the following non-Latin-1 character: 0xe7
"0x7c 0x15 0xc8 0xaa 0x25 0x97 0xd3 0x50" contains the following non-Latin-1 character:  0xc8 0xaa 0x970xd3
"0x59 0xef" contains the following non-Latin-1 character: 0xef
"0xef 0xef" contains the following non-Latin-1 character:  0xef0xef
"0x9b 0x2c 0xa4 0x7d 0x61 0xd3 0x70" contains the following non-Latin-1 character:  0x9b 0xa40xd3
"0x31 0xec 0x34" contains the following non-Latin-1 character: 0xec
"0x45 0x13 0x89 0x7e 0x3d 0x27 0x4" contains the following non-Latin-1 character: 0x89
"0x88 0x85 0xa0" contains the following non-Latin-1 character:  0x88 0x850xa0
"0xa2" contains the following non-Latin-1 character: 0xa2
"0xd5" contains the following non-Latin-1 character: 0xd5
"0xed" contains the following non-Latin-1 character: 0xed
"0xed" contains the following non-Latin-1 character: 0xed
"0x2d 0xb4 0x25" contains the following non-Latin-1 character: 0xb4
"0x9c 0xf3 0x1a 0xc6" contains the following non-Latin-1 character:  0x9c 0xf30xc6
"0x0 0xe4 0x1b 0x71 0xf3 0xc0 0x61 0x26 0xad 0x55 0xc1 0x41 0xd7 0x7d 0xd0" contains the following non-Latin-1 character:  0xe4 0xf3 0xc0 0xad 0xc1 0xd70xd0
"0xb6 0xeb" contains the following non-Latin-1 character:  0xb60xeb
"0xc6 0x36 0x95 0x49 0xfa" contains the following non-Latin-1 character:  0xc6 0x950xfa
"0x5e 0xfa" contains the following non-Latin-1 character: 0xfa
"0x5e 0xfa" contains the following non-Latin-1 character: 0xfa
"0x31 0x67 0x85 0x32 0x35 0xd3 0xd4" contains the following non-Latin-1 character:  0x85 0xd30xd4
"0xdb" contains the following non-Latin-1 character: 0xdb
"0xdb 0x73 0x41" contains the following non-Latin-1 character: 0xdb
"0xdb 0x31" contains the following non-Latin-1 character: 0xdb
"0xaf 0x70" contains the following non-Latin-1 character: 0xaf
"0xb0 0x68 0xd5 0x48" contains the following non-Latin-1 character:  0xb00xd5
"0xb0" contains the following non-Latin-1 character: 0xb0
"0xb0" contains the following non-Latin-1 character: 0xb0
"0xb0" contains the following non-Latin-1 character: 0xb0
"0xb0" contains the following non-Latin-1 character: 0xb0
"0xb0" contains the following non-Latin-1 character: 0xb0
"0x2d 0x88" contains the following non-Latin-1 character: 0x88
"0x65 0x8d 0x86 0x0" contains the following non-Latin-1 character:  0x8d0x86
"0xc0 0xc6 0xe2" contains the following non-Latin-1 character:  0xc0 0xc60xe2
"0xdf 0xd0" contains the following non-Latin-1 character:  0xdf0xd0
"0xdf" contains the following non-Latin-1 character: 0xdf
"0xe4 0x3f 0x74 0x39" contains the following non-Latin-1 character: 0xe4
"0xe4 0x3f 0x74 0x39" contains the following non-Latin-1 character: 0xe4
"0xe4 0xe4 0x74 0x39" contains the following non-Latin-1 character:  0xe40xe4
"0x30 0x83" contains the following non-Latin-1 character: 0x83
"0x48 0xc9" contains the following non-Latin-1 character: 0xc9
"0x78 0x43 0x41 0x90 0x40" contains the following non-Latin-1 character: 0x90
"0xab 0xa1 0xe5" contains the following non-Latin-1 character:  0xab 0xa10xe5
"0x43 0xd5 0x24 0xb6" contains the following non-Latin-1 character:  0xd50xb6
"0x2c 0x41 0x8b 0x54" contains the following non-Latin-1 character: 0x8b
"0x91 0xf 0x88" contains the following non-Latin-1 character:  0x910x88
"0xa9 0x43 0x22" contains the following non-Latin-1 character: 0xa9
"0xe 0x48 0x88 0x7f" contains the following non-Latin-1 character: 0x88
"0x32 0x48 0x88 0x7f" contains the following non-Latin-1 character: 0x88
"0x16 0x91" contains the following non-Latin-1 character: 0x91
"0xb6 0xbb 0xef 0xe9" contains the following non-Latin-1 character:  0xb6 0xbb 0xef0xe9
"0xb6" contains the following non-Latin-1 character: 0xb6
"0xb6" contains the following non-Latin-1 character: 0xb6
"0xb6" contains the following non-Latin-1 character: 0xb6
"0xb6" contains the following non-Latin-1 character: 0xb6
"0xb6" contains the following non-Latin-1 character: 0xb6
"0xb6" contains the following non-Latin-1 character: 0xb6
"0x5d 0x6a 0x7b 0x2f 0x33 0xeb" contains the following non-Latin-1 character: 0xeb
"0x96" contains the following non-Latin-1 character: 0x96
"0x38 0xdf" contains the following non-Latin-1 character: 0xdf
"0xdf 0xdf" contains the following non-Latin-1 character:  0xdf0xdf
"0x94" contains the following non-Latin-1 character: 0x94
"0x5c 0xc1 0x8a" contains the following non-Latin-1 character:  0xc10x8a
"0x5c 0xc1 0x8a" contains the following non-Latin-1 character:  0xc10x8a
"0x9b 0x9c 0xde 0x38" contains the following non-Latin-1 character:  0x9b 0x9c0xde
"0x19 0x9c 0x3c 0x61 0x25" contains the following non-Latin-1 character: 0x9c
"0xdf" contains the following non-Latin-1 character: 0xdf
"0x91" contains the following non-Latin-1 character: 0x91
"0xbb 0x7b" contains the following non-Latin-1 character: 0xbb
"0xaa 0x86 0x27 0xe3 0x43" contains the following non-Latin-1 character:  0xaa 0x860xe3
"0x32 0xa1 0xfe" contains the following non-Latin-1 character:  0xa10xfe
"0x3f 0xd9" contains the following non-Latin-1 character: 0xd9
"0xb8 0x96 0xd2 0x66 0xcd 0x7a" contains the following non-Latin-1 character:  0xb8 0x96 0xd20xcd
"0x33 0xdf 0x4a 0x5b 0xaf 0x30 0x24 0xe0" contains the following non-Latin-1 character:  0xdf 0xaf0xe0
"0xb1" contains the following non-Latin-1 character: 0xb1
"0x32 0x5e 0x9e 0x47 0x37 0xb9" contains the following non-Latin-1 character:  0x9e0xb9
"0xfb 0x31" contains the following non-Latin-1 character: 0xfb
"0xb6" contains the following non-Latin-1 character: 0xb6
"0x80" contains the following non-Latin-1 character: 0x80
"0xfa 0xda" contains the following non-Latin-1 character:  0xfa0xda
"0xf2 0x77 0xed 0xcc 0x76" contains the following non-Latin-1 character:  0xf2 0xed0xcc
"0x2f 0x7b 0x27 0xc6 0xc0" contains the following non-Latin-1 character:  0xc60xc0
"0xd0 0xc1 0x8 0x3b" contains the following non-Latin-1 character:  0xd00xc1
"0xd0 0xc1 0x8 0x3b" contains the following non-Latin-1 character:  0xd00xc1
"0xed 0x2b 0x84" contains the following non-Latin-1 character:  0xed0x84
"0xd1 0x57 0xef 0xb8 0x37 0x5c" contains the following non-Latin-1 character:  0xd1 0xef0xb8
"0x34 0xeb 0xb0" contains the following non-Latin-1 character:  0xeb0xb0
"0xda 0xc5" contains the following non-Latin-1 character:  0xda0xc5
"0xf1" contains the following non-Latin-1 character: 0xf1
"0xd4 0x24 0x94 0x91 0x68 0xa5 0x13 0x43" contains the following non-Latin-1 character:  0xd4 0x94 0x910xa5
"0xbf 0xf9" contains the following non-Latin-1 character:  0xbf0xf9
"0xfd" contains the following non-Latin-1 character: 0xfd
"0xf7" contains the following non-Latin-1 character: 0xf7
"0xf5" contains the following non-Latin-1 character: 0xf5
"0x31 0x88 0x32" contains the following non-Latin-1 character: 0x88
"0xc8 0x14 0xf8 0x14 0x0" contains the following non-Latin-1 character:  0xc80xf8
"0xa4 0xff 0x4c 0xb9 0xbf" contains the following non-Latin-1 character:  0xa4 0xff 0xb90xbf
"0x5 0xc6 0x9f 0xf9 0x77 0xb6 0xad" contains the following non-Latin-1 character:  0xc6 0x9f 0xf9 0xb60xad
"0xb5" contains the following non-Latin-1 character: 0xb5
"0x13 0xaf 0x5d 0xf5 0xd9 0xd8" contains the following non-Latin-1 character:  0xaf 0xf5 0xd90xd8
"0x25 0x2f 0x56 0x49 0xd8" contains the following non-Latin-1 character: 0xd8
"0xb8 0xbe 0x9b 0x63 0x48 0xf" contains the following non-Latin-1 character:  0xb8 0xbe0x9b
"0xf1 0x0 0xa1 0x8f 0x3e" contains the following non-Latin-1 character:  0xf1 0xa10x8f
"0x48 0xf0 0xe1 0x6b 0xbe 0xf 0xd6 0xec 0x69 0xee 0xf5 0x8" contains the following non-Latin-1 character:  0xf0 0xe1 0xbe 0xd6 0xec 0xee0xf5
"0x87 0x8f" contains the following non-Latin-1 character:  0x870x8f
"0x30 0x9d" contains the following non-Latin-1 character: 0x9d
"0xd7" contains the following non-Latin-1 character: 0xd7
"0x37 0xeb 0x35 0x61 0xc2 0xf1" contains the following non-Latin-1 character:  0xeb 0xc20xf1
"0xc6" contains the following non-Latin-1 character: 0xc6
"0x34 0x6b 0xe8" contains the following non-Latin-1 character: 0xe8
"0xb3" contains the following non-Latin-1 character: 0xb3
"0x7 0xe2 0x7c 0xaf" contains the following non-Latin-1 character:  0xe20xaf
"0xde" contains the following non-Latin-1 character: 0xde
"0xa8 0x2d" contains the following non-Latin-1 character: 0xa8
"0xd7 0x0 0x18" contains the following non-Latin-1 character: 0xd7
"0xe8 0x76 0x59" contains the following non-Latin-1 character: 0xe8
"0xa9 0xe" contains the following non-Latin-1 character: 0xa9
"0x91" contains the following non-Latin-1 character: 0x91
"0x23 0x88 0x13 0xac 0x5c 0x68 0x5a 0x2" contains the following non-Latin-1 character:  0x880xac
"0xfa 0x7a" contains the following non-Latin-1 character: 0xfa
"0xee 0x31" contains the following non-Latin-1 character: 0xee
"0x81" contains the following non-Latin-1 character: 0x81
"0xd3 0xe2" contains the following non-Latin-1 character:  0xd30xe2
"0xe2 0xe2" contains the following non-Latin-1 character:  0xe20xe2
"0x9b" contains the following non-Latin-1 character: 0x9b
"0x9b 0xf8 0x27 0xfa" contains the following non-Latin-1 character:  0x9b 0xf80xfa
"0x9b 0xf8 0x27 0xfa" contains the following non-Latin-1 character:  0x9b 0xf80xfa
"0xe7 0x70 0x37" contains the following non-Latin-1 character: 0xe7
"0x7c 0xc0" contains the following non-Latin-1 character: 0xc0
"0xac 0x14 0x5e" contains the following non-Latin-1 character: 0xac
"0x31 0x30 0x57 0x76 0x8a 0xf8" contains the following non-Latin-1 character:  0x8a0xf8
"0x73 0x6b 0x8 0x4b 0x6b 0xc4 0xda" contains the following non-Latin-1 character:  0xc40xda
"0xd2" contains the following non-Latin-1 character: 0xd2
"0x25 0xba 0x58 0x38 0x66 0xbb" contains the following non-Latin-1 character:  0xba0xbb
"0xea" contains the following non-Latin-1 character: 0xea
"0xec 0xd4 0x22" contains the following non-Latin-1 character:  0xec0xd4
"0xec 0xec 0x22" contains the following non-Latin-1 character:  0xec0xec
"0xec 0xec 0x22" contains the following non-Latin-1 character:  0xec0xec
"0xf4 0xe 0xb4 0xde 0x21" contains the following non-Latin-1 character:  0xf4 0xb40xde
"0xfa" contains the following non-Latin-1 character: 0xfa
"0xa8" contains the following non-Latin-1 character: 0xa8
"0xbf" contains the following non-Latin-1 character: 0xbf
"0xa2" contains the following non-Latin-1 character: 0xa2
"0xa2" contains the following non-Latin-1 character: 0xa2
"0xa2" contains the following non-Latin-1 character: 0xa2
"0xa2" contains the following non-Latin-1 character: 0xa2
"0x4f 0x98 0x4c" contains the following non-Latin-1 character: 0x98
"0xbc" contains the following non-Latin-1 character: 0xbc
"0x33 0x9a 0x62 0x31" contains the following non-Latin-1 character: 0x9a
"0x94 0x92" contains the following non-Latin-1 character:  0x940x92
"0x72 0xf9 0xff 0xfb 0x24 0x18 0xc7" contains the following non-Latin-1 character:  0xf9 0xff 0xfb0xc7
"0x86" contains the following non-Latin-1 character: 0x86
"0xda" contains the following non-Latin-1 character: 0xda
"0x88" contains the following non-Latin-1 character: 0x88
"0x22 0xf6" contains the following non-Latin-1 character: 0xf6
"0x9a" contains the following non-Latin-1 character: 0x9a

I ran 1000 tests, so I'm pretty confident that I've got all cases where my server fails.
The server I'm using by the way is a local Azure Functions instance with an HTTP trigger.

Hmm, interesting.
If Schemathesis will have a way to customize this behavior - will it help your use case? To adjust the range for possible characters in HTTP headers.
Btw, I noticed that at the moment, the strategy for the bearer auth type (if specified via security schemas) doesn't limit the range of possible characters at all - will fix this part separately.

Yeah that would help for me.
One extra thing I noticed though, Postman also does not support all these characters in headers. For example: 0x80 (= ƒ) results in this error:

I would be happy with an option to reduce the char range. At the same time, I think it's worth thinking about future users too. Not having them go through this would be preferable. That being said, I do see the value of generating with the full range for more security-focused tests. So, how about an option to change the char range with a default of 0x01-0x7f?

I would be happy with an option to reduce the char range. At the same time, I think it's worth thinking about future users too. Not having them go through this would be preferable. That being said, I do see the value of generating with the full range for more security-focused tests. So, how about an option to change the char range with a default of 0x01-0x7f?

I think it is a reasonable thing to do if on average it will increase the Schemathesis effectiveness with default settings.
I don't have such numbers at the moment, but I am working on an evaluation suite for the "Property-Based Testing of Web APIs" paper. As soon as it is ready I'll look at this aspect - so far I didn't see popular stacks from Python / Rust / Go / JavaScript worlds complaining about that matter, but certainly will re-check that more thoroughly.

so far I didn't see popular stacks from Python / Rust / Go / JavaScript worlds complaining about that matter

It's a first for me too, but now that I've seen it once... I would have never thought to check Postman for this stuff before!

increase the Schemathesis effectiveness with default settings

That's the goal! This got me thinking though. You'll know better how possible this is.
When running into an issue like this, can you identify it as an 'Only accepts Latin-1 in headers' situation automatically? If that's possible, you can easily keep the full char range and instruct users to set a narrower range when they're using a server like mine.
It would make it a conscious choice to change the range, without the headaches I encountered while troubleshooting.

Property-Based Testing of Web APIs

Sounds interesting!
workaround
For now, I've wrapped case.validate_response into the following function. It simply checks the content-type header. If that one does not exist, I know my server has returned the fallback 400.
def validate_response(case: schemathesis.models.Case, response: schemathesis.models.Response):
    """
    Validate the response. Includes workaround for Azures default 400.

    Normally we return a 400 with a Problem, this is a workaround because we can't always control
    this.

    This is needed because of how schemathesis works. It will try to add all kinds of characters
    to the HTTP headers. However, Azure Functions can only handle `0x01` through `0x7f`.
    Schemathesis will try to insert other characters as well, causing the OAS validation to fail.

    This function lives here pending the open issue on this:
    https://github.com/schemathesis/schemathesis/issues/1142
    """
    if response.headers.get("content-type") is not None:
        # No need for the workaround
        return case.validate_response(response)

    try:
        case.validate_response(response)
        raise AssertionError("Expected an exception to be raised")
    except schemathesis.exceptions.CheckFailed:
        assert response.status_code == 400

        headers = response.headers
        assert headers.get("content-type") is None

        assert response.content == b""

When running into an issue like this, can you identify it as an 'Only accepts Latin-1 in headers' situation automatically? If that's possible, you can easily keep the full char range and instruct users to set a narrower range when they're using a server like mine.

I think it depends on the server implementation and how it responds, probably there is no direct way to detect it for Schemathesis automatically. However, I have a prototype that uses Targeted Property-based testing (via Hypothesis's target function) to improve a more general situation. The idea is - when the server responds with a non-4xx response in positive testing scenarios - put 1 to the target call, otherwise put 0. This way Hypothesis will adjust data generation so it is more likely to generate non-400 responses (where I believe such cases should fall into), however, it is visible only on a higher number of generated examples (1000+).
Alternatively, if there is a way to detect some known cases, then Schemathesis can run some requests upfront and then adjust data generation strategies. Could you share a bit more details about your server and how I can reproduce it locally? I'll try to play around with it

Thanks for providing more context! I'll check this a bit later.
In meanwhile, the headers can be filtered with the before_generate_headers hook:

def is_in_range(string):
    return all(0x01 <= ord(char) <= 0x7f for char in string)

def is_desired_header(headers):
    for name, value in headers.items():
        if not is_in_range(name) or not is_in_range(value):
            return False
    return True

def before_generate_query(context, strategy):
    return strategy.filter(is_desired_header)

More about hooks - https://schemathesis.readthedocs.io/en/stable/extending.html#hooks

FYI, the fix for the recent issue is released in 3.11

Hello people,
I currently have encountered a similar bug in my application. The bug occures when using "Bearer {token}" for authentication. The token is automatically generated by OpenIdConnect while using FastAPI.
In some cases (some generated tokens have the issue, not all) the generated token is not encodeable by latin-1. So I get the a similar error to Lakitna. The error is an UnicodeEncodeError.
Is this a known issue already? Is there any fix available?
Thanks in advance :)

Now there is a way to control what characters are used for strings (globally, not for headers specifically). I also will consider adjusting the defaults for header generation in Schemathesis 4.0. Meanwhile, if anybody has any issue with header generation, feel free to open a new issue.


Control service yml floc 1801

Unlike the design at https://github.com/ClusterHQ/flocker/pull/1338 this does not specify TCP. It is possible to have a "protocol" key and just make sure that it is TCP but I think that it is better to just leave it and add an option later if necessary.
As per the previous PR, there is some documentation duplication and the documentation is not in the best place. However David Oliver is looking into restructuring the documentation and will look at this story in particular before submission so I don't think that should be solved here.

TCP option is not required, we're just going with TLS across the board. Merge when you're happy with Buildbot.


Add autodelete feature to botonly mode

Added autodelete feature to botonly mode (basically copy&paste). The file list no gets reduced during start of the TeleFrame, too (i.e. if the user reduced the count of images since the last start).
Also added scripts and configuration file to start TeleFrame in botonly mode with pm2

Thank You 👍


Every Resource is of Type AWS::ApiGateway::Resource in version 0.9.1

Hey, Steven,
This is a great tool! Thanks.
I think a bug was introduced in version 0.9.1. When I runcfndsl sample/autoscale.rb all resources come out as "Type": "AWS::ApiGateway::Resource". I maybe missing something, but I'm quite sure this is unexpected. Tested it out with version 0.9.0 and this behaviour does not exist.
I could not get my head around the problem, otherwise I'd gladly make a PR.
Hope this report helps.
Thanks.

hey @ericzumba thanks for spotting this, am looking into it now - pretty sure it's to do with the layout of the types.yml so should be a fairly easy fix.

Cool, @stevenjack. Thanks for taking the time to look into this.
Nice work with the project btw. Excellent code.

This one just popped up at work. I think you need to pull 0.9.1.

Having a look at this one, it appears to literally be an issue with "Resource", in the type "AWS::ApiGateway::Resource". Digging further.

Wow, @gergnz. Nasty bug :D


Switched fatalError to assertionFailure

Motivation
As the HorizontalStickyHeaderLayout#prepare() method does not have a return value, there is no practical advantage in fatalError()ing when either delegate or collectionView are not set over just asserting their presence.
If something goes wild, it should be arguably better for most customers to just do not see the collection view at all than to crash the app.
assertionFailure() offers the same class of strong guarantees against programming errors fatalError() does, as each developer runs his app in DEBUG mode at least once before shipping it.
So for all these reasons if will propose switching from fatalError() to assertionFailure().

Hi @airspeed 👋🏻
Thanks for the well documented PR! It helps.
Actually I know what assertionFailure for, but I remember that those fatalError were intentional.

as each developer runs his app in DEBUG mode at least once before shipping it.

From my point of view, this is not the case for most of Carthage users. That's why I put strong constraint (fatalError) to avoid unexpected scenarios.
Did you run into situation like production app crashing? If so, why did that happen?
Is there anything we can do from this library besides this PR?
Because if the crash happens, maybe there are other problems too, right? (Maybe documentation or API design is not clear enough and so on)

Great idea, but compiler flags are not very straight forward for Carthage users, is it?
Well, since this library has been around for a while, most users should already know the basic usage of this library.
Therefore, there are not much benefit having fatalError as instruction.
So I accept PR and create a new release.🚀
Thanks a lot for a heads-up @airspeed !👍

Released in 0.5.1

@toshi0383 Thank you! 👍


ARROW-13253: [FlightRPC][C++] Fix segfault with large messages

We can't report errors during serialization - gRPC will just trip an assert. Instead, move these checks into the layer above so we can report them to the client or server as appropriate.

@cyb70289, might you have time to look at this?

@ursabot please benchmark

Thanks for the review! :slightly_smiling_face:


Terraform resources tainted and can't be re-created after mistakenly seted wrong credentials

Terraform version
Terraform v0.13.4

provider registry.terraform.io/terraform-providers/cloudflare v2.12.0

Affected resource(s)
All Cloudflare resources.
Terraform configuration files
cat main.tf
resource "cloudflare_zone_settings_override" "main" {
  zone_id = var.cloudflare_zone_id
  settings {
    always_online               = lookup(var.cloudflare_zone_settings, "always_online", "on")
  }
}

cat variables.tf
variable cloudflare_zone_id {}
variable cloudflare_zone_settings {}

cat cloudflare.auto.tfvars
cloudflare_zone_id = "zone_id"

cloudflare_zone_settings = {
    always_online = "on"
}

Debug output
https://gist.github.com/Nmishin/535bc43694cc16e172483395fcc8c5a9
Expected behavior
Error with "HTTP status 403"
Actual behavior
Resources marked as tainted and terraform tried to delete it but fail with strange errors.
Steps to reproduce
export CLOUDFLARE_API_KEY
export CLOUDFLARE_EMAIL
terraform apply
terraform destroy
export wrong CLOUDFLARE_API_TOKEN
terraform apply (will fails obviously)
unset CLOUDFLARE_API_TOKEN
terraform apply - will fails with errors like:
Error: invalid zone setting "mirage" (value: ) found - cannot be set as it is read only
in next time error can be:
Error: invalid zone setting "http2" (value: ) found - cannot be set as it is read only
Or error "Error: error from makeRequest: HTTP status 400":
https://gist.github.com/Nmishin/f72163aa9e0f34f378b79931a187e748

Thanks for raising the issue!
From initial investigations, this is caused by a number of factors, some of which we won't solve here as they are to do with Terraform's state management but others which I can shed some light on. Let's break it down.
To start with, your credentials here aren't particularly problematic in their own. Out of the box, the provider has a hierarchy and fallback of API token => API key so once you've unset the wrong API token, your credentials will be fine to go again. I'd recommend looking into a better credential management tool (such as cf-vault) to handle the environment when you're running these types of commands to prevent a "dirty" environment.
As you did have incorrect credentials and you tried to perform a resource update which failed, you'll need to manually correct it. Either through terraform untaint or terraform state rm ... and import or recreate. This isn't something the provider can address as it's Terraform core and is working as intended.
The zone override is an interesting one and something we're investigating via #533. It looks the same cause as the linked issue as could be related to read only cause based on your subscription level or the defaults and how the API handles state changes. As such, I'm going to close this as a duplicate and focus the efforts on that issue to avoid the confusion with the other issues mentioned here.
Do let me know if you have any other questions!


Should have a DocumentIdAdder post processor

Adds a id to a document, if missing in source
Uses a Java UUID

Related to #15


publish package to NPM

Hello!
Could this repo be published to NPM? Do you think it will require any significant changes?
Thanks!

We have no plans to publish the nodetracker as a node module package since it is an application that uses modules, not a module itself.


Remove complexity around looking at http.nonProxyHosts

getProxy(host) was only used by S3 repositories, but we incorrectly looked
for https.nonProxyHosts for HTTPS connections. This means that we would
skip using the proxy for hosts that matched https.nonProxyHosts.
Except, internally, AWS's SDK looks at http.nonProxyHosts, which is the
standard/normal Java system property.
So if you had a proxy configured, a S3 host you wanted to use over HTTPS
and you wanted to not use the proxy, you might set:
https.nonProxyHosts=example.com
which would cause us to not provide proxy info to the S3 library, but
internally, the AWS SDK would still see the proxy settings and end up using
the proxy. Our documentation does not say to use this property and this
property is not mentioned anywhere.
So if you noticed this and really didn't want to use the proxy, you would
need to set the correct property:
http.nonProxyHosts=example.com
And this would start skipping the proxy for this host.
It looks like all of the logic around passing the proxy to S3Client
might be unnecessary because it's reading the same system properties Gradle
is, but this change doesn't try to remove more than necessary to remove
the unnecessary and confusing behavior around https.nonProxyHosts

@bot-gradle test this

OK, I've already triggered the following builds for you:

PullRequestFeedback build

but we incorrectly looked
for https.nonProxyHosts for HTTPS connections.

Should this be we incorrectly looked for http.nonProxyHosts?


Native Notebooks - Trusted Icon

Version: 1.56.0-insider (user setup)
Commit: 8aff878db2542eea2dfb571c8bb485118bbb3113
Date: 2021-04-19T05:15:35.845Z
Electron: 12.0.4
Chrome: 89.0.4389.114
Node.js: 14.16.0
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.19042
Jupyter Extension: v2021.6.755784270
Steps to Reproduce:

Open notebook you created
Not Trusted icon appears in top right
Try to click icon to trust

Expected Behavior

Not Trusted Icon should not be showing up on a notebook I created
When I click the trust icon it should bring up the popup to allow me to trust.

Actual Behavior:

Not Trusted icon shows up on a notebook I created
Clicking icon does nothing

I accidentally clicked the split editor button once and doing that and closing the second one produced somehow fixies the issue...

I can't get this to repro. Do you have some more specific steps?

No it shows up randomly :( I can't figure out how or when it is triggered

validated, we don't even use it anymore


Reporters section for test does not work

Under the paragraph, "Finally you need to modify the package.json to configure the reporter", the configuration ""jest-junit" does not work.
Suggestion# 1:
The below code part
"jest-junit": {
    "output": "temp/test/junit/junit.xml",
    "usePathForSuiteName": "true"
}

should be changed to
"jest": {
  "reporters": [
    [
      "jest-junit", {
        "suiteName": "SharePoint SPFx Testing",
        "outputDirectory": "./reports/",
        "outputName": "./junit.xml"
      }
    ]
  ]
}

Suggestion# 2:
Importing test results should be changed as per "Publish Test Results" section here - an article by @estruyf

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 6db891d3-c14d-9bae-80fc-cedaf2eb5982
Version Independent ID: aae8a107-ee2a-7b9c-9022-9946b7f65909
Content: Implement Continuous Integration and Continuous deployment using Azure DevOps
Content Source: docs/spfx/toolchain/implement-ci-cd-with-azure-devops.md
Product: sharepoint
Technology: sharepoint-framework
GitHub Login: @spdevdocs
Microsoft Alias: spdevdocs

Thanks for the information @nanddeepn  I'll double check that.
@andrewconnell can you assign this one to me please? I'll double check when I get a minute. Thanks!


Add mediacontrol

Add mediacontrol

All keyswitch hole use mill max hotswao
On Sat, 5 Oct 2024, 12:26 pm vercel[bot], @.***> wrote:

The latest updates on your projects. Learn more about Vercel for Git ↗
https://vercel.link/github-learn-more
Name Status Preview Comments Updated (UTC)
hackpad ✅ Ready (Inspect
https://vercel.com/hackclub/hackpad/5WrBiVfFtMqJpSPKomrk6hssLzML) Visit
Preview
https://vercel.live/open-feedback/hackpad-git-fork-mickeydarrenlau-main.hackclub.dev?via=pr-comment-visit-preview-link&passThrough=1 💬
Add feedback
https://vercel.live/open-feedback/hackpad-git-fork-mickeydarrenlau-main.hackclub.dev?via=pr-comment-feedback-link Oct
5, 2024 4:26am
—
Reply to this email directly, view it on GitHub
https://github.com/hackclub/hackpad/pull/24#issuecomment-2394919925, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AO6YPGHTV4E7VRZLEPFJE4LZZ5TBFAVCNFSM6AAAAABPM7MTZKVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGOJUHEYTSOJSGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

It's the circuitpython bin
On Thu, 10 Oct 2024, 10:58 pm Franky soldev, @.***>
wrote:

@.**** commented on this pull request.
add binary
—
Reply to this email directly, view it on GitHub
https://github.com/hackclub/hackpad/pull/24#pullrequestreview-2360654355,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AO6YPGHP6J5Q6FHQIQDO2BTZ22I3DAVCNFSM6AAAAABPM7MTZKVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMZDGNRQGY2TIMZVGU
.
You are receiving this because you authored the thread.Message ID:
@.***>

Pcb can't be imported into cad file due to tinkercad limitations
Used blank plate instead


DeserializationError: Cannot deserialize content-type: text/html

I did download the samples and i try to run the Multi-Turn-Prompt the python version.
The project start fine and create me the url: http://localhost:3978
I open it in the bot framework Emulator http://localhost:3978/api/messages
And it crash:
[on_turn_error]: Cannot deserialize content-type: text/html
Traceback (most recent call last):
File "C:\Users\Francesco.tangari\Documents\Projects\Bots\botbuilder-samples\samples\python\05.multi-turn-prompt\venv\lib\site-packages\botbuilder\core\bot_adapter.py", line 128, in run_pipeline
context, callback
File "C:\Users\Francesco.tangari\Documents\Projects\Bots\botbuilder-samples\samples\python\05.multi-turn-prompt\venv\lib\site-packages\botbuilder\core\middleware_set.py", line 69, in receive_activity_with_status
return await self.receive_activity_internal(context, callback)
File "C:\Users\Francesco.tangari\Documents\Projects\Bots\botbuilder-samples\samples\python\05.multi-turn-prompt\venv\lib\site-packages\botbuilder\core\middleware_set.py", line 79, in receive_activity_internal
return await callback(context)
File "C:\Users\Francesco.tangari\Documents\Projects\Bots\botbuilder-samples\samples\python\05.multi-turn-prompt\bots\dialog_bot.py", line 40, in on_turn
await super().on_turn(turn_context)
File "C:\Users\Francesco.tangari\Documents\Projects\Bots\botbuilder-samples\samples\python\05.multi-turn-prompt\venv\lib\site-packages\botbuilder\core\activity_handler.py", line 68, in on_turn
await self.on_message_activity(turn_context)
File "C:\Users\Francesco.tangari\Documents\Projects\Bots\botbuilder-samples\samples\python\05.multi-turn-prompt\bots\dialog_bot.py", line 50, in on_message_activity
self.conversation_state.create_property("DialogState"),
....
raise DeserializationError("Cannot deserialize content-type: {}".format(content_type))
msrest.exceptions.DeserializationError: Cannot deserialize content-type: text/html
it crash when it do that:
return await step_context.prompt(
ChoicePrompt.name,
PromptOptions(
prompt=MessageFactory.text("Please enter your mode of transport."),
choices=[Choice("Car"), Choice("Bus"), Choice("Bicycle")],
),
)
There is no way to send the "JSON" version to the bot emulator?
because i have problems creating the webchat version. So i need to use the local emulator
So.. there is a way to continue the conversation? maybe rendering the JSON instead of the HTML?
I don't need the beauty of the html i need just to make testing.

Thank you for the report, @frankbass3. I can see that your error message mentions HTML and your comments seem to confirm that you are expecting HTML to be used in some way. What HTML are you talking about? Also, please provide the following:

A link to the sample you're talking about
Screenshots of the problem
Repro steps

Yes

The sample is the mulit-turn-prompt   link:https://github.com/microsoft/BotBuilder-Samples/tree/main/samples/python/05.multi-turn-prompt
Screenshoot attached
steps was simple just open the project run the app.py, go in emulator put the url.

@v-kydela, could you please look at the reply? Thank you.

@mrivera-ms - Don't worry, this is on my list

@frankbass3 - I'm sorry but I cannot reproduce the problem. When I debug Python sample 5 in Visual Studio Code without any app ID or password or virtual environment, the sample works in Emulator without issue:

We will need to figure out what makes your situation different from mine. I will need some more information about your repro steps, which may not be as simple as you think.

What version of Emulator are you using?
What version of the sample are you using? (You can provide the commit that your local Git repo is at)
Have you provided any credentials in the config file?
Have you activated a virtual environment?
Have you installed the requirements from requirements.txt?
Do you encounter the problem when you run the sample in Visual Studio Code or only in PyCharm?
Do you encounter the error immediately after connecting to the localhost in Emulator or do you have to send a message from Emulator to the bot first?
What HTML are you talking about? (I asked this before and given that there's a mystery to be solved I still need an answer)

Magically today appear an update pop-up on the Emulator and i could update it to the version v4 and now it works.
Thank you.

We are also facing similar issue, can some one help


Adding PyBytes_FromObject

Would be nice to add PyBytes_FromObject. This is often enough used in general purpose code to be of notable benefit.
Edit: Also PyObject_Bytes would be nice as well.

PR?