[0.9.5-master] "panic: interface conversion" on continuous queries with min()

Hi,
I just updated to 82c50bb from f994a97, I deleted all data files, re-create my database, retention policy and continuous queries.
New configuration file generated with "influxd config"
The error "panic: interface conversion: interface is string, not time.Time" appears on the continuous query with the "min()" and not the "mean()" function. It was working on f994a97.
Also I tried to set up the database without the "min()" continuous queries and it works. But as soon as I add them, I have the panic
Also, the two following queries work without error
SELECT min(value) AS "value" FROM "db_note"."ret_6h".electricity WHERE time >= '2015-09-24T08:20:00Z' AND time < ' 2015-09-24T10:30:00Z' GROUP BY time(10m), *
SELECT min(value) AS "value" FROM "db_note"."ret_6h".electricity WHERE time > now() - 10m GROUP BY time(10m), *

Database creation:
curl -G http://localhost:8086/query --data-urlencode "q=CREATE DATABASE db_note"
curl -G http://localhost:8086/query --data-urlencode "q=CREATE RETENTION POLICY ret_6h ON db_note DURATION 6h REPLICATION 1 DEFAULT"
curl -G http://localhost:8086/query --data-urlencode "q=CREATE RETENTION POLICY ret_7d_10m ON db_note DURATION 7d REPLICATION 1"
curl -G http://localhost:8086/query --data-urlencode "q=CREATE RETENTION POLICY ret_31d_1h ON db_note DURATION 31d REPLICATION 1"
curl -G http://localhost:8086/query --data-urlencode "q=CREATE CONTINUOUS QUERY downSampling_10m ON db_note BEGIN SELECT mean(value) AS value INTO "db_note"."ret_7d_10m".sensorsData FROM sensorsData GROUP BY time(10m), * END"
curl -G http://localhost:8086/query --data-urlencode "q=CREATE CONTINUOUS QUERY downSampling_1h ON db_note BEGIN SELECT mean(value) INTO "db_note"."ret_31d_1h".sensorsData FROM "db_note"."ret_7d_10m".sensorsData GROUP BY time(1h), * END"
curl -G http://localhost:8086/query --data-urlencode "q=CREATE CONTINUOUS QUERY downSampling_10m_elec ON db_note BEGIN SELECT min(value) AS "value" INTO "db_note"."ret_7d_10m".electricity FROM "db_note"."ret_6h".electricity GROUP BY time(10m), * END"
curl -G http://localhost:8086/query --data-urlencode "q=CREATE CONTINUOUS QUERY downSampling_1h_electricity ON db_note BEGIN SELECT min(value) AS "value" INTO "db_note"."ret_31d_1h".electricity FROM "db_note"."ret_7d_10m".electricity GROUP BY time(1h), * END"

Error log
influxd --config /home/pi/NoteRF-Soft/InfluxDB/influx.config

 8888888           .d888<PHONE_NUMBER>b.  888888b.
   888            d88P"  888                   888  "Y88b 888  "88b
   888            888    888                   888    888 888  .88P
   888   88888b.  888888 888 888  888 888  888<PHONE_NUMBER>888K.
   888   888 "88b 888    888 888  888  Y8bd8P' 888    888 888  "Y88b
   888   888  888 888    888 888  888   X88K   888    888 888    888
   888   888  888 888    888 Y88b 888 .d8""8b. 888  .d88P 888   d88P
 8888888 888  888 888    888  "Y88888<PHONE_NUMBER>888P"  8888888P"

2015/09/24 10:28:22 InfluxDB starting, version 0.9, branch unknown, commit unknown
2015/09/24 10:28:22 Go version go1.5, GOMAXPROCS set to 4
2015/09/24 10:28:22 Using configuration at: /home/pi/NoteRF-Soft/InfluxDB/influx.config
[metastore] 2015/09/24 10:28:22 Using data dir: /home/pi/.influxdb/meta
[metastore] 2015/09/24 10:28:22 Skipping cluster join: already member of cluster: nodeId=1 raftEnabled=true peers=[localhost:8088]
[metastore] 2015/09/24 10:28:22 Node at localhost:8088 [Follower]
[metastore] 2015/09/24 10:28:24 Node at localhost:8088 [Leader]. peers=[localhost:8088]
[monitor] 2015/09/24 10:28:24 Starting monitor system
[metastore] 2015/09/24 10:28:24 Updated node id=1 hostname=localhost:8088
[monitor] 2015/09/24 10:28:24 'build' registered for diagnostics monitoring
[monitor] 2015/09/24 10:28:24 'runtime' registered for diagnostics monitoring
[monitor] 2015/09/24 10:28:24 'network' registered for diagnostics monitoring
[monitor] 2015/09/24 10:28:24 'system' registered for diagnostics monitoring
[store] 2015/09/24 10:28:24 Using data dir: /home/pi/.influxdb/data
[monitor] 2015/09/24 10:28:24 Storing statistics in database '_internal' retention policy '', at interval 10s
[wal] 2015/09/24 10:28:24 WAL starting with 30720 ready series size, 0.50 compaction threshold, and 20971520 partition size threshold
[wal] 2015/09/24 10:28:24 WAL writing to /home/pi/.influxdb/wal/_internal/monitor/1
[wal] 2015/09/24 10:28:24 WAL starting with 30720 ready series size, 0.50 compaction threshold, and 20971520 partition size threshold
[wal] 2015/09/24 10:28:24 WAL writing to /home/pi/.influxdb/wal/db_note/ret_31d_1h/4
[wal] 2015/09/24 10:28:24 reading WAL files to flush to index
[wal] 2015/09/24 10:28:24 writing 6 series from WAL file /home/pi/.influxdb/wal/db_note/ret_31d_1h/4/01.000001.wal to index
[wal] 2015/09/24 10:28:25 WAL starting with 30720 ready series size, 0.50 compaction threshold, and 20971520 partition size threshold
[wal] 2015/09/24 10:28:25 WAL writing to /home/pi/.influxdb/wal/db_note/ret_6h/2
[wal] 2015/09/24 10:28:25 WAL starting with 30720 ready series size, 0.50 compaction threshold, and 20971520 partition size threshold
[wal] 2015/09/24 10:28:25 WAL writing to /home/pi/.influxdb/wal/db_note/ret_7d_10m/3
[wal] 2015/09/24 10:28:25 reading WAL files to flush to index
[wal] 2015/09/24 10:28:25 writing 6 series from WAL file /home/pi/.influxdb/wal/db_note/ret_7d_10m/3/01.000001.wal to index
[handoff] 2015/09/24 10:28:25 Starting hinted handoff service
[handoff] 2015/09/24 10:28:25 Using data dir: /home/pi/.influxdb/hh
[tcp] 2015/09/24 10:28:25 Starting cluster service
[shard-precreation] 2015/09/24 10:28:25 Starting precreation service with check interval of 10m0s, advance period of 30m0s
[snapshot] 2015/09/24 10:28:25 Starting snapshot service
[copier] 2015/09/24 10:28:25 Starting copier service
[admin] 2015/09/24 10:28:25 Starting admin service
[admin] 2015/09/24 10:28:25 Listening on HTTP: [::]:8083
[continuous_querier] 2015/09/24 10:28:25 Starting continuous query service
[httpd] 2015/09/24 10:28:25 Starting HTTP service
[httpd] 2015/09/24 10:28:25 Authentication enabled: false
[httpd] 2015/09/24 10:28:25 Listening on HTTP: [::]:8086
[retention] 2015/09/24 10:28:25 Starting retention policy enforcement service with check interval of 30m0s
[run] 2015/09/24 10:28:25 Listening for signals
2015/09/24 10:28:25 Sending anonymous usage statistics to m.influxdb.com
[continuous_querier] 2015/09/24 10:28:26 executing continuous query downSampling_10m
[query] 2015/09/24 10:28:26 SELECT mean(value) AS "value" INTO "db_note"."ret_7d_10m".sensorsData FROM "db_note"."ret_6h".sensorsData WHERE time >= '2015-09-24T08:20:00Z' AND time <
'2015-09-24T08:30:00Z' GROUP BY time(10m), *
[continuous_querier] 2015/09/24 10:28:26 wrote 6 point(s) to db_note.ret_7d_10m
[query] 2015/09/24 10:28:26 SELECT mean(value) AS "value" INTO "db_note"."ret_7d_10m".sensorsData FROM "db_note"."ret_6h".sensorsData WHERE time >= '2015-09-24T08:10:00Z' AND time <
'2015-09-24T08:20:00Z' GROUP BY time(10m), *
[continuous_querier] 2015/09/24 10:28:26 executing continuous query downSampling_1h
[query] 2015/09/24 10:28:26 SELECT mean(value) INTO "db_note"."ret_31d_1h".sensorsData FROM "db_note"."ret_7d_10m".sensorsData WHERE time >= '2015-09-24T08:00:00Z' AND time < '2015-0
9-24T09:00:00Z' GROUP BY time(1h), *
[continuous_querier] 2015/09/24 10:28:26 wrote 6 point(s) to db_note.ret_31d_1h
[continuous_querier] 2015/09/24 10:28:26 executing continuous query downSampling_10m_elec
[query] 2015/09/24 10:28:26 SELECT min(value) AS "value" INTO "db_note"."ret_7d_10m".electricity FROM "db_note"."ret_6h".electricity WHERE time >= '2015-09-24T08:20:00Z' AND time < '
2015-09-24T08:30:00Z' GROUP BY time(10m), *
panic: interface conversion: interface is string, not time.Time

goroutine 51 [running]:
github.com/influxdb/influxdb/services/continuous_querier.(*Service).convertRowToPoints(0x10d128a0, 0x10c0f900, 0xb, 0x10c554a0, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/services/continuous_querier/service.go:424 +0x4e4
github.com/influxdb/influxdb/services/continuous_querier.(*Service).runContinuousQueryAndWriteResult(0x10d128a0, 0x10c0b560, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/services/continuous_querier/service.go:349 +0x2dc
github.com/influxdb/influxdb/services/continuous_querier.(*Service).ExecuteContinuousQuery(0x10d128a0, 0x10c51e4c, 0x10e8aab0, 0xcd95ab2a, 0xe, 0x8a18bbc, 0x9adc70, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/services/continuous_querier/service.go:293 +0x96c
github.com/influxdb/influxdb/services/continuous_querier.(*Service).runContinuousQueries(0x10d128a0, 0x10c51f34)
        /home/pi/go/src/github.com/influxdb/influxdb/services/continuous_querier/service.go:225 +0x2a8
github.com/influxdb/influxdb/services/continuous_querier.(*Service).backgroundLoop(0x10d128a0)
        /home/pi/go/src/github.com/influxdb/influxdb/services/continuous_querier/service.go:204 +0x488
created by github.com/influxdb/influxdb/services/continuous_querier.(*Service).Open
        /home/pi/go/src/github.com/influxdb/influxdb/services/continuous_querier/service.go:127 +0x25c

goroutine 1 [chan receive]:
main.(*Main).Run(0x10e59f60, 0x10c60108, 0x2, 0x3, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/cmd/influxd/main.go:91 +0x920
main.main()
        /home/pi/go/src/github.com/influxdb/influxdb/cmd/influxd/main.go:42 +0x32c

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
        /home/pi/.gvm/gos/go1.5/src/runtime/asm_arm.s:1036 +0x4

goroutine 19 [syscall]:
os/signal.loop()
        /home/pi/.gvm/gos/go1.5/src/os/signal/signal_unix.go:22 +0x14
created by os/signal.init.1
        /home/pi/.gvm/gos/go1.5/src/os/signal/signal_unix.go:28 +0x30

goroutine 35 [IO wait]:
net.runtime_pollWait(0x749c1aa0, 0x72, 0x10c66000)
        /home/pi/.gvm/gos/go1.5/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0x10d0d078, 0x72, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/fd_poll_runtime.go:73 +0x34
net.(*pollDesc).WaitRead(0x10d0d078, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/fd_poll_runtime.go:78 +0x30
net.(*netFD).accept(0x10d0d040, 0x0, 0x75b374c8, 0x10c67c30)
        /home/pi/.gvm/gos/go1.5/src/net/fd_unix.go:408 +0x21c
net.(*TCPListener).AcceptTCP(0x10d03d78, 0x0, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/tcpsock_posix.go:254 +0x4c
net.(*TCPListener).Accept(0x10d03d78, 0x0, 0x0, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/tcpsock_posix.go:264 +0x34
github.com/influxdb/influxdb/tcp.(*Mux).Serve(0x10d05d70, 0x749c0ae0, 0x10d03d78, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/tcp/mux.go:48 +0x30
created by github.com/influxdb/influxdb/cmd/influxd/run.(*Server).Open.func1
        /home/pi/go/src/github.com/influxdb/influxdb/cmd/influxd/run/server.go:347 +0x93c

goroutine 36 [chan receive]:
github.com/influxdb/influxdb/tcp.(*listener).Accept(0x10d03d80, 0x0, 0x0, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/tcp/mux.go:129 +0x5c
github.com/influxdb/influxdb/meta.(*raftLayer).Accept(0x10d5a0a0, 0x0, 0x0, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/meta/store.go:2059 +0x54
github.com/hashicorp/raft.(*NetworkTransport).listen(0x10d06320)
        /home/pi/go/src/github.com/hashicorp/raft/net_transport.go:346 +0x50
created by github.com/hashicorp/raft.NewNetworkTransport
        /home/pi/go/src/github.com/hashicorp/raft/net_transport.go:138 +0x274

goroutine 37 [select]:
github.com/hashicorp/raft.(*Raft).leaderLoop(0x10d305a0)
        /home/pi/go/src/github.com/hashicorp/raft/raft.go:849 +0xb24
github.com/hashicorp/raft.(*Raft).runLeader(0x10d305a0)
        /home/pi/go/src/github.com/hashicorp/raft/raft.go:821 +0x80c
github.com/hashicorp/raft.(*Raft).run(0x10d305a0)
        /home/pi/go/src/github.com/hashicorp/raft/raft.go:602 +0xb8
github.com/hashicorp/raft.(*Raft).(github.com/hashicorp/raft.run)-fm()
        /home/pi/go/src/github.com/hashicorp/raft/raft.go:252 +0x1c
github.com/hashicorp/raft.(*raftState).goFunc.func1(0x10d305a0, 0x10d03e90)
        /home/pi/go/src/github.com/hashicorp/raft/state.go:152 +0x4c
created by github.com/hashicorp/raft.(*raftState).goFunc
        /home/pi/go/src/github.com/hashicorp/raft/state.go:153 +0x40

goroutine 38 [select]:
github.com/hashicorp/raft.(*Raft).runFSM(0x10d305a0)
        /home/pi/go/src/github.com/hashicorp/raft/raft.go:509 +0xd5c
github.com/hashicorp/raft.(*Raft).(github.com/hashicorp/raft.runFSM)-fm()
        /home/pi/go/src/github.com/hashicorp/raft/raft.go:253 +0x1c
github.com/hashicorp/raft.(*raftState).goFunc.func1(0x10d305a0, 0x10d03e98)
        /home/pi/go/src/github.com/hashicorp/raft/state.go:152 +0x4c
created by github.com/hashicorp/raft.(*raftState).goFunc
        /home/pi/go/src/github.com/hashicorp/raft/state.go:153 +0x40

goroutine 39 [select]:
github.com/hashicorp/raft.(*Raft).runSnapshots(0x10d305a0)
        /home/pi/go/src/github.com/hashicorp/raft/raft.go:1636 +0x380
github.com/hashicorp/raft.(*Raft).(github.com/hashicorp/raft.runSnapshots)-fm()
        /home/pi/go/src/github.com/hashicorp/raft/raft.go:254 +0x1c
github.com/hashicorp/raft.(*raftState).goFunc.func1(0x10d305a0, 0x10d03ea0)
        /home/pi/go/src/github.com/hashicorp/raft/state.go:152 +0x4c
created by github.com/hashicorp/raft.(*raftState).goFunc
        /home/pi/go/src/github.com/hashicorp/raft/state.go:153 +0x40

goroutine 40 [select]:
github.com/influxdb/influxdb/meta.(*localRaft).logLeaderChanges(0x10d05ec0)
        /home/pi/go/src/github.com/influxdb/influxdb/meta/state.go:187 +0x3cc
created by github.com/influxdb/influxdb/meta.(*localRaft).open
        /home/pi/go/src/github.com/influxdb/influxdb/meta/state.go:177 +0x1110

goroutine 41 [chan receive]:
github.com/influxdb/influxdb/tcp.(*listener).Accept(0x10d03d88, 0x0, 0x0, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/tcp/mux.go:129 +0x5c
github.com/influxdb/influxdb/meta.(*Store).serveExecListener(0x10d1e180)
        /home/pi/go/src/github.com/influxdb/influxdb/meta/store.go:622 +0x94
created by github.com/influxdb/influxdb/meta.(*Store).Open
        /home/pi/go/src/github.com/influxdb/influxdb/meta/store.go:239 +0x2a8

goroutine 42 [chan receive]:
github.com/influxdb/influxdb/tcp.(*listener).Accept(0x10d03d90, 0x0, 0x0, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/tcp/mux.go:129 +0x5c
github.com/influxdb/influxdb/meta.(*Store).serveRPCListener(0x10d1e180)
        /home/pi/go/src/github.com/influxdb/influxdb/meta/store.go:726 +0x94
created by github.com/influxdb/influxdb/meta.(*Store).Open
        /home/pi/go/src/github.com/influxdb/influxdb/meta/store.go:242 +0x2f4

goroutine 22 [select]:
github.com/influxdb/influxdb/cmd/influxd/run.(*Server).monitorErrorChan(0x10d10c60, 0x10d0cc00)
        /home/pi/go/src/github.com/influxdb/influxdb/cmd/influxd/run/server.go:493 +0x114
created by github.com/influxdb/influxdb/cmd/influxd/run.(*Server).Open.func1
        /home/pi/go/src/github.com/influxdb/influxdb/cmd/influxd/run/server.go:353 +0xabc

goroutine 23 [select]:
github.com/influxdb/influxdb/monitor.(*Monitor).storeStatistics(0x10d2ea00)
        /home/pi/go/src/github.com/influxdb/influxdb/monitor/service.go:339 +0x1354
created by github.com/influxdb/influxdb/monitor.(*Monitor).Open
        /home/pi/go/src/github.com/influxdb/influxdb/monitor/service.go:134 +0x31c

goroutine 24 [select]:
github.com/influxdb/influxdb/tsdb/engine/wal.(*Log).autoflusher(0x10c7eb40, 0x10dbabc0)
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/engine/wal/wal.go:604 +0x470
created by github.com/influxdb/influxdb/tsdb/engine/wal.(*Log).Open
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/engine/wal/wal.go:241 +0x524

goroutine 25 [select]:
github.com/influxdb/influxdb/tsdb/engine/wal.(*Log).autoflusher(0x10c7ec80, 0x10dbba80)
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/engine/wal/wal.go:604 +0x470
created by github.com/influxdb/influxdb/tsdb/engine/wal.(*Log).Open
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/engine/wal/wal.go:241 +0x524

goroutine 26 [select]:
github.com/influxdb/influxdb/tsdb/engine/wal.(*Log).autoflusher(0x10c7ee60, 0x10e74000)
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/engine/wal/wal.go:604 +0x470
created by github.com/influxdb/influxdb/tsdb/engine/wal.(*Log).Open
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/engine/wal/wal.go:241 +0x524

goroutine 27 [select]:
github.com/influxdb/influxdb/tsdb/engine/wal.(*Log).autoflusher(0x10c7efa0, 0x10e74c40)
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/engine/wal/wal.go:604 +0x470
created by github.com/influxdb/influxdb/tsdb/engine/wal.(*Log).Open
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/engine/wal/wal.go:241 +0x524

goroutine 28 [select]:
github.com/influxdb/influxdb/services/hh.(*Service).retryWrites(0x10d0a4d0)
        /home/pi/go/src/github.com/influxdb/influxdb/services/hh/service.go:103 +0x2b0
created by github.com/influxdb/influxdb/services/hh.(*Service).Open
        /home/pi/go/src/github.com/influxdb/influxdb/services/hh/service.go:67 +0x208

goroutine 29 [select]:
github.com/influxdb/influxdb/services/hh.(*Service).expireWrites(0x10d0a4d0)
        /home/pi/go/src/github.com/influxdb/influxdb/services/hh/service.go:121 +0x270
created by github.com/influxdb/influxdb/services/hh.(*Service).Open
        /home/pi/go/src/github.com/influxdb/influxdb/services/hh/service.go:68 +0x224

goroutine 30 [chan receive]:
github.com/influxdb/influxdb/tcp.(*listener).Accept(0x10d03d98, 0x0, 0x0, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/tcp/mux.go:129 +0x5c
github.com/influxdb/influxdb/cluster.(*Service).serve(0x10d06230)
        /home/pi/go/src/github.com/influxdb/influxdb/cluster/service.go:98 +0xd0
created by github.com/influxdb/influxdb/cluster.(*Service).Open
        /home/pi/go/src/github.com/influxdb/influxdb/cluster/service.go:75 +0x118

goroutine 31 [select]:
github.com/influxdb/influxdb/services/precreator.(*Service).runPrecreation(0x10d05890)
        /home/pi/go/src/github.com/influxdb/influxdb/services/precreator/service.go:75 +0x38c
created by github.com/influxdb/influxdb/services/precreator.(*Service).Open
        /home/pi/go/src/github.com/influxdb/influxdb/services/precreator/service.go:53 +0x1f4

goroutine 32 [chan receive]:
github.com/influxdb/influxdb/tcp.(*listener).Accept(0x10d03da0, 0x0, 0x0, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/tcp/mux.go:129 +0x5c
github.com/influxdb/influxdb/services/snapshotter.(*Service).serve(0x10d05920)
        /home/pi/go/src/github.com/influxdb/influxdb/services/snapshotter/service.go:75 +0x84
created by github.com/influxdb/influxdb/services/snapshotter.(*Service).Open
        /home/pi/go/src/github.com/influxdb/influxdb/services/snapshotter/service.go:48 +0x108

goroutine 33 [chan receive]:
github.com/influxdb/influxdb/tcp.(*listener).Accept(0x10d03da8, 0x0, 0x0, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/tcp/mux.go:129 +0x5c
github.com/influxdb/influxdb/services/copier.(*Service).serve(0x10d05980)
        /home/pi/go/src/github.com/influxdb/influxdb/services/copier/service.go:78 +0x84
created by github.com/influxdb/influxdb/services/copier.(*Service).Open
        /home/pi/go/src/github.com/influxdb/influxdb/services/copier/service.go:51 +0x108

goroutine 50 [IO wait]:
net.runtime_pollWait(0x749c1a28, 0x72, 0x10c66000)
        /home/pi/.gvm/gos/go1.5/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0x10e74eb8, 0x72, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/fd_poll_runtime.go:73 +0x34
net.(*pollDesc).WaitRead(0x10e74eb8, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/fd_poll_runtime.go:78 +0x30
net.(*netFD).accept(0x10e74e80, 0x0, 0x75b374c8, 0x10c0e220)
        /home/pi/.gvm/gos/go1.5/src/net/fd_unix.go:408 +0x21c
net.(*TCPListener).AcceptTCP(0x10c63c28, 0x6a168, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/tcpsock_posix.go:254 +0x4c
net.(*TCPListener).Accept(0x10c63c28, 0x0, 0x0, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/tcpsock_posix.go:264 +0x34
net/http.(*Server).Serve(0x10c101c0, 0x749c0ae0, 0x10c63c28, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/http/server.go:1887 +0x88
net/http.Serve(0x749c0ae0, 0x10c63c28, 0x76373078, 0x10c200e0, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/http/server.go:1765 +0x80
github.com/influxdb/influxdb/services/admin.(*Service).serve(0x10d059e0)
        /home/pi/go/src/github.com/influxdb/influxdb/services/admin/service.go:107 +0x12c
created by github.com/influxdb/influxdb/services/admin.(*Service).Open
        /home/pi/go/src/github.com/influxdb/influxdb/services/admin/service.go:70 +0x374

goroutine 52 [IO wait]:
net.runtime_pollWait(0x749c19b0, 0x72, 0x10c66000)
        /home/pi/.gvm/gos/go1.5/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0x10e75038, 0x72, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/fd_poll_runtime.go:73 +0x34
net.(*pollDesc).WaitRead(0x10e75038, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/fd_poll_runtime.go:78 +0x30
net.(*netFD).accept(0x10e75000, 0x0, 0x75b374c8, 0x10db0500)
        /home/pi/.gvm/gos/go1.5/src/net/fd_unix.go:408 +0x21c
net.(*TCPListener).AcceptTCP(0x10c63c60, 0x6a168, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/tcpsock_posix.go:254 +0x4c
net.(*TCPListener).Accept(0x10c63c60, 0x0, 0x0, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/tcpsock_posix.go:264 +0x34
net/http.(*Server).Serve(0x10daa780, 0x749c0ae0, 0x10c63c60, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/http/server.go:1887 +0x88
net/http.Serve(0x749c0ae0, 0x10c63c60, 0x749c1fe8, 0x10d0cf40, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/http/server.go:1765 +0x80
github.com/influxdb/influxdb/services/httpd.(*Service).serve(0x10d05bc0)
        /home/pi/go/src/github.com/influxdb/influxdb/services/httpd/service.go:133 +0x80
created by github.com/influxdb/influxdb/services/httpd.(*Service).Open
        /home/pi/go/src/github.com/influxdb/influxdb/services/httpd/service.go:101 +0x518

goroutine 53 [select]:
github.com/influxdb/influxdb/services/retention.(*Service).deleteShardGroups(0x10d0cfc0)
        /home/pi/go/src/github.com/influxdb/influxdb/services/retention/service.go:69 +0x2ec
created by github.com/influxdb/influxdb/services/retention.(*Service).Open
        /home/pi/go/src/github.com/influxdb/influxdb/services/retention/service.go:45 +0x188

goroutine 54 [select]:
github.com/influxdb/influxdb/services/retention.(*Service).deleteShards(0x10d0cfc0)
        /home/pi/go/src/github.com/influxdb/influxdb/services/retention/service.go:102 +0x63c
created by github.com/influxdb/influxdb/services/retention.(*Service).Open
        /home/pi/go/src/github.com/influxdb/influxdb/services/retention/service.go:46 +0x1a4

goroutine 55 [chan receive]:
github.com/influxdb/influxdb/cmd/influxd/run.(*Server).startServerReporting(0x10d10c60)
        /home/pi/go/src/github.com/influxdb/influxdb/cmd/influxd/run/server.go:444 +0x1b0
created by github.com/influxdb/influxdb/cmd/influxd/run.(*Server).Open.func1
        /home/pi/go/src/github.com/influxdb/influxdb/cmd/influxd/run/server.go:380 +0xf34

goroutine 56 [select]:
github.com/influxdb/influxdb/cmd/influxd/run.(*Command).monitorServerErrors(0x10d0c240)
        /home/pi/go/src/github.com/influxdb/influxdb/cmd/influxd/run/command.go:138 +0x23c
created by github.com/influxdb/influxdb/cmd/influxd/run.(*Command).Run
        /home/pi/go/src/github.com/influxdb/influxdb/cmd/influxd/run/command.go:120 +0xb6c

goroutine 57 [select, locked to thread]:
runtime.gopark(0x753a70, 0x10ea4f8c, 0x653a20, 0x6, 0x45318, 0x2)
        /home/pi/.gvm/gos/go1.5/src/runtime/proc.go:185 +0x148
runtime.selectgoImpl(0x10ea4f8c, 0x0, 0xc)
        /home/pi/.gvm/gos/go1.5/src/runtime/select.go:392 +0x14d4
runtime.selectgo(0x10ea4f8c)
        /home/pi/.gvm/gos/go1.5/src/runtime/select.go:212 +0x10
runtime.ensureSigM.func1()
        /home/pi/.gvm/gos/go1.5/src/runtime/signal1_unix.go:227 +0x428
runtime.goexit()
        /home/pi/.gvm/gos/go1.5/src/runtime/asm_arm.s:1036 +0x4

goroutine 9 [runnable]:
github.com/influxdb/influxdb/tsdb.(*QueryExecutor).executeStatement(0x10d05650, 0x0, 0x75b37e40, 0x10ea6230, 0x10db4430, 0x7, 0x10c10700, 0x0, 0x0, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/query_executor.go:663 +0xc4
github.com/influxdb/influxdb/tsdb.(*QueryExecutor).ExecuteQuery.func1(0x10c0fc90, 0x10db4430, 0x7, 0x10d05650, 0x10c10700, 0x0)
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/query_executor.go:162 +0x7b8
created by github.com/influxdb/influxdb/tsdb.(*QueryExecutor).ExecuteQuery
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/query_executor.go:219 +0x84

goroutine 58 [IO wait]:
net.runtime_pollWait(0x749c1938, 0x72, 0x10c66000)
        /home/pi/.gvm/gos/go1.5/src/runtime/netpoll.go:157 +0x60
net.(*pollDesc).Wait(0x10e75338, 0x72, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/fd_poll_runtime.go:73 +0x34
net.(*pollDesc).WaitRead(0x10e75338, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/fd_poll_runtime.go:78 +0x30
net.(*netFD).Read(0x10e75300, 0x10e95000, 0x1000, 0x1000, 0x0, 0x75b33018, 0x10c66000)
        /home/pi/.gvm/gos/go1.5/src/net/fd_unix.go:232 +0x1c4
net.(*conn).Read(0x10c63cb8, 0x10e95000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/net.go:172 +0xc8
net/http.noteEOFReader.Read(0x75b37b20, 0x10c63cb8, 0x10dfa26c, 0x10e95000, 0x1000, 0x1000, 0x284618, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/net/http/transport.go:1370 +0x5c
net/http.(*noteEOFReader).Read(0x10e8aa20, 0x10e95000, 0x1000, 0x1000, 0x0, 0x0, 0x0)
        <autogenerated>:126 +0xd0
bufio.(*Reader).fill(0x10e920c0)
        /home/pi/.gvm/gos/go1.5/src/bufio/bufio.go:97 +0x1c4
bufio.(*Reader).Peek(0x10e920c0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0)
        /home/pi/.gvm/gos/go1.5/src/bufio/bufio.go:132 +0xcc
net/http.(*persistConn).readLoop(0x10dfa240)
        /home/pi/.gvm/gos/go1.5/src/net/http/transport.go:876 +0xe4
created by net/http.(*Transport).dialConn
        /home/pi/.gvm/gos/go1.5/src/net/http/transport.go:685 +0xab4

goroutine 59 [select]:
net/http.(*persistConn).writeLoop(0x10dfa240)
        /home/pi/.gvm/gos/go1.5/src/net/http/transport.go:1009 +0x314
created by net/http.(*Transport).dialConn
        /home/pi/.gvm/gos/go1.5/src/net/http/transport.go:686 +0xad0

goroutine 10 [runnable]:
github.com/influxdb/influxdb/tsdb.(*SelectExecutor).mappersDrained(0x10c0b900, 0x10c10780)
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/executor.go:70
github.com/influxdb/influxdb/tsdb.(*SelectExecutor).executeAggregate(0x10c0b900, 0x10c10780)
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/executor.go:406 +0x7a8
created by github.com/influxdb/influxdb/tsdb.(*SelectExecutor).Execute
        /home/pi/go/src/github.com/influxdb/influxdb/tsdb/executor.go:64 +0xe0

@Oliv4945 can you share a few example points so we can get a sense of your data?

Here an extract, is that kind of you requested ?
SHOW MEASUREMENTS
name: measurements
------------------
name
electricity
sensorsData

SHOW SERIES
name: electricity
-----------------
_key				data
electricity,data=HCHP		HCHP
electricity,data=HCHC		HCHC
electricity,data=PAPP		PAPP

name: sensorsData
-----------------
_key						data		room
sensorsData,data=DewPoint,room=Outside		DewPoint	Outside
sensorsData,data=Humidity,room=Bedroom		Humidity	Bedroom
sensorsData,data=Humidity,room=BedroomNoe	Humidity	Bedroom2
sensorsData,data=Humidity,room=LivingRoom	Humidity	LivingRoom
sensorsData,data=Humidity,room=Outside		Humidity	Outside
sensorsData,data=Pressure,room=Outside		Pressure	Outside
sensorsData,data=Temperature,room=Bedroom	Temperature	Bedroom
sensorsData,data=Temperature,room=BedroomNoe	Temperature	Bedroom2
sensorsData,data=Temperature,room=LivingRoom	Temperature	LivingRoom
sensorsData,data=Temperature,room=Outside	Temperature	Outside

SELECT * FROM sensorsData GROUP BY * LIMIT 4
I deleted some data to avoid to much repetition
> SELECT * FROM sensorsData GROUP BY * LIMIT 4
name: sensorsData
tags: data=DewPoint, room=Outside
time			mean	value
----			----	-----
1443193448000000000		9.67
1443194048000000000		9.37
1443194649000000000		9.58
1443195248000000000		9.19

name: sensorsData
tags: data=Humidity, room=Bedroom
time			mean	value
----			----	-----
1443193205000000000		47.9
1443193264000000000		47.8
1443193323000000000		47.9
1443193382000000000		47.7

name: sensorsData
tags: data=Humidity, room=LivingRoom
time			mean	value
----			----	-----
1443193204000000000		47.9
1443193264000000000		48.2
1443193325000000000		48.2
1443193385000000000		46.8

name: sensorsData
tags: data=Temperature, room=Bedroom
time			mean	value
----			----	-----
1443193205000000000		20.5
1443193264000000000		20.5
1443193323000000000		20.5
1443193382000000000		20.5

name: sensorsData
tags: data=Temperature, room=LivingRoom
time			mean	value
----			----	-----
1443193204000000000		21.4
1443193264000000000		21.4
1443193325000000000		21.4
1443193385000000000		21.4

SELECT * FROM electricity GROUP BY * LIMIT 4
name: electricity
tags: data=PAPP
time			value
----			-----
1443193205000000000	200
1443193266000000000	200
1443193326000000000	200
1443193387000000000	200

name: electricity
tags: data=HCHC
time			value
----			-----
1443191572000000000	5.0040957e+07
1443191632000000000	5.004096e+07
1443191692000000000	5.0040963e+07
1443191753000000000	5.0040966e+07

name: electricity
tags: data=HCHP
time			value
----			-----
1443191571000000000	5.3300651e+07
1443191632000000000	5.3300651e+07
1443191692000000000	5.3300651e+07
1443191753000000000	5.3300651e+07

I get the same error on a Continuous Query using the TOP function on <IP_ADDRESS> running on Ubuntu 14.04.3 LTS x86_64 3.13.0-61-generic. Installed using apt-get. Influxd crashed when I first created the query and crashes on subsequent restarts. Influxdb works fine if i disable continuous queries in the conf file.
Attaching log of the crash.
InfluxdbCrashLog.txt
Database has quite a few measurements, all with just a single key called 'val'
Here's what Empty_56 (the measurement I query on) looks like:
> SELECT val FROM "Empty_56" WHERE time > now() - 2h LIMIT 10
name: Empty_56
--------------
time                    val
2015-11-30T06:55:04Z    0.364
2015-11-30T06:55:13Z    0.988
2015-11-30T06:55:21Z    -0.261
2015-11-30T06:55:30Z    0.676
2015-11-30T06:55:39Z    0.988
2015-11-30T06:55:48Z    0.364
2015-11-30T06:55:57Z    0.052
2015-11-30T06:56:06Z    1.612
2015-11-30T06:56:15Z    0.364
2015-11-30T06:56:24Z    1.3

I've got no retention policies, but here's how I created the query (via the admin web interface):
[http] 2015/11/30 00:47:27 my.ip.address - - [30/Nov/2015:00:47:27 -0700] GET /query?q=CREATE+CONTINUOUS+QUERY+maxGVRates+ON+scans2015+BEGIN+SELECT+TOP(val%2C+25)+AS+val+INTO+hourlyMaxGV+FROM+%22Empty_56%22+GROUP+BY+time(1h)+END&db=scans2015 HTTP/1.1 200 40 http://my.server.name:8083/ <Browser information snipped> 45.10937ms

So the command I sent was
CREATE CONTINUOUS QUERY maxGVRates ON scans2015 BEGIN SELECT TOP(val, 25) AS val INTO hourlyMaxGV FROM "Empty_56" GROUP BY time(1h) END

@nbcallah -- <IP_ADDRESS> is out, which has a large number of bug fixes relative to <IP_ADDRESS>. I strongly suggest you upgrade, and see if your issue is fixed.

@nbcallah does the query work when run as a normal query? E.g.
SELECT TOP(val, 25) AS val FROM "Empty_56" GROUP BY time(1h)

Yes, the query works, but the "AS val" clause seems to not work when I query it (I limited the query by time so I'm not pulling through too much data unnecessarily).
> SELECT TOP(val, 25) AS val FROM "Empty_56" WHERE time > now() - 3h GROUP BY time(1h)
name: Empty_56
--------------
time                    top
2015-12-01T10:00:00Z    1.612
2015-12-01T10:00:00Z    1.612
2015-12-01T10:00:00Z    1.612
2015-12-01T10:00:00Z    1.612
2015-12-01T10:00:00Z    1.612
2015-12-01T10:00:00Z    1.612
2015-12-01T10:00:00Z    1.3
2015-12-01T10:00:00Z    1.3
...

I will try and upgrade and see if that fixes it.

@nbcallah I verified and opened https://github.com/influxdb/influxdb/issues/4949 for the AS issue.
So the query works when run manually but panics when installed as a CQ. We should clean up the AS issue first, since that might be causing the issue, if parts of the parser respect it but other parts do not. (E.g. the CQ might be expecting a val column but getting back a top column, and then panicking.)

I think this has been fixed with the query engine refactor that went into 0.11 and is also in the latest version. I'm going to close this because I think it's been fixed, but please reopen if this bug still exists on the latest version.
Thanks!


log level from config.toml not taken into account

The log level defined in the config.toml is not taken into account any more. The default log level is now always "error", no matter the definition in the config.toml (even with --config defined correctly).

Please check level in [log] area.
[log]
"trace"
"debug"
"info"
"warn"
"error"
"fatal"
"panic"
level = "info"

I think I can confirm this works correctly in v2.0.6-beta I use a recipe that looks as follows:
# Add dir
add-dir dir id:
  ./gocfl \
  add {{gocfl_test}} {{dir}} \
  -u "test" \
  -a "ross@gocfl" \
  -m "open preserve format corpus" \
  --object-id 'rs:dir:{{id}}' \
  --log-level DEBUG \
  --ext-NNNN-metafile-source file:///home/ross-spencer/git/ocfl/gocfl/gocfl/info-json/info.json

Changing the --log-level to DEBUG outputs debug messages as I'd like. It is case-sensitive though but it looks like the app will complain if the case doesn't match.


Contacts

Support use of Contacts framework for iOS 9.

OS X 10.11 also has the Contacts framework now, and parity would be nice ;)

Hi @tkrajacic - it's in progress, should merge into development branch tonight/tomorrow. And release 2.2 early next week.
At the moment, I'm not unifying any of the AddressBook / Contacts operations. Partly to avoid premature optimization, and because they have some subtle (and not so subtle) differences. So if you want to support multiple versions, then you will need to use #available to create different operations.

This issue PR is going to become too big/unweildly, so this first issue creates the types and basics. There will need to be additional tickets to add proper test coverage to the operations, which should be possibly, as they're generic over the contact store type.
For application usage though, there are proper type aliases which hide this implementation detail - thanks Swift 2.0!


Intermittent crash when wearing / unwearing -- cannot bind impl key to path

Under certain circumstances our app is failing to bind and something is going wrong -- we're trying to get a new tracked app or something?
To reproduce -- join world with two players and wear/unear weapon repeatedly

Got this error when tried to reproduce it

After adding some checks to avoid looping the appsArray if not an iterable, got this error (both errors crashed the server

)


Error "No dns provider config specified for domain" does not point to the actual failure

/kind bug
After struggling with this error for hours I hope that I am just missing a simple config failure that I can't spot. The certificate and cluster issuer deployment files were created based on the descriptions in the user guide.
What happened:
The cert-manager pod throws errors in the logfile which do not help to find or fix the cause.
In my point of view the actual error is this, but I could be totally wrong here:

no dns provider config specified for domain 'nginx.anonymized.domain.name'

I0330 19:35:38.241367       1 controller.go:187] certificates controller: syncing item 'default/nginx-anonymized-domain-name'
I0330 19:35:38.241561       1 sync.go:107] Error checking existing TLS certificate: secret "tls-nginx-anonymized-domain-name" not found
I0330 19:35:38.241637       1 sync.go:238] Preparing certificate with issuer
I0330 19:35:38.242722       1 prepare.go:239] Compare "" with "https://acme-staging.api.letsencrypt.org/acme/reg/xxxxxx"
E0330 19:35:38.750828       1 prepare.go:167] Error cleaning up solver: no dns provider config specified for domain 'nginx.anonymized.domain.name'
I0330 19:35:38.750872       1 helpers.go:165] Setting lastTransitionTime for Certificate "nginx-anonymized-domain-name" condition "Ready" to 2018-03-30 19:35:38.750865314 +0000 UTC m=+3096.108969269
I0330 19:35:38.750897       1 sync.go:242] Error preparing issuer for certificate: error presenting acme authorization for domain "nginx.anonymized.domain.name": no dns provider config specified for domain 'nginx.anonymized.domain.name'
E0330 19:35:38.775699       1 sync.go:190] [default/nginx-anonymized-domain-name] Error getting certificate 'tls-nginx-anonymized-domain-name': secret "tls-nginx-anonymized-domain-name" not found
E0330 19:35:38.775870       1 controller.go:196] certificates controller: Re-queuing item "default/nginx-anonymized-domain-name" due to error processing: error presenting acme authorization for domain "nginx.anonymized.domain.name": no dns provider config specified for domain 'nginx.anonymized.domain.name'
I0330 19:35:38.777485       1 controller.go:187] certificates controller: syncing item 'default/nginx-anonymized-domain-name'
[...]

The description of the requested certificate shows:
Name:         nginx-anonymized-domain-name
Namespace:    default
Labels:       <none>
Annotations:  kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"certmanager.k8s.io/v1alpha1","kind":"Certificate","metadata":{"annotations":{},"name":"nginx-anonymized-domain-name","namespace":"d...
API Version:  certmanager.k8s.io/v1alpha1
Kind:         Certificate
Metadata:
  Cluster Name:
  Creation Timestamp:  2018-03-30T19:35:38Z
  Generation:          0
  Initializers:        <nil>
  Resource Version:    2942972
  Self Link:           /apis/certmanager.k8s.io/v1alpha1/namespaces/default/certificates/nginx-anonymized-domain-name
  UID:                 8623e352-3451-11e8-b9c8-0a58ac1f1cc5
Spec:
  Acme:
    Config:
      Dns 01:
        Provider:  azuredns
      Domains:
        nginx.anonymized.domain.name
  Common Name:  nginx.anonymized.domain.name
  Dns Names:
    nginx.anonymized.domain.name
  Issuer Ref:
    Kind:       ClusterIssuer
    Name:       letsencrypt-staging-cluster-issuer
  Secret Name:  tls-nginx-anonymized-domain-name
Status:
  Acme:
    Authorizations:  <nil>
  Conditions:
    Last Transition Time:  2018-03-30T19:35:38Z
    Message:               Error checking ACME domain validation: error presenting acme authorization for domain "nginx.anonymized.domain.name": no dns provider config specified for domain 'nginx.anonymized.domain.name'
    Reason:                ErrCheckAuthorization
    Status:                False
    Type:                  Ready
Events:
  Type     Reason                   Age                From                     Message
  ----     ------                   ----               ----                     -------
  Normal   PrepareCertificate       15m (x6 over 15m)  cert-manager-controller  Preparing certificate with issuer
  Normal   PresentChallenge         15m (x6 over 15m)  cert-manager-controller  Presenting dns-01 challenge for domain nginx.anonymized.domain.name
  Warning  ErrorPrepareCertificate  15m (x6 over 15m)  cert-manager-controller  Error preparing issuer for certificate: error presenting acme authorization for domain "nginx.anonymized.domain.name": no dns provider config specified for domain 'nginx.anonymized.domain.name'
  Warning  ErrorCheckCertificate    4m (x18 over 15m)  cert-manager-controller  Error checking existing TLS certificate: secret "tls-nginx-anonymized-domain-name" not found

What you expected to happen:
I expected to receive the issued certificate or at least an error that somehow tells me what went wrong / is wrong with my yml files.
How to reproduce it (as minimally and precisely as possible):

cert-manager installed via helm

chart version 0.2.4
no ingressShim

Azure service principal created with contribution rights to the DNS group, the access tokens are placed into the variables of the script below.
Secret created with kubectl create secret generic azure-cert-manager-ad-principal-client-secret --from-literal=client-secret={{ azure_cert_manager_client_secret }}"

apiVersion: certmanager.k8s.io/v1alpha1
kind: ClusterIssuer
metadata:
  name: letsencrypt-staging-cluster-issuer
spec:
  acme:
    server: https://acme-staging.api.letsencrypt.org/directory
    # For production change to this URL:
    # server: https://acme-v01.api.letsencrypt.org/directory
    email<EMAIL_ADDRESS>    privateKeySecretRef:
      name: letsencrypt-staging
    dns01:
      # Here we define a list of DNS-01 providers that can solve DNS challenges
      providers:
      - name: azuredns
        azuredns:
          # Service principal clientId (also called appId)
          clientID: "{{ azure_cert_manager_client_id }}"
          # A secretKeyRef to a service principal ClientSecret (password)
          clientSecretSecretRef:
            name: azure-cert-manager-ad-principal-client-secret
            key: client-secret
          # Azure subscription Id
          subscriptionID: "{{ azure_cert_manager_subscription_id }}"
          # Azure AD tenant Id
          tenantID: "{{ azure_cert_manager_tenant_id }}"
          # ResourceGroup name where dns zone is provisioned
          resourceGroupName: "{{ azure_cert_manager_resource_group }}"
          # Name of the hosted zone, if ommited it will be computed from domain provided during certificate creation
          # hosted zone name is always part of domain name from certificate request
          hostedZoneName: "{{ fqdn }}"

apiVersion: certmanager.k8s.io/v1alpha1
kind: Certificate
metadata:
  name: nginx-anonymized-domain-name
spec:
  secretName: tls-nginx-anonymized-domain-name
  issuerRef:
    kind: ClusterIssuer
    name: letsencrypt-staging-cluster-issuer
  commonName: nginx.anonymized.domain.name
  dnsNames:
    - nginx.anonymized.domain.name
  acme:
    config:
    - dns01:
        provider: azuredns
      domains:
      - nginx.anonymized.domain.name

Anything else we need to know?:

The domain is online and can be accessed in the browser
Kubernetes is running on Azure AKS

Environment:

Kubernetes version (use kubectl version):

Client Version: version.Info{Major:"1", Minor:"9", GitVersion:"v1.9.2", GitCommit:"5fa2db2bd46ac79e5e00a4e6ed24191080aa463b", GitTreeState:"clean", BuildDate:"2018-01-18T21:11:08Z", GoVersion:"go1.9.2", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"8", GitVersion:"v1.8.7", GitCommit:"b30876a5539f09684ff9fde266fda10b37738c9c", GitTreeState:"clean", BuildDate:"2018-01-16T21:52:38Z", GoVersion:"go1.8.3", Compiler:"gc", Platform:"linux/amd64"}

Cloud provider or hardware configuration**: Azure, AzureDNS
Install tools: Ansible, Helm

I am closing this issue since the AzureDNS feature was merged into master in February, but the latest release 0.2.3 was made before this merge. Sorry.

Thanks! Used your example on cert-manager 3.0.0 due to lack of documentation on azuredns provider. Only difference is that I had to create azure-cert-manager-ad-principal-client-secret in kube-system namespace as I was getting error getting azuredns client secret: secret "" not found


iterate server_name when rewrite_www_to_non_www is used

Was not working when server_name was an array
with
server_name            => [ 'a.example.com', 'b.example.org' ],
rewrite_www_to_non_www => true,

Before patch:
server {
  [...]
  server_name www.a.example.com;
  return 301 http://a.example.com$request_uri;
}
[...]
server {
  [...]
  servername a.example.com
  [...]
}

now:
server {
  [...]
  server_name www.a.example.com;
  return 301 http://a.example.com$request_uri;
}
server {
  [...]
  server_name www.b.example.org;
  return 301 http://b.example.org$request_uri;
}

[...]
server {
  [...]
  servername a.example.com b.example.org
  [...]
}

Was it intended to show only the first server of the list?  The comment in the tests suggest it is intended, but I don't understand the reason...
in the spec file:
should set the server_name of the rewrite server stanza to the first server_name with 'www.' stripped"
I don't seem to be the only one to detect this bug though: #381
@kalmanolah beeing the one who submit PR #310 do you see something bad about my PR?

@kronos-pbrideau The PR looks alright to me. How I missed/ignored the fact that only the first server name was being handled is still a mystery to me. Thanks for the fix :+1:

@kalmanolah thanks for reviewing!


Why does rabbit-ha and rabbit use different images?

This is really just a question.
Why does the rabbitmq-ha chart use the official rabbitmq image but the rabbitmq chart use the bitnami version?
It would seem to me that we'd want both using the official version since it is well maintained by the creators of the project.
https://github.com/helm/charts/blob/master/stable/rabbitmq-ha/values.yaml#L298
  repository: rabbitmq
https://github.com/helm/charts/blob/master/stable/rabbitmq/values.yaml#L16
  repository: bitnami/rabbitmq

Hi @wjdavis5
Bitnami is one of the core maintainers of this chart repository and there are several charts maintained by its team.
These charts use Bitnami images and they're compatible with other images. For instance, you can switch to use any other RabbitMQ image on this chart by setting the image.repository and image.tag parameters.
Bitnami images are secure, well maintained, and up-to-date (more info at https://github.com/bitnami/bitnami-docker-rabbitmq/#why-use-bitnami-images).

I'm not questioning whether or not Bitnami is ok, just more curious about the lack of consistency between the two, seemingly related, charts.

Hi @wjdavis5
The main reason is that different teams/developers are maintaining these charts. These teams decided to use different images on their charts (I don't think there's any other reason).
With this chart repository disappearing in a few months (we're moving to distributed repositories), I don't think it's worth to standardise the images used on the charts on the repo.


build: Optional read blacklists from env vars

So we can set them in Netlify console.

With the current approach we can track based on the comments why a certain issue has been blacklisted. In some cases it's intended by the theme creator, in others the theme is just broken.


Check for some possible flags set when user has KR

I'd like some extra eyes on this -- thoughts welcomed, too.

what's the plan here if we do find a flag? I don't want to dive into this as other, not-so-great peeps may then copy us to improve their shady KR scripts. (That's my only concern here). I feel like MH already has a problem with this area, and i don't want to make it worse.

Judging by tehhowch's comments, it looks like this check is intended to prevent an additional request from being sent out, which we know will fail if the user has a KR.
I'm not 100% sure what request is being referred to though - is it the one to Jack's server?

We query the user object before the hunt by catching the hunt request before it gets sent and delaying it until we receive the user object back.
This PR adds a conditional check before invoking the original hunt request, and if the hunt request cannot be successful, avoids sending it.
As far as "we shouldn't do this because then bad actors might figure out how to do it too," I don't see that as a valid excuse--it's a trivial check to derive. Also, the extension already lets the user know when they have a KR--this is just a change that will let the extension know a little earlier in the process than it currently does.

I haven't tested the behavior in this PR, so testing feedback would be helpful before we merge it (hence my code comment)

it's all a sum of trivial derivations. Just like any lock can be picked, and safe can be cracked, etc. It's just a matter of how much motivation the user has. I'm ok with this, just saying we shouldn't take down any extra obstacles (however small they might seem) for the not-so-good intention-ed people. (just my opinion for the future of this project, i think you guys are on the same page)


Online page to run MultiQC in the browser

Uses WebAssembly, via Pyodide. Try it out at /run/
Current limitations, maybe these can be overcome:

[ ] Can only mount a single directory, once
[ ] Can't mount files, only directories
[ ] File listing in the browser is a bit basic, could do an interactive tree UI etc.

And the big one:

[ ] Rewrite to use Pyodide web workers running on separate threads, instead of locking up the main browser thread.

Seems to work, though!

Hmm, not sure why it's not working in the deployment preview 😞  It works locally for me.

Merging, will create an issue for future work.


Change the DMCA'd repository url

The origin repository got DMCA'd.

I would like to express my sincere gratitude for your astute observation regarding the status change of the DMCA'd repository and for your valuable suggestion that my repository requires certain modifications. It is with a respectful tone that I must convey my decision to update the link in the Pull Request to my own clone rather than utilizing yours. This decision is predicated on the following considerations:

The alternative I am proposing is guaranteed to remain unaffected by DMCA takedowns. Given your past experiences, I am concerned that your clone on GitHub might face a similar risk of becoming inaccessible.

Please accept my heartfelt apologies for not being able to merge your Pull Request. I truly appreciate the time and effort you have invested in this matter. Your contributions are highly valued, and I eagerly anticipate your continued involvement. Thank you once again for your understanding and support.


L.Control.Layer throws error if  inside layer label

Small non-critical bug on an edge case, courtesy of @tomchadwin from a gis.stackexchange question.
If a L.Control.Layers has an <input> inside the label for a layer, like...
    var layersControl = L.control.layers({
      "<input id='positron-slider' type='range' min='0' max='1' step='0.1'></input> Positron": positron,
      "<input id='darkmatter-slider' type='range' min='0' max='1' step='0.1'></input> Dark Matter": darkmatter,
    }).addTo(map);

(Full playground at https://playground-leaflet.rhcloud.com/wipo/edit?html,output )
Then the logic inside the _checkDisabledLayers and _onInputClick will try to iterate through that input as well, and throw an error during the process.
The problem lies with the way that the code iterates through the checkboxes and radiobuttons. There is an in-depth explanation in the gis.stackexchange link above:
		var inputs = this._form.getElementsByTagName('input'),

The idea is to replace that getElementsByTagName() query with a new private property like this._inputs. That should be a plain array, populated in the _addItem private method, with something like this._inputs.push(input);. Care should be taken when calling removeLayer.
This sounds fairly easy and non-critical, so I'm going to let this up for grabs (ping @yourfirstpr ). Anybody wanting to work on this should:

Say something in the issue comments
Fork the repo
Clone the fork
Copy-paste some file from the debug/test directory, and put the code from my playground in there. That's the easiest way to debug this.
Make the necessary modifications to /src/control/Control.Layers.js
Test, test, test
For bonus points, add a unit test to /spec/suites/Control.LayersSpec
Commit the changes and push to your fork
Create a pull request

@serdarkacka @tomchadwin Anybody wants to take this one? Should be easy enough.

I'll take a look, but I'm not confident to be able to fix it myself, so by all means others can have a look as well.

Is your _inputs he best approach, or can an additional check be made to retrieve only <input>s which have a layerId property? I presume that your approach will perform better even than the current method because of removing getElementsByTagName()?

I think that an this._inputs approach should be better. There's no reason to query the DOM if we know when each <input> is being created and destroyed.
If removing an input is very tricky (it should be just a call to this._inputs.splice()), then try the alternate method of checking for the property.

First attempt failed:
https://github.com/tomchadwin/Leaflet/commit/06a75177bc83d61b5e8111821481999a0c54f5bb
I don't think I know enough to get this done, but if I'm on the right track, great.

I'll take a look too.

@tomchadwin I have been trying to fix this bug and I've looked into your solution and I think it is correct. The solution I found was to change the playgroud @IvanSanchez provided.
I have made two changes and I think it worked:

switched from "L.DomEvent" to "L.DomEvent.on" (lines 38 and 42)
switched from "ev.value" to "ev.target.value" (lines 39 and 43)

Is this solution acceptable?

Hello,
is this issue still open? Can I have a look at it too?

@despoinakaz to my knowledge, no one has submitted a fix for this, so feel free to give it a spin.

@despoinakaz If you can make something of what @Caramelo18 says above, that would be a start. Any thoughts, @IvanSanchez?

@tomchadwin I made the same changes with you in Control.Layers.js and by altering the playground example,  I can now change the opacity of the layers.

@despoinakaz I just couldn't understand the changes you said you made to the playground. Didn't know which files you altered.

@tomchadwin I made the changes that @Caramelo18 had proposed.

Hello. I assume that this issue is still open.
[Here is a commit addressing it]https://github.com/iZucken/Leaflet/commit/04aa6b5aae4c2b12db75cf660a77268b9d4bce3c)
It works in "playground", until you want to modify existing control. After that any custom controls will fail.
I also had a difficult time figuring out a good test for it. Also, please - do notice commit's description.

I am new to open source, but have multiple years of professional experience.  Love this project, it's towards the end but would love to contribute.

Newbie here looking to take a crack at Open Source with this issue. Have never used leaflet before so I'll pick at the documentation before I dig in to the fix. I see that the issue is almost over a year old so don't know how issue resolution works 0.o

The issue is open?
Can I try to fix it?

Sorry, we missed closing this. It was fixed by #5544 that has been merged, so this should work in the newly released 1.1.0 version.


Resizable panel cannot be fully closed

I have other extensions etc, so wondering if you are able to reproduce it!
Also just to mention it, the resizing handle is a bit awkwardly placed.  Everybody expects it to be the top bar?
I even thought it worked like that, because I was getting a highlight on hover... which was actually a commit in the list that you can click.

Btw, sorry for not following up with https://github.com/phil294/GitLG/issues/86 I just have an infinite backlog of stuff... Now I will leave the extension enabled for a while and see how it behaves :)

The handle looks like that because it's reused for when the detail view is at the bottom, so I had just set it to resize: both. It was just the quickest way to do it, proper resizing logic for the entire width/height would be good and yes the bug you described is also suboptimal.

Thank you for all this input, it's super valuable!


request for docs updating for cluster join process

Currently, I followed quick start of registration to register a cluster, and the cluster registered succeeded, but I found the docs of cluster join process is outdated. For example:

[ ] clusterrolebinding's name is not correct, I did not find any clusterrolebing named system:open-cluster-management:clusterName:agentName in my cluster, I think it should be open-cluster-management:managedcluster:clusterName(https://github.com/open-cluster-management-io/registration/pull/55 gave me some clue)

hub-controller creates a clusterrolebinding on the hub with the identity of system:open-cluster-management:clusterName:agentName

The cluster join process doc is very important for newcomers to understand the whole cluster registration process, very nice if it could be updated(very pleased to try to do it by myself when I figure out the whole process). Thanks a lot.

@zhujian7 would you like to update it :) we can discuss a bit on this

@zhujian7 would you like to update it :) we can discuss a bit on this

Of course, I’d like to.


I suggest moving /exampleSite to the root

This relates to #1 -- this  template works if you run it from /exampleSite, but since this is a template project, I suggest you drop that  setup (which isn't clear when you read the README) and make the root folder runnable.

Hey @bep, Thank you for your suggestion. I am also planning something, so users can simply run it. But I didn't find any perfect solution yet that helps me keep the exampleSite as well as run from root. So I made a script that helps to remove the exampleSite using a simple command npm run project-setup (which I didn't talk about in the readme file).
I got the point. I can properly drop the exampleSite, Or I need to explain about my project-setup script. Thank you again.


Outdated method

hello
{% load static %} Django documents use this method.
{% load staticfiles %} This method is obsolete.
https://django.readthedocs.io/en/stable/howto/static-files/
https://docs.djangoproject.com/en/3.1/howto/static-files/
Unfortunately, this method does not work in newer versions of Django and causes errors.
The error is as follows:
TemplateSyntaxError at /
'staticfiles' is not a registered tag library

@HSNHK : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Hi @HSNHK - Thanks for submitting a PR. Right now the tutorials are tied to the templates and the templates are using an earlier version of Django. We'll take this into account though when we next refresh the Django content.


Sample listing failed site designs. Solves #2539

Sample listing failed site designs. Solves #2539

Updated to be aligned with our other samples and provide process status! Great catch!

Merged manually. Thank you! 👏


proposal: net/http: Allow configurable max connection age

Currently, the http.Transport implementation will reuse an HTTP connection if keepalives are enabled and the connection has not been in an idle state for too long.
This means that for high throughput connections that are always active and rarely/never exceed the IdleConnTimeout limit, the connection will keep getting reused (as long as it is not broken).
This poses a problem in terms of service discovery and client-side load balancing - since address resolution only happens in the dialer's DialContext, this leaves no chance for the client to re-resolve the target address since the same connection is constantly reused without ever "re-dialing".
I propose to add a MaxConnectionAge flag to http.Transport that would limit the lifetime of a persistent connection, and would not reuse it beyond this lifetime.
This would be in line with the behavior of go-grpc which also enforces a MaxConnectionAge limit.

cc @bradfitz @neild

Similar to https://github.com/golang/go/issues/23427 which offers a work around (hack). However re-resolving DNS and reusing connection issues have been apparent for many years.

Maybe the TTL based DNS resolution could be a solution https://github.com/golang/go/issues/23427#issuecomment-700281737.
https://github.com/golang/go/issues/23427#issuecomment-704524878 summarized 3 possible solutions.
I am pretty sure that in practice you never max out the number of connections, so you always have idle conns that will be closed in a "hack" as I showed in https://github.com/golang/go/issues/23427. We run this in a high traffic scenario since some years without an issue that we could observe (does not mean that it does not exist in practice).

I have a different issue that would be resolved by the same configuration.  For reasons outside my control, I have a firewall that kills TCP connections after 15 minutes regardless of their activity.  As mentioned above MaxConnectionAge solves this server-side in gRPC.
Having a similar configuration would be an easy client-side fix for me in HTTP, but I'll readily admit this problem is not likely common enough to warrant a change to net/http.

Note, I believe I have a working implementation proposal at https://github.com/golang/go/pull/46714 and it may be reusable for addressing https://github.com/golang/go/issues/23427

Also, sorry for the potentially dupe proposal. I believe the maintainers were not interested in reviewing my PR without a proposal of my own for my specific implementation.
https://github.com/golang/go/issues/54429

Any updates?


Load model once and use to translate multiple queries

How to keep sockeye trained model in memory and reuse it ? I don't want to reload the model in memory for each sentence that I enter through a user interface. Reloading model each time increases response time for each input sentence.

What is your use case? sockeye.translate waits to read from STDIN, which is exactly what you want. You could also write a server around that.

Adding to what @mjpost said already: You could write your own code that loads models (for instance via inference.load_models) and creates an inference.Translator instance - both can be kept alive as long as needed.

Closing this for now due to inactivity, feel free to reopen if you have more questions.


how to convert to .mlmodel file

I'd like to convert to hdf5 model to IOS .mlmodel ,seems that it work, but the result given from the .mlmodel is not correct, I suspect it's the resson I didn't get preprocessing parameter right,so can somebody give some advice what parameter should I give to the call:
apple_model = coremltools.converters.keras.convert(nima.nima_model,input_names=['image'],image_input_names='image')

Hi, did you preprocess the images with nima.preprocessing_function() before using your apple_model for predictions?

I was trying to convert the weights_mobilenet_technical_0.11.hdf5 file from package, I'm not very sure whether nima.preprocessing_function() has been called (it seems so to me)，when converting, I just load the model with code like this:
nima = Nima('MobileNet', weights=None)
nima.build()
nima.nima_model.load_weights('./technical.hdf5')
and no further process

when I use thr mlmodel in IOS project, I don't know what the nima.preprocessing_function() has done to the image, is there any suggestion how I can process the image?

You need to apply Imagenet transformations in tf mode https://github.com/keras-team/keras-applications/blob/dda499735da01ab6c6f029b37dbdf35cc82db136/keras_applications/imagenet_utils.py#L21
Not sure how best to apply them in your iOS project but pretty sure this can be done in Swift


Getting NULL in message->text

Could you please check, I get 'NULL' in message text:
`$messages = $bot->getMessagesReceived();
        if (count($messages) > 0)

            foreach ($messages as $message) {

                $item = $message->messaging[0];
                $sender = $item->sender->id;

                if (isset($item->message)) {

                    $text = $item->message->text;
                    $response = $this->processTheText($text);`

Do you have request for that? If it is POSTBACK then is text null.

No, it's not a postback, I'm checked it. The request is:
[2016-04-19 09:08:46] FB-Messenger-Bot-Logger.INFO: NEW REQUEST  ["{\"object\":\"page\",\"entry\":[{\"id\":830113327037526,\"time\":1461071136095,\"messaging\":[{\"sender\":{\"id\":818329708271522},\"recipient\":{\"id\":830113327037526},\"timestamp\":1461071136064,\"message\":{\"mid\":\"mid.1461071136056:a2a61d0c01286f4545\",\"seq\":249,\"text\":\"test\"}}]}]}",[]] []

Postbacks works fine, btw

It should work now.

I definitely have to write some tests.

Yes, works, thank you


Rendering issue

👋
Playing with stimulus_reflex on our production app, and there is an issue I've encountered.
Our app is classic SAAS app. We store different accounts in the same database. We don't scope per subdomain, but we scope with url, for example : app.demo/{:account_slug}/.
Account extraction happens inside the AccountSlug middleware which looks like this:
module AccountSlug
  PATTERN = /(\d{1,})/
  FORMAT = '%07d'

  def self.decode(slug) slug.to_i end
  def self.encode(id) FORMAT % id end

  # We're using account id prefixes in the URL path. Rather than namespace
  # all our routes, we're "mounting" the Rails app at this URL prefix.
  #
  # The Extractor middleware yanks the prefix off PATH_INFO, moves it to
  # SCRIPT_NAME, and drops the account id in env['docsnote.account.id'].
  #
  # Rails routes on PATH_INFO and builds URLs that respect SCRIPT_NAME,
  # so the main app is none the wiser. We look up the current account using
  # env['docsnote.account.id'] instead of request.subdomains.first
  class Extractor
    PATH_INFO_MATCH = /\A(\/#{AccountSlug::PATTERN})/

    def initialize(app)
      @app = app
    end

    def call(env)
      request = ActionDispatch::Request.new(env)

      # $1, $2, $' == script_name, slug, path_info
      if request.path_info =~ PATH_INFO_MATCH
        request.script_name   = $1
        request.path_info     = $'.empty? ? '/' : $'

        # Stash the account's ID.
        env['docsnote.account.id'] = AccountSlug.decode($2)
      end

      @app.call env
    end
  end
end

# frozen_string_literal: true

module SetAccount
  extend ActiveSupport::Concern
  included do
    before_action do
      Current.account = Account.find request.env["docsnote.account.id"] if request.env["docsnote.account.id"]
    end
  end
end

# frozen_string_literal: true

class ApplicationController < ActionController::Base
  include SetAccount
  ...
end

Inside the reflex everything works fine, except page morphing, when you try to re-render current page this line throws an error

(Which is understandable since localhost:3000/1/ doesn't exist it needs AccountSlug middleware to work properly )

Ugh! I'm sorry you're dealing with this. It doesn't have a quick solution, as you're likely already aware, if you want to keep using page morphs.
Usually when URL changing comes up, it's because people fundamentally don't understand what SR is for and/or trying to do. That's clearly not what this is about.
Your best course of action here - if it hopefully works for you - is probably to use morph "body", ApplicationController.render() but it's not ideal because you won't have access to your controller actions.
It's (far) beyond the scope of SR to re-implement Rack but I wonder if we could look into providing an initializer that accepts a lambda; you could do a Regex replacement, perhaps?

Hi Dino, I wanted to check in and see if you figured this out.
Since we last discussed the issue, we've been able to add support for the acts_as_tenant gem: https://docs.stimulusreflex.com/authentication#multi-tenant-applications
When I look at the implementation I did for the tenant demo (tenant branch of https://github.com/leastbad/stimulus_reflex_harness/tree/tenant) it seems remarkably similar to your Current.account implementation. Of course, you'll still have to adapt it but check out https://github.com/leastbad/stimulus_reflex_harness/blob/tenant/app/channels/application_cable/connection.rb and tell me what you think.

@leastbad I'm so sorry for not getting back to you. Didn't have time to investigate this further, but I will! I will check your links and get back if I have anything  add.
One more time sorry :)

Happy to reopen if you ever want to revisit, @dixpac!

Ran into this with Jumpstart Pro as well. I was testing previously without the middleware, but since StimulusReflex isn't aware of the middleware, it won't set the SCRIPT_NAME properly when processing requests.
In Rails, the middleware rewrites localhost:3000/1/projects to localhost:3000/projects with request.script_name = "/1" This way Rails never sees the /1.
StimulusReflex doesn't run the middleware, so it tries to look up localhost:3000/1/projects which is not a route in Rails.
A potential solution is mounting ActionCable at /1/cable so that we could store the script name and pass it along during SR requests. Rails does seem to store the original request for the websocket which we can probably access the script_name from. https://github.com/rails/rails/blob/6-1-stable/actioncable/lib/action_cable/connection/base.rb#L150-L156
I noticed SR is forcing Rack::SCRIPT_NAME => "", so I think that would be the only piece we'd need to change if we can access the original script_name for the ActionCable request.
Trying to see if I can get that to work.

Related: https://github.com/rails/rails/issues/34023

@excid3 just so I'm on the same page, is the 1 in this the id of the Project or is this something to do with how acts_as_tenant works? I don't understand how localhost:3000/projects/1 becomes localhost:3000/1/projects

It's the tenant id. So /1/projects/2 would be tenant #1, project #2 for example.
Rails never sees the /1 as it's stripped using script_name in the middleware.
In theory, that should be accessible in the actioncable connection if we mounted at /1/cable

It's not promising when an issue opened by a Basecamp employee hasn't been closed in two years. That does sound like the exact same issue.
So, config.action_cable.mount_path gets set in the environment. How would you overwrite it on a per-tenant basis? Something tells me that you can't just pass in a proc.

ActionCable isn't an isolated namespace so I don't think it applies.

And you just set the meta tag to change the actioncable url.

Duh, right - of course. The mount path is just getting printed into the view.
Well, you might want to obfuscate the tenant id but it sounds like a viable solution.

Not real sure why script name is empty inside the actioncable connection. It should pass through the middleware same as the other requests.

It might be worth pinging @georgeclaghorn oh wait I just did

@leastbad would you reopen this?


Get AAD token using Client Certificate

Kubelogin today supports getting AAD token using client id and client secret. The request here is to get AAD access token using client ID and certificate.
can support this adal api: adal.NewServicePrincipalTokenFromCertificate

You can try to make the PR. I can help you through the change.
I'd recommend overload the -p option like az login --service-principal -u http://azure-cli-2016-08-05-14-31-15 -p ~/mycertfile.pem --tenant contoso.onmicrosoft.com does and check if -p is a pem file or not.

@weinong i will work on it.. isn't it pfx file?

pfx and pem are just containers. in k8s and the rest of cloud native community, using pem is most common

az login -h

    --password -p            : Credentials like user password, or for a service principal, provide
                               client secret or a pem file with key and public certificate. Will
                               prompt if not given.

@weinong let me do similar to this .. is that fine? ihttps://github.com/ccojocar/adal/blob/5ff7a14d7c425e59a5b6019829423861ff47f26e/README.md#client-certificate

yep. i can give you pointer to recognize pkcs12 or pem

im testing decoding pkscs12 and it looks like Deocde function of pkcs12 package (link supports only if pfx has one cert and one key but cert generated by integrated authority in az key vault has more than 1 cert. So i wrote a modified decode function to retrieve required cert and key from pfx file and it worked. Looks like other ppl also hit this issue: https://github.com/Azure/azure-sdk-for-go/issues/5412
code sample:
func decodePkcs12(pkcs []byte, password string) (*x509.Certificate, *rsa.PrivateKey, error) {
        blocks, err:= pkcs12.ToPEM(pkcs,password)
        if err != nil {
                return nil, nil, err
        }

        var (
           cert *x509.Certificate
           priv *rsa.PrivateKey
       )

       for _, block := range blocks {
          if block.Type == "CERTIFICATE" {
            if _, ok := block.Headers["localKeyId"]; ok {
              cert, err = x509.ParseCertificate(block.Bytes)
              if err !=  nil {
                  fmt.Printf("Error parsing certificate from pem block:%v\n", err)
                  continue
              }
            }
          } else if block.Type == "PRIVATE KEY" {
              priv, err = x509.ParsePKCS1PrivateKey(block.Bytes)
              if err != nil {
                fmt.Printf("Error parsing private key from pem block: %v\n",err)
              }
            }
        }

    return cert, priv, nil
}


Updated sidenav icons

Issue

Link:
Summary:

How

Screenshots

References

Checklist

[ ] Tests added
[ ] Cleaned up commit history (rebase!)
[ ] Documentation added
[ ] Thought about variable and method names

On hold as bug discovered


[Feature]

Description
I would like to add social media icons footer in footer section. So that user directly follow on it.
Screenshots
I would like to add something like that.

Checklist

[X] I have checked the existing issues.
[X] I follow Contributing Guidelines of this project.
[ ] I am a IWOC'24 contributor.
[ ] I am a JWOC'24 contributor.
[X] I am a SWOC'24 contributor.

Code of Conduct

[X] I agree to follow this project's "Code of Conduct".

Social icons is already present in the footer. Pls work on good issues and don't open too many issues at once @mansi1309


chore: reduce deps + update some packages

Reduce size of webpack, we don't need loader-utils, because we don't use it

What kind of change does this PR introduce?
Chore
Did you add tests for your changes?
No need
Does this PR introduce a breaking change?
No
What needs to be documented once your changes are merged?
No

Thanks


Album info

This pull request focuses on adding a button and ui to albums to display some album info.

Added a button in albums to go to the info screen
Added a ui to display the info for albums

The layout is as follows:
The button in the album:

The ui for the info:

Let me know if the layout is alright. Thanks :D

Hi! Thanks for being so invested in the project!! :)
For large UI changes or additions though, I'd rather prefer an issue to begin with so that there's room to discuss what to do before you get too much work done!
I think it's a good idea to have a separate screen if we have lots of info to show, although maybe a modal would be better in that case :)
Speaking of infos to display, I feel like some of them are either redundant (album/artist name) or not very relevant to display (markets). Also, I feel like there's room for extra infos on the existing album details screen -- maybe the release date, for instance, or the duration.
I'd keep the label and copyright for starters; release date and duration too, unless we can fit them in the main screen; and album/artist name could be useful, but if we go with a modal I don't think re-contextualization is needed.
Don't apply those changes yet, let's discuss first! :) What do you think?

Thanks for the feedback. I feel like the info would feel incomplete without showing artist and album name. As for markets maybe instead of removing it, hide it under something so if someone would like to see if the album is available for them they can.
I am not to sure what you mean by using a modal instead. I do use a model similar to how other screen are created and managed.
As for putting more info on the album screen, I would like to do that for a few items, but I am not sure how to do so without making it feel cluttered or redundant.

I meant a dialog, sorry! Rough Glade "sketch":

Since a dialog overlaps the current view, it is contextual and we don't need to repeat every bit of information -- although I think I agree with you that it does not hurt to have a reminder of the album/artist here! :)
But I really miss the point of having ID, "is liked", markets, etc on that screen

Thanks for the sketch. I will look at implementing this. This would be simpler then how I implemented it. As for markets, id, and liked, they wont be needed if I implement it like this. Those were just extra info I would have included just for a bit of extra "stuff"

This is sort of what I have come up with. It contains the info in a dialogue modal as a pop up. Let me know what you think

@TotalDarkness-NRF, could you post a screenshot of the default theme with that new modal?

@TotalDarkness-NRF, could you post a screenshot of the default theme with that new modal?
@jacksongoode Not sure what the default theme is but here is for the adwaita theme for light and dark

Yes, thanks! I think it may need a drop shadow on the main modal (perhaps even a border-radius), but it looks good!

Changed it to look more like a window

This looks a bit better already :)
Could you make it modal? I think it might fix some of the remaining visual issues
Also don't use HdyApplicationWindow for a "secondary" window -- HdyWindow should be enough :) and we won't have to have a headerbar too, which I think is unneeded here! Maybe for consistency we could have the same layout as the login dialog? (no "OK" would be needed either, with the close button being there)

Changed it to look more like a window

Beautiful! would it also be possible to add a touch of padding around the info box so the text and top of the album art don't border the edges of the window (as well as the close button)?

Other general remarks, haven't properly dived into the code but:

try not to mix UI models (such as AlbumDescription) with API models; the former should be allowed to evolve to fit our needs, while the latter are direct mappings of what the Spotify API exposes;
the new AlbumInfo is not needed: just add the missing fields to the Album API model, that's what it's here for, and then map these new fields into AlbumDescription

Oh and I forgot but, the + XXms is really too much I think sorry :p
Otherwise good job overall, I see you even handled translation strings I think!

This looks a bit better already :)
Could you make it modal? I think it might fix some of the remaining visual issues
Also don't use HdyApplicationWindow for a "secondary" window -- HdyWindow should be enough :) and we won't have to have a headerbar too, which I think is unneeded here! Maybe for consistency we could have the same layout as the login dialog? (no "OK" would be needed either, with the close button being there)

I beleive I had made it a modal already.
I can look at the way login dialog is made and replicate it for this for consistency

Oh and I forgot but, the + XXms is really too much I think sorry :p

Ah sorry. I had added that for my own interest, forgot to have it removed (it is uneeded)

Added the same layout as the login dialog and added the suggested padding

Oh you're right, my bad, modal is set!
Okay so a few more things related to the modal:

there's an extra viewport that's not needed
you can probably remove the scrolled window/viewport; or if you keep, make sure the height is propagated naturally and not hardcoded with height-request if possible
if you keep the scrolling window, remove the shadow
don't forget to allow wrapping labels (wrap=True, wrap-mode=word-char)
good call to have this clamp!! make sure the whole thing can fit in 360px

Also, the info/help button could use another icon; what do you think of preferences-system-details-symbolic? And the button should be large enough to be a proper circle :)
I toyed a bit with it, here's what I have in mind:

Sorry, I know that's a lot of feedback, but it takes time to get these UI things just right :)

Thanks for the feedback, I will do the best to follow it. The issue I have been having when not hardcoding the width and height is that the window size always becomes the size of the spot application. What should I do to solve this?

New look with the suggested changes. I think it looks a lot better!

Oh you're right my bad, but I think you can leave the height unset! (The width however should definitely be set to something <360 or should allow being resided to that size)

The window width should be roughly the same each time, and the height will change

Neat!
Couple more things from testing:

the top/bottom/start/end margins could be added to the first GtkBox, so the close button has some space around it; maybe this'll allow removing other margins further down

the dialog should be resizable (this will allow mobile DEs to resize it to I believe), might have to tweak a few more things to allow it to shrink below 360px if needed

I'm not too fond of the placement of the new button, especially on narrow screens (but thank you for updating the icon!); what would you think about either moving it below album+artist, or having it overlayed on top of the cover art? (in a corner for instance) maybe it should be flat as well, so that it appears as having a clearly different purpose from the "like" button (as in, not an action, just extra info)

Yes I should try setting the margins to the gtkbox!
If I were to make the box resizable I may need to have the info in a scolled window. If there is something else that could be done please let me know! The width right now is almost always slightly bigger then the player controls, and the height grows.
The buttons may be moved to the corner of the album art because moving it under the album artist text would look more awkward.

If I were to make the box resizable I may need to have the info in a scolled window.

Not necessarily, but you're right, better to be careful :)

The width right now is almost always slightly bigger then the player controls

I tried making the window resizable but I wasn't able to shrink below a certain point :/ I'll take proper time to investigate but maybe one of the labels is not allowed to break?

The buttons may be moved to the corner of the album art because moving it under the album artist text would look more awkward.

:+1: sounds good to me :) I'll think about it too, and will try a couple ideas... maybe centered at the bottom? Idk

I think the issue would have to be the album artist label, as I specified it to be a certain length always to have it be a more consistant width each time. I will have to test some other ways of doing so with a resizable window

I have added the overlay button on the album art. Let me know how it looks and what should be changed
Made the window resizable and scrollable and always start at 250 width.

Almost perfect, great work!!
Couple suggested tweaks (to improve a bit legibility)
diff --git a/src/app/components/details/details.css b/src/app/components/details/details.css
index 9be249a..3300ae2 100644
--- a/src/app/components/details/details.css
+++ b/src/app/components/details/details.css
@@ -38,3 +38,7 @@ list.details__songs {
 list.details__songs row {
   border-radius: 4px;
 }
+
+.info_btn {
+  padding: 0;
+}
\ No newline at end of file
diff --git a/src/app/components/details/details.ui b/src/app/components/details/details.ui
index c0d7c1c..c625863 100644
--- a/src/app/components/details/details.ui
+++ b/src/app/components/details/details.ui
@@ -5,32 +5,34 @@
   <requires lib="libhandy" version="1.0"/>
   <!-- interface-css-provider-path details.css -->
   <object class="GtkButton" id="album_info">
-    <property name="width-request">35</property>
-    <property name="height-request">35</property>
+    <property name="width-request">32</property>
+    <property name="height-request">32</property>
     <property name="visible">True</property>
     <property name="can-focus">False</property>
     <property name="focus-on-click">False</property>
     <property name="receives-default">True</property>
-    <property name="halign">start</property>
-    <property name="valign">start</property>
-    <property name="relief">none</property>
+    <property name="halign">end</property>
+    <property name="valign">end</property>
+    <property name="margin">5</property>
+    <property name="relief">half</property>
     <child>
       <object class="GtkImage">
         <property name="visible">True</property>
         <property name="can-focus">False</property>
         <property name="icon-name">preferences-system-details-symbolic</property>
+        <property name="pixel-size">15</property>
       </object>
     </child>
     <style>
       <class name="circular"/>
+      <class name="osd"/>
+      <class name="info_btn"/>
     </style>
   </object>

I'll take a proper look at the code now thanks! :)

You'll also have to regenerate the potfiles: https://github.com/xou816/spot#regenerating-potfiles

You'll also have to regenerate the potfiles: https://github.com/xou816/spot#regenerating-potfiles

Alright. will do. Also I thought this only applied to when I would change the potfiles

I'll have a proper look/review ASAP, thank you!!!

Thank you!! Looks like we're done :) I'll give it a quick final test to see if nothing broke after all the changes from review but it should be good to merge

Hi,
It looks like there's something wrong with the positioning of the dialog window.
When I open some album's info and try moving the main Spot window by dragging it's titlebar, the dialog window jumps to the right edge of my rightmost monitor.
The interesting thing is that when I hold down Super while moving the main window, everything seems to work just fine.

$ lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.2 LTS
Release:	20.04
Codename:	focal

GNOME 3.36.8
Do you want me to create an issue for this?

Hi! Yes, an issue will be easier to track, thank you! :)


Initial code

The netcost command counts the traffic to the specified CIDRs (-netlist flag). It can be attached to a network interface (-ifindex flag), either in the current network namespace or in a different network namespace specified with the -netns flag.
It uses a BPF program on a raw socket and LPM (longest prefix match) BPF map with the list of CIDRs. It compares the IP addresses from the ingress & egress packets with the entries in the LPM BPF map.
The statistics are printed every second in json.
Example:
sudo docker run --rm --privileged --pid=host --net=host -ti \
    docker.io/kinvolk/netcost:alban-initial-code \
    netcost -netns /proc/1683130/ns/net -ifindex 80 \
    -netlist <IP_ADDRESS>/16,<IP_ADDRESS>/8,<IP_ADDRESS>/8,<IP_ADDRESS>/0,<IP_ADDRESS>/32 -pretty

{
    "timestamp": "2020-08-07T15:43:44Z",
    "networks": {
        "<IP_ADDRESS>/0": {
            "ingressBytes": 0,
            "egressBytes": 0
        },
        "<IP_ADDRESS>/32": {
            "ingressBytes": 0,
            "egressBytes": 222
        },
        "<IP_ADDRESS>/8": {
            "ingressBytes": 0,
            "egressBytes": 0
        },
        "<IP_ADDRESS>/8": {
            "ingressBytes": 0,
            "egressBytes": 0
        },
        "<IP_ADDRESS>/16": {
            "ingressBytes": 0,
            "egressBytes": 0
        }
    }
}

:+1:


Can't download my character's inventory

I've been trying to log in, but I was left with an error message and the app refused to perform a successfull log in.
Here's the content of DebugInfo:
[03-10-2015 21:17] Error reading character data for character '<char_name>', Exception info:
[03-10-2015 21:17] System.Exception: Error reading character data for <char_name>, if you are in offline mode you will need to login and update. Make sure that your account name is entered correctly and with the correct casing. If you received this error while logging in, the authenticated session may have expired or bad data has been returned by GGG or a network issue may have occurred - Please try again.
at POEApi.Model.POEModel.GetInventory(String characterName, Boolean forceRefresh, String accountName)
at Procurement.ViewModel.LoginWindowViewModel.LoadCharacterInventoryItems(Character character, Boolean offline)
at Procurement.ViewModel.LoginWindowViewModel.d__6.MoveNext()
at System.Collections.Generic.List1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
at Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass2.b__1()
at System.Threading.Tasks.Task.Execute()

same thing for me (standard), here is DebugInfo:
look at 03-10-2015 to get a fresh reproduction of the bug
[02-10-2015 20:12] System.NullReferenceException: Object reference not set to an instance of an object.
at POEApi.Model.Map..ctor(Item item)
at POEApi.Model.ItemFactory.Get(Item item)
[02-10-2015 20:12] ItemFactory unable to instanciate type : Volcano Map
[02-10-2015 20:12] Error downloading stash for Standard, exception details: System.Exception: ItemFactory unable to instanciate type : Volcano Map
at POEApi.Model.ItemFactory.Get(Item item)
at System.Linq.Enumerable.WhereSelectListIterator2.MoveNext()    at System.Collections.Generic.List1..ctor(IEnumerable1 collection)    at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)
at POEApi.Model.Stash..ctor(Stash proxy)
at POEApi.Model.POEModel.GetStash(Int32 index, String league, Boolean forceRefresh)
at POEApi.Model.POEModel.getAllTabs(String league, Stash stash)
at POEApi.Model.POEModel.GetStash(String league, String accountName)
[02-10-2015 20:12] System.Exception: Downloading stash for Standard, details logged to DebugInfo.log, please open a ticket at https://github.com/Stickymaddness/Procurement/issues
at POEApi.Model.POEModel.GetStash(String league, String accountName)
at Procurement.ViewModel.LoginWindowViewModel.LoadStashItems(Character character)
at Procurement.ViewModel.LoginWindowViewModel.d__6.MoveNext()
at System.Collections.Generic.List1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)    at Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass2.<Login>b__1()    at System.Threading.Tasks.Task.Execute() [03-10-2015 2:04] System.NullReferenceException: Object reference not set to an instance of an object.    at POEApi.Model.Map..ctor(Item item)    at POEApi.Model.ItemFactory.Get(Item item) [03-10-2015 2:04] ItemFactory unable to instanciate type : Volcano Map [03-10-2015 2:04] Error downloading stash for Standard, exception details: System.Exception: ItemFactory unable to instanciate type : Volcano Map    at POEApi.Model.ItemFactory.Get(Item item)    at System.Linq.Enumerable.WhereSelectListIterator2.MoveNext()
at System.Collections.Generic.List1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)    at POEApi.Model.Stash..ctor(Stash proxy)    at POEApi.Model.POEModel.GetStash(Int32 index, String league, Boolean forceRefresh)    at POEApi.Model.POEModel.getAllTabs(String league, Stash stash)    at POEApi.Model.POEModel.GetStash(String league, String accountName) [03-10-2015 2:04] System.Exception: Downloading stash for Standard, details logged to DebugInfo.log, please open a ticket at https://github.com/Stickymaddness/Procurement/issues    at POEApi.Model.POEModel.GetStash(String league, String accountName)    at Procurement.ViewModel.LoginWindowViewModel.LoadStashItems(Character character)    at Procurement.ViewModel.LoginWindowViewModel.<LoadItems>d__6.MoveNext()    at System.Collections.Generic.List1..ctor(IEnumerable1 collection)    at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)
at Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass2.b__1()
at System.Threading.Tasks.Task.Execute()
[03-10-2015 2:12] System.NullReferenceException: Object reference not set to an instance of an object.
at POEApi.Model.Map..ctor(Item item)
at POEApi.Model.ItemFactory.Get(Item item)
[03-10-2015 2:12] ItemFactory unable to instanciate type : Volcano Map
[03-10-2015 2:12] Error downloading stash for Standard, exception details: System.Exception: ItemFactory unable to instanciate type : Volcano Map
at POEApi.Model.ItemFactory.Get(Item item)
at System.Linq.Enumerable.WhereSelectListIterator2.MoveNext()    at System.Collections.Generic.List1..ctor(IEnumerable1 collection)    at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)
at POEApi.Model.Stash..ctor(Stash proxy)
at POEApi.Model.POEModel.GetStash(Int32 index, String league, Boolean forceRefresh)
at POEApi.Model.POEModel.getAllTabs(String league, Stash stash)
at POEApi.Model.POEModel.GetStash(String league, String accountName)
[03-10-2015 2:12] System.Exception: Downloading stash for Standard, details logged to DebugInfo.log, please open a ticket at https://github.com/Stickymaddness/Procurement/issues
at POEApi.Model.POEModel.GetStash(String league, String accountName)
at Procurement.ViewModel.LoginWindowViewModel.LoadStashItems(Character character)
at Procurement.ViewModel.LoginWindowViewModel.d__6.MoveNext()
at System.Collections.Generic.List1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)    at Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass2.<Login>b__1()    at System.Threading.Tasks.Task.Execute() [03-10-2015 23:42] System.NullReferenceException: Object reference not set to an instance of an object.    at POEApi.Model.Map..ctor(Item item)    at POEApi.Model.ItemFactory.Get(Item item) [03-10-2015 23:42] ItemFactory unable to instanciate type : Volcano Map [03-10-2015 23:42] Error downloading stash for Standard, exception details: System.Exception: ItemFactory unable to instanciate type : Volcano Map    at POEApi.Model.ItemFactory.Get(Item item)    at System.Linq.Enumerable.WhereSelectListIterator2.MoveNext()
at System.Collections.Generic.List1..ctor(IEnumerable1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)    at POEApi.Model.Stash..ctor(Stash proxy)    at POEApi.Model.POEModel.GetStash(Int32 index, String league, Boolean forceRefresh)    at POEApi.Model.POEModel.getAllTabs(String league, Stash stash)    at POEApi.Model.POEModel.GetStash(String league, String accountName) [03-10-2015 23:42] System.Exception: Downloading stash for Standard, details logged to DebugInfo.log, please open a ticket at https://github.com/Stickymaddness/Procurement/issues    at POEApi.Model.POEModel.GetStash(String league, String accountName)    at Procurement.ViewModel.LoginWindowViewModel.LoadStashItems(Character character)    at Procurement.ViewModel.LoginWindowViewModel.<LoadItems>d__6.MoveNext()    at System.Collections.Generic.List1..ctor(IEnumerable1 collection)    at System.Linq.Enumerable.ToList[TSource](IEnumerable1 source)
at Procurement.ViewModel.LoginWindowViewModel.<>c__DisplayClass2.b__1()
at System.Threading.Tasks.Task.Execute()

Actually not really the same.
Your issue is known (take a look at few other today's issues) and it's due to the most recent changes to map system.
I followed the walkaround posted here:
https://github.com/Stickymaddness/Procurement/issues/239
but the new problem with loading my inventory appeared.

Try to disable loading the character inventory by replacing
<List name="MyCharacters">
  [...]
</List>

with just
<List name="MyCharacters" />

in the Settings.xml. If it works after that, it was something in your character's inventory that caused the error.

Well... what if it doesn't work ? :)

Hold on a second - I've just realized I messed up the account's name.
Sorry for the problem, but I admit the error message could have been more accurate.

Then you probably have an error in your Settings.xml? Can you post the part starting with
<Lists>
  [...]
</Lists>


Offline installer

What feature or improvement do you think would benefit Files?
I would like to have an offline installer of Files
Requirements

The installer should be able to do the installation without internet connection

Files Version
Latest
Windows Version
Windows 10
Comments
No response

All stable releases will have an offline file here
https://github.com/files-community/Files/releases

All stable releases will have an offline file here
https://github.com/files-community/Files/releases

I did download the Files.Stables.exe file and here is the result of the installation on a Windows 10 pc with no internet access

That file isn't listed on there. There is a .msixbundle for it

I'm unable to access any .msixbundle files from the releases.
Have they been removed?

It has since been removed as there was issues on how to get the dependencies for it. It's being looked into and there will documentation on Files site when it available. https://files.community/docs


find command may not return what is expected

I've discovered this problem in my worker process which uses Capybara and Poltergeist
This process is checking a live website, it log-in and then check a couple of pages.  Then will sleep and do it again.
I wanted to delete the cookies so I was doing Capybara.reset! and that got me this error:
…/poltergeist-1.5.1/lib/capybara/poltergeist/browser.rb:  54:in `find'
…s/poltergeist-1.5.1/lib/capybara/poltergeist/driver.rb: 114:in `find'
…s/poltergeist-1.5.1/lib/capybara/poltergeist/driver.rb: 118:in `find_xpath'
…by/2.1.0/gems/capybara-2.4.4/lib/capybara/node/base.rb: 107:in `find_xpath'
…e/ruby/2.1.0/gems/capybara-2.4.4/lib/capybara/query.rb: 110:in `block in resolve_for'
…by/2.1.0/gems/capybara-2.4.4/lib/capybara/node/base.rb:  80:in `synchronize'
…e/ruby/2.1.0/gems/capybara-2.4.4/lib/capybara/query.rb: 106:in `resolve_for'
….1.0/gems/capybara-2.4.4/lib/capybara/node/matchers.rb: 122:in `block in assert_no_selector'
…by/2.1.0/gems/capybara-2.4.4/lib/capybara/node/base.rb:  84:in `synchronize'
….1.0/gems/capybara-2.4.4/lib/capybara/node/matchers.rb: 121:in `assert_no_selector'
…ruby/2.1.0/gems/capybara-2.4.4/lib/capybara/session.rb: 676:in `block (2 levels) in <class:Session>'
…ruby/2.1.0/gems/capybara-2.4.4/lib/capybara/session.rb: 104:in `reset!'
…dle/ruby/2.1.0/gems/capybara-2.4.4/lib/capybara/dsl.rb:  51:in `block (2 levels) in <module:DSL>'

It happens very occasionally.
It turns out that command('find') can return 'true' instead of an array. This patch will check if the command did indeed return an array instead of just assuming it did.

Looks fishy, like you try to make a workaround instead of solving issue. find isn't a place to solve this. It should be reproducible with test, I don't see any in the PR. I just tried myself in the console and all works good. Anyway if you use workers, why do you need to use sleep inside it? It's easier to run your task by schedule without any sleep and reset. Sorry I have to close this for now since I cannot reproduce and don't see a point.


No available storage method found Error

I am using this with redux-persist and redux.
It seemed to be linked to localForage
UPDATE: I tried using delay in package.json of 800 and yet error persists and no static html files are generated for the routes.
(node:10052) UnhandledPromiseRejectionWarning: Unhandled promise rejection (reje
ction id: 2): Error: No available storage method found.
??   Saving / as /index.html
?   Finished crawling.```

I think this is yet another place where jsdom isn't offering a full browser experience. I think we need to move to Chrome Headless to fix all these sorts of things.

duplicate of #40 ?