The first mouse event after closing the context menu cannot be captured

First, right-click to open the context menu, click on the blank space to close the context menu, and then right-click, then the context menu will not open, need to click again
https://user-images.githubusercontent.com/22125696/112723397-3b95f500-8f49-11eb-9e1c-72c780f48b6a.mp4

my code
import androidx.compose.desktop.Window
import androidx.compose.foundation.clickable
import androidx.compose.foundation.gestures.forEachGesture
import androidx.compose.foundation.layout.*
import androidx.compose.material.DropdownMenu
import androidx.compose.material.DropdownMenuItem
import androidx.compose.material.Text
import androidx.compose.runtime.*
import androidx.compose.ui.Modifier
import androidx.compose.ui.input.pointer.AwaitPointerEventScope
import androidx.compose.ui.input.pointer.PointerEvent
import androidx.compose.ui.input.pointer.changedToDown
import androidx.compose.ui.input.pointer.consumeDownChange
import androidx.compose.ui.input.pointer.pointerInput
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.dp
import java.awt.Point
import java.awt.event.MouseEvent

fun main() = Window(title = "Compose for Desktop", size = IntSize(400, 400)) {
    var lastEvent by remember { mutableStateOf<MouseEvent?>(null) }
    val rightClickPosition = mutableStateOf<Point?>(null)
    val isContextMenuExpanded = mutableStateOf(false)
    Box {
        Column(modifier = Modifier.fillMaxSize()) {
            Text(
                text = "Custom button",
                modifier = Modifier.pointerInput(Unit) {
                    forEachGesture {
                        awaitPointerEventScope {
                            lastEvent = awaitEventFirstDown().also { point ->
                                point.changes.forEach { it.consumeDownChange() }
                            }.mouseEvent
                        }
                    }
                }
            )
            Text("Mouse event: ${lastEvent?.paramString()}")
            lastEvent?.apply {
                if (button == MouseEvent.BUTTON3) {
                    rightClickPosition.value = point
                    isContextMenuExpanded.value = true
                }
            }
        }
        DropdownMenu(isContextMenuExpanded, rightClickPosition)
    }
}

private suspend fun AwaitPointerEventScope.awaitEventFirstDown(): PointerEvent {
    var event: PointerEvent
    do {
        event = awaitPointerEvent()
    } while (
        !event.changes.all { it.changedToDown() }
    )
    return event
}

@Composable
private fun DropdownMenu(isContextMenuExpanded: MutableState<Boolean>, rightClickPosition: MutableState<Point?>) {
    if (isContextMenuExpanded.value) rightClickPosition.value?.also { point ->
        Row(Modifier.fillMaxSize()) {
            Spacer(Modifier.width(Dp(point.x.toFloat())))
            Column {
                Spacer(Modifier.height(Dp(point.y.toFloat())))
                DropdownMenu(
                    expanded = isContextMenuExpanded.value,
                    onDismissRequest = {
                        isContextMenuExpanded.value = false
                    },
                    modifier = Modifier.width(200.dp)
                ) {
                    DropdownMenuItem(onClick = {
                        isContextMenuExpanded.value = false
                    }) {
                        Text(
                            modifier = Modifier.clickable {  },
                            text = "Download"
                        )
                    }
                }
            }
        }
    }
}

Try !event.changes.all { it.changedToUp() }
private suspend fun AwaitPointerEventScope.awaitEventFirstDown(): PointerEvent {
...
 } while (
        !event.changes.all { it.changedToDown() }
...

Does the above advice help?

Yeah, he solved my problem, but I don't understand why 😂😂

it.changedToDown() work like onLongClick
Actually you just can use Modifier.pointerMoveFilter{} to get current mouse position inside form, but there a little issue - when dropdownMenu opened it's overlay main items and pointerMoveFilter got position just when mouse inside ddMenu form.
var x by remember { mutableStateOf(0) }
var y by remember { mutableStateOf(0) }

        Box(Modifier.fillMaxSize().pointerMoveFilter(onMove = {
            x = it.x.toInt()
            y = it.y.toInt()
            false
        })) {  it: BoxScope  }

Great, you answered my doubt about monitoring the position of the mouse, thanks!
But, why it.changedToUp() can't work?🤔🤔, this function is copyed from the document

In doc example just one button, in my example list with clickable Text(). changeToDown() work like you press and hold button, changeToUp() like you press and release mouse button. When you press click and move mouse it work like cancelation previously pressed button.
If you wanna use example code with suspend function and lastEvent list which contain all info about mouse positions, buttons and events, better use 1st example to get mouse position which i write in #539.

I see, thanks a lot 😉

Sorry, I'm pretty newbish in programming and didn't use coroutines or ktor yet.
It can be either your lil mistake in code which change isContextMenuExpanded back to true or coroutine specific behavior cos if I understand right this suspend function using coroutines.
Anyway can't say anything without full code.

@Exidel Hi, I cut the code part by part, and finally found the code block that caused the exception, but I don't know why.
I brought a reproducible code this time, can you help me? please

code
import androidx.compose.desktop.AppWindow
import androidx.compose.desktop.Window
import androidx.compose.foundation.background
import androidx.compose.foundation.gestures.forEachGesture
import androidx.compose.foundation.layout.*
import androidx.compose.material.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.input.pointer.*
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.IntSize
import androidx.compose.ui.unit.dp
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import java.awt.Point
import java.awt.event.MouseEvent

/**
 * New window: FileManager
 */
object Demo {
    // window show/hide flag
    var showWindow by mutableStateOf(false)
    // network callback
    // network framework will set this field to show snackbar on screen
    val callbackMsg = mutableStateOf<String?>(null)
    // snackbar host state
    private val snackbarHostState = mutableStateOf(SnackbarHostState())

    /**
     * Invoke this function in main window
     * Because the showWindow flag is false, default it will not show
     */
    fun main() {
        if (showWindow) AppWindow(
            // set showWindow flag to false when window dismiss
            onDismissRequest = { showWindow = false},
            title = "File Manager"
        ).apply {
            // set showWindow flag to false when window show
            // if don't do this, will open too many window
            showWindow = false
            show {
                // right click event
                var lastEvent by remember { mutableStateOf<MouseEvent?>(null) }
                // right click position to show context menu
                val rightClickPosition = mutableStateOf<Point?>(null)
                // context menu show flag
                val isContextMenuExpanded = remember { mutableStateOf(false) }

                Box {
                    // load snackbar
                    CreateSnackbar()

                    // create a button, right click it will show context menu
                    Button(modifier = Modifier.pointerInput(Unit) {
                        forEachGesture {
                            awaitPointerEventScope {
                                lastEvent = awaitEventFirstDown().also { point ->
                                    point.changes.forEach { it.consumeDownChange() }
                                }.mouseEvent
                            }
                        }
                    }, onClick = {}) {
                        Text(
                            text = "Right click",
                        )
                    }

                    // set show context menu when right click
                    lastEvent?.apply {
                        if (button == MouseEvent.BUTTON3) {
                            rightClickPosition.value = point
                            isContextMenuExpanded.value = true
                        }
                    }

                    // create context menu
                    DropdownMenu(isContextMenuExpanded, rightClickPosition) {
                        // when click item, simulate the delay of download, then set callbackMsg, snackbar will show
                        CoroutineScope(Dispatchers.Main).launch {
                            delay(1000L)
                            callbackMsg.value = "Download success"
                        }
                    }
                    /******Bug code start👇*****/
                    // this code will cause the context menu redisplay
                    // I don't know why
                    callbackMsg.value?.apply {
                        this.alert()
                        callbackMsg.value = null
                    }
                    /*****Bug code end*******/
                }
            }
        }
    }

    /**
     * Create a snack bar
     */
    @Composable
    private fun BoxScope.CreateSnackbar() {
        SnackbarHost(
            modifier = Modifier.align(Alignment.BottomCenter),
            hostState = snackbarHostState.value,
            snackbar = {
                Snackbar( snackbarData = it)
            }
        )
    }

    /**
     * Create a drop menu,
     * It controls whether to display through observable objects: isContextMenuExpanded
     */
    @Composable
    private fun DropdownMenu(
        isContextMenuExpanded: MutableState<Boolean>,
        rightClickPosition: MutableState<Point?>,
        onClick: (()->Unit)) {

        if (!isContextMenuExpanded.value) return

        rightClickPosition.value?.also { point ->
            Row(Modifier.fillMaxSize().background(Color(0x22000000))) {
                Spacer(Modifier.width(Dp(point.x.toFloat())))
                Column {
                    Spacer(Modifier.height(Dp(point.y.toFloat())))
                    DropdownMenu(
                        expanded = isContextMenuExpanded.value,
                        onDismissRequest = {
                            isContextMenuExpanded.value = false
                        },
                        modifier = Modifier.width(200.dp)
                    ) {
                        DropdownMenuItem(onClick = {
                            isContextMenuExpanded.value = false
                            onClick.invoke()
                        }) {
                            Text(
                                text = "download"
                            )
                        }
                    }
                }
            }
        }
    }

    /**
     * Show snack bar ext
     */
    private fun String.alert() {
        CoroutineScope(Dispatchers.IO).launch {
            snackbarHostState.value.showSnackbar(
                message = this@alert,
                actionLabel = "Hide",
                duration = SnackbarDuration.Short
            )
        }
    }

    /**
     * Event waiter
     */
    private suspend fun AwaitPointerEventScope.awaitEventFirstDown(): PointerEvent {
        var event: PointerEvent
        do {
            event = awaitPointerEvent()
        } while (
            !event.changes.all { it.changedToUpIgnoreConsumed() }
        )
        return event
    }
}

/**
 * Enter point
 * Click button will open new window
 */
fun main() = Window(title = "Compose for Desktop", size = IntSize(400, 400)) {
    Demo.main()
    Box {
        Button({Demo.showWindow = true}) {
            Text("open new window")
        }
    }
}

I think it’s verbose to write the code like this, and it doesn’t seem to be the best practice, can you make some comments?
var flag by mutableStateOf(false)

onclick = {flag = true}

CreateSth()

fun CreateSth() {
    if(flag) {
        // show
        false = true
    }
}

Sorry, didn't saw your message.
Your problem in:
lastEvent?.apply {
                        if (button == MouseEvent.BUTTON3) {
                            rightClickPosition.value = point
                            isContextMenuExpanded.value = true
                        }
                    }

moving it into:
                    Button(modifier = Modifier.pointerInput(Unit) {
                        forEachGesture {
                            awaitPointerEventScope {
                                lastEvent = awaitEventFirstDown().also { point ->
                                    point.changes.forEach { it.consumeDownChange() }
                                }.mouseEvent

                                lastEvent?.apply {
                                    if (button == MouseEvent.BUTTON3) {
                                        rightClickPosition.value = point
                                        isContextMenuExpanded.value = true
                                    }
                                }

                            }
                        }
                    }, onClick = {}) {
                        Text(
                            text = "Right click",
                        )
                    }

solving problem.
Explanation: When you click on button it got list with const parametrs like position, button used and other. It doesn't change until you click again on element which catch that event and create list (in your case it's Button). When you use lastEvent (mean list) for IF(button == MouseEvent.BUTTON3) it always true until you click again on Button and get in lastEvent new parametrs. So any events based on MouseEvent should be inside block where mouse event happening.
When you copy paste example code try atleast understand what you use. Code should be simple to read, if it's not that's mean you doing something wrong. Aaaand it's 3 a.m. and I'm going sleep.
also:
https://foso.github.io/Jetpack-Compose-Playground/material/snackbar/
https://developer.android.com/reference/kotlin/androidx/compose/material/package-summary#snackbar
https://developer.android.com/jetpack/compose/state#remember

The problem is really solved, you are amazing
Q1: But, why I delete these codes, there is no problem?
                    /******Bug code start👇*****/
                    // this code will cause the context menu redisplay
                    // I don't know why
                    callbackMsg.value?.apply {
                        this.alert()
                        callbackMsg.value = null
                    }
                    /*****Bug code end*******/

When you use lastEvent (mean list) for IF(button == MouseEvent.BUTTON3) it always true until you click again on Button and get in lastEvent new parametrs.

lastEvent is MutableState field, this block will not be invoked untill it changed by others, and when the menu is showed, isContextMenuExpanded will be set to false.
                    // set show context menu when right click
                   lastEvent?.apply {
                       println("WWWWWWWWWWWWWWWWWWWWW")
                       if (button == MouseEvent.BUTTON3) {
                           rightClickPosition.value = point
                           isContextMenuExpanded.value = true
                       }
                   }

In these codes, log will only output when lastEvent changed when awaitEventFirstDown finish.
forEachGesture {
                            awaitPointerEventScope {
                                println("start block and waiting")
                                lastEvent = awaitEventFirstDown().also { point ->
                                    point.changes.forEach { it.consumeDownChange() }
                                }.mouseEvent
                                println("stop block and waiting")
                            }
                        }

I add two logs in it. Output like this:
start block and waiting
WWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWW
WWWWWWWWWWWWWWWWWWWWW

println("stop block and waiting") and println("start block and waiting") didn't show, that means awaitEventFirstDown didn't finish and lastEvent value not be changed.
println("WWWWWWWWWWWWWWWWWWWWW")
if (button == MouseEvent.BUTTON3) {
        rightClickPosition.value = point
        isContextMenuExpanded.value = true
}

Q2: But why the value of  lastEvent  has not changed, these codes are called three times?  amazing
Is a bug?

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


Patroni and pgBackRest: cannot restore a backup and reinit without a new backup

What happened?
I am making some tests on pgBackRest with Patroni running on a 3-node PostgreSQL 17 cluster, and I am hitting a couple of main problems:
Reinit problem:
Patroni nodes are able to reinit themselves from pgBackRest, but only if the timeline has not been changed, else I need to make a new full or incremental backup on pgBackRest to have the reinit working again. I did not find any documentation which tells that this is expected. I don't think it is, so I wrote to the pgBackRest issue tracker (https://github.com/pgbackrest/pgbackrest/issues/2474) but they told me that this is not a problem related to pgBackRest but rather to PostgreSQL and/or Patroni.
Restore problem:
When trying to restore a pgBackRest backup to a standalone PostgreSQL installation, the pgBackRest restore command finishes with no errors, but PostgreSQL does not start up at all and returns the following errors:
postgresql-1            |
postgresql-1            | PostgreSQL Database directory appears to contain a database; Skipping initialization
postgresql-1            |
postgresql-1            | 2024-11-12 18:48:26.792 UTC [1] LOG:  starting PostgreSQL 17.0 (Debian 17.0-1.pgdg120+1) on x86_64-pc-linux-gnu, compiled by gcc (Debian 12.2.0-14) 12.2.0, 64-bit
postgresql-1            | 2024-11-12 18:48:26.792 UTC [1] LOG:  listening on IPv4 address "<IP_ADDRESS>", port 5432
postgresql-1            | 2024-11-12 18:48:26.793 UTC [1] LOG:  listening on Unix socket "/var/run/postgresql/.s.PGSQL.5432"
postgresql-1            | 2024-11-12 18:48:26.796 UTC [16] LOG:  database system was interrupted; last known up at 2024-11-12 17:15:37 UTC
postgresql-1            | 2024-11-12 18:48:26.896 UTC [16] LOG:  starting backup recovery with redo LSN 1A0/760000D8, checkpoint LSN 1A0/76000130, on timeline ID 6
postgresql-1            | 2024-11-12 18:48:26.896 UTC [16] LOG:  invalid checkpoint record
postgresql-1            | 2024-11-12 18:48:26.896 UTC [16] FATAL:  could not locate required checkpoint record at 1A0/76000130
postgresql-1            | 2024-11-12 18:48:26.896 UTC [16] HINT:  If you are restoring from a backup, touch "/var/lib/postgresql/patroni-pg17/data/recovery.signal" or "/var/lib/postgresql/patroni-pg17/data/standby.signal" and add required recovery options.
postgresql-1            | 	If you are not restoring from a backup, try removing the file "/var/lib/postgresql/patroni-pg17/data/backup_label".
postgresql-1            | 	Be careful: removing "/var/lib/postgresql/patroni-pg17/data/backup_label" will result in a corrupt cluster if restoring from a backup.
postgresql-1            | 2024-11-12 18:48:26.897 UTC [1] LOG:  startup process (PID 16) exited with exit code 1
postgresql-1            | 2024-11-12 18:48:26.897 UTC [1] LOG:  aborting startup due to startup process failure
postgresql-1            | 2024-11-12 18:48:26.898 UTC [1] LOG:  database system is shut down
Could you help me to figure out where I am going wrong, please?

How can we reproduce it (as minimally and precisely as possible)?
Reinit problem:

Install Patroni, PostgreSQL and pgBackRest and configure them
Start a full backup with pgBackRest and expect it to finish
Execute a switchover on Patroni, wait the switchover to be executed, check the leader node to be changed, check the TL to be increased by 1
Execute a reinit on one replica node
See that the reinit will never complete and check errors in the Patroni log file
Start a new full or incremental backup with pgBackRest and expect it to finish
Execute a reinit on one replica node
Check that the reinit will be completed correctly

Restore problem:

Restore a backup from pgBackRest to a new standalone single-node PostgreSQL 17 instance
Start the new PostgreSQL 17 instance
See the PosthreSQL shutdown and the error

What did you expect to happen?
Reinit problem:
I expect that a reinit will complete successfully even if I do not execute a new full or incremental backup on pbBackRest after the TL to be increased.
Restore problem:
I expect that a new single-node PostgreSQL instance would be able to start on the new datadir after the restore to be successfully completed.
Patroni/PostgreSQL/DCS version

Patroni version: 3.3.4
PostgreSQL version: 17.0
DCS (and its version): etcd 3.4.34

Patroni configuration file
# Patroni configuration file

scope: dev_pg17
#namespace: /service/
name: postgres1

restapi:
  listen: <IP_ADDRESS>:8008
  connect_address: <IP_ADDRESS>:8008
#  cafile: /etc/ssl/certs/ssl-cacert-snakeoil.pem
#  certfile: /etc/ssl/certs/ssl-cert-snakeoil.pem
#  keyfile: /etc/ssl/private/ssl-cert-snakeoil.key
#  authentication:
#    username: username
#    password: password

#ctl:
#  insecure: false # Allow connections to Patroni REST API without verifying certificates
#  certfile: /etc/ssl/certs/ssl-cert-snakeoil.pem
#  keyfile: /etc/ssl/private/ssl-cert-snakeoil.key
#  cacert: /etc/ssl/certs/ssl-cacert-snakeoil.pem

#citus:
#  database: citus
#  group: 0  # coordinator

etcd:
  #Provide host to do the initial discovery of the cluster topology:
  #host: <IP_ADDRESS>:2379
  #Or use "hosts" to provide multiple endpoints
  #Could be a comma separated string:
  #hosts: host1:port1,host2:port2
  #or an actual yaml list:
  #hosts:
  #- host1:port1
  #- host2:port2
  #Once discovery is complete Patroni will use the list of advertised clientURLs
  #It is possible to change this behavior through by setting:
  #use_proxies: true

#raft:
#  data_dir: .
#  self_addr: <IP_ADDRESS>:2222
#  partner_addrs:
#  - <IP_ADDRESS>:2223
#  - <IP_ADDRESS>:2224

# The bootstrap configuration. Works only when the cluster is not yet initialized.
# If the cluster is already initialized, all changes in the `bootstrap` section are ignored!
bootstrap:
  # This section will be written into Etcd:/<namespace>/<scope>/config after initializing new cluster
  # and all other cluster members will use it as a `global configuration`.
  # WARNING! If you want to change any of the parameters that were set up
  # via `bootstrap.dcs` section, please use `patronictl edit-config`!
  dcs:
    ignore_slots:
    - name: barman
      type: physical
    slots:
      postgres1:
        type: physical
      postgres:
        type: physical
      postgres:
        type: physical
    ttl: 30
    loop_wait: 10
    retry_timeout: 10
    maximum_lag_on_failover: 1048576
#    primary_start_timeout: 300
#    synchronous_mode: false
    #standby_cluster:
      #host: <IP_ADDRESS>
      #port: 1111
      #primary_slot_name: patroni
    postgresql:
      use_pg_rewind: true
      pg_hba:
      - local all postgres peer
      - local replication all peer
      - host replication replication <IP_ADDRESS>/32 md5
      - host replication replication postgres1.dev.dc.me.com md5
      - host replication replication postgres2.dev.dc.me.com md5
      - host replication replication postgres3.dev.dc.me.com md5
      - host all all <IP_ADDRESS>/0 md5
      parameters:
        archive_command: "pgbackrest --stanza=dev_pg17 archive-push %p"
        archive_mode: "on"
        restore_command: "pgbackrest --stanza=dev_pg17 archive-get %f \"%p\""
      recovery_conf:
        recovery_target_timeline: latest
        restore_command: pgbackrest --stanza=dev_pg17 archive-get %f "%p"
      method: pgbackrest
      pgbackrest:
        command: pgbackrest --stanza=dev_pg17 restore
        keep_existing_recovery_conf: false
        recovery_conf:
          recovery_target_timeline: latest
          restore_command: pgbackrest --stanza=dev_pg17 archive-get %f "%p"

  # some desired options for 'initdb'
  initdb:  # Note: It needs to be a list (some options need values, others are switches)
  - encoding: UTF8
  - data-checksums

  # Additional script to be launched after initial cluster creation (will be passed the connection URL as parameter)
# post_init: /usr/local/bin/setup_cluster.sh

postgresql:
  listen: <IP_ADDRESS>:5432
  connect_address: <IP_ADDRESS>:5432

#  proxy_address: <IP_ADDRESS>:5433  # The address of connection pool (e.g., pgbouncer) running next to Patroni/Postgres. Only for service discovery.
  data_dir: data/postgresql0
#  bin_dir:
#  config_dir:
  pgpass: /tmp/pgpass0

  authentication:
    replication:
      username: replication
      password: replication
    superuser:
      username: postgres
      password: postgres
    rewind:  # Has no effect on postgres 10 and lower
      username: rewind_user
      password: rewind_password

  create_replica_methods:
    - pgbackrest
  pgbackrest:
    command: pgbackrest --stanza=dev_pg17 restore --delta --link-all
    keep_data: true
    no_params: true

  pg_hba:
  - local all postgres peer
  - local replication all peer
  - host replication replication <IP_ADDRESS>/32 md5
  - host replication replication postgres1.dev.dc.me.com md5
  - host replication replication postgres2.dev.dc.me.com md5
  - host replication replication postgres3.dev.dc.me.com md5
  - host all all <IP_ADDRESS>/0 md5

  # Server side kerberos spn
#  krbsrvname: postgres
  parameters:
    archive_command: "pgbackrest --stanza=dev_pg17 archive-push %p"
    archive_mode: "on"
    restore_command: "pgbackrest --stanza=dev_pg17 archive-get %f \"%p\""

#watchdog:
#  mode: automatic # Allowed values: off, automatic, required
#  device: /dev/watchdog
#  safety_margin: 5

tags:
    nofailover: False
    noloadbalance: False
    clonefrom: False
    nosync: False

patronictl show-config
2024-11-28 14:10:36,074 - DEBUG - Ignoring configuration file "/var/lib/postgresql/.config/patroni/patronictl.yaml". It does not exists or is not readable.
2024-11-28 14:10:36,109 - DEBUG - New etcd client created for http://<IP_ADDRESS>:4001
2024-11-28 14:10:36,110 - DEBUG - Converted retries value: 0 -> Retry(total=0, connect=None, read=None, redirect=0, status=None)
2024-11-28 14:10:36,110 - DEBUG - Starting new HTTP connection (1): etcd3.dev.dc.me.com:2379
2024-11-28 14:10:36,112 - DEBUG - http://etcd3.dev.dc.me.com:2379 "GET /version HTTP/11" 200 45
2024-11-28 14:10:36,112 - DEBUG - Converted retries value: 0 -> Retry(total=0, connect=None, read=None, redirect=0, status=None)
2024-11-28 14:10:36,157 - DEBUG - http://etcd3.dev.dc.me.com:2379 "POST /v3/cluster/member/list HTTP/11" 200 543
2024-11-28 14:10:36,158 - DEBUG - Retrieved list of machines: ['http://etcd3.dev.dc.me.com:2379', 'http://etcd1.dev.dc.me.com:2379', 'http://etcd2.dev.dc.me.com:2379']
2024-11-28 14:10:36,158 - INFO - Selected new etcd server http://etcd2.dev.dc.me.com:2379
2024-11-28 14:10:36,158 - DEBUG - Converted retries value: 0 -> Retry(total=0, connect=None, read=None, redirect=0, status=None)
2024-11-28 14:10:36,159 - DEBUG - Starting new HTTP connection (1): etcd2.dev.dc.me.com:2379
2024-11-28 14:10:36,163 - DEBUG - http://etcd2.dev.dc.me.com:2379 "POST /v3/kv/range HTTP/11" 200 None
ignore_slots:
- name: barman
  type: physical
loop_wait: 10
maximum_lag_on_failover: 1048576
postgresql:
  parameters: null
  pg_hba:
  - local all postgres peer
  - local replication all peer
  - host replication replication <IP_ADDRESS>/32 md5
  - host replication replication postgres1.dev.dc.me.com md5
  - host replication replication postgres2.dev.dc.me.com md5
  - host replication replication postgres3.dev.dc.me.com md5
  - host all all <IP_ADDRESS>/0 md5
  use_pg_rewind: true
retry_timeout: 10
ttl: 30

Patroni log files
patroni-1  | 2024-10-24 16:14:20.320 UTC [2471] LOG:  started streaming WAL from primary at 1A0/28000000 on timeline 68
patroni-1  | 2024-10-24 16:14:20.315 P00   INFO: unable to find<PHONE_NUMBER>0001A000000028 in the archive
patroni-1  | 2024-10-24 16:14:20.331 P00   INFO: unable to find 00000047.history in the archive

PostgreSQL log files
patroni-1  | 2024-10-24 16:14:15.312 UTC [2442] LOG:  started streaming WAL from primary at 1A0/28000000 on timeline 68
patroni-1  | 2024-10-24 16:14:15.312 UTC [2442] FATAL:  could not receive data from WAL stream: ERROR:  requested WAL segment<PHONE_NUMBER>0001A000000028 has already been removed
patroni-1  | P00   WARN: environment contains invalid option 'ssh-run'
patroni-1  | P00   WARN: environment contains invalid option 'host-repo-dir-path'
patroni-1  | P00   WARN: environment contains invalid option 'ssh-host-port'
patroni-1  | P00   WARN: environment contains invalid option 'host-log-dir-path'
patroni-1  | 2024-10-24 16:14:15.317 P00   INFO: archive-get command begin 2.53.1: [00000047.history, pg_wal/RECOVERYHISTORY] --exec-id=2444-287a8477 --log-level-console=info --log-level-file=debug --log-path=/var/log/pgbackrest --pg1-local --pg1-path=/var/lib/postgresql/data --process-max=2 --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/repo --repo1-s3-bucket=pgbackrest-dev --repo1-s3-endpoint=pgbackrest-minio --repo1-s3-key=<redacted> --repo1-s3-key-secret=<redacted> --repo1-s3-region=<my_minio_region> --repo1-s3-uri-style=path --no-repo1-storage-verify-tls --repo1-type=s3 --stanza=dev
patroni-1  | 2024-10-24 16:14:15.321 P00   INFO: unable to find 00000047.history in the archive
patroni-1  | 2024-10-24 16:14:15.321 P00   INFO: archive-get command end: completed successfully (5ms)
patroni-1  | P00   WARN: environment contains invalid option 'ssh-run'
patroni-1  | P00   WARN: environment contains invalid option 'host-repo-dir-path'
patroni-1  | P00   WARN: environment contains invalid option 'ssh-host-port'
patroni-1  | P00   WARN: environment contains invalid option 'host-log-dir-path'
patroni-1  | 2024-10-24 16:14:20.290 P00   INFO: archive-get command begin 2.53.1: [00000046000001A000000028, pg_wal/RECOVERYXLOG] --exec-id=2466-ace0eef4 --log-level-console=info --log-level-file=debug --log-path=/var/log/pgbackrest --pg1-local --pg1-path=/var/lib/postgresql/data --process-max=2 --repo1-cipher-pass=<redacted> --repo1-cipher-type=aes-256-cbc --repo1-path=/repo --repo1-s3-bucket=pgbackrest-dev --repo1-s3-endpoint=pgbackrest-minio --repo1-s3-key=<redacted> --repo1-s3-key-secret=<redacted> --repo1-s3-region=<my_minio_region> --repo1-s3-uri-style=path --no-repo1-storage-verify-tls --repo1-type=s3 --stanza=dev
patroni-1  | 2024-10-24 16:14:20.295 P00   INFO: unable to find<PHONE_NUMBER>0001A000000028 in the archive
patroni-1  | 2024-10-24 16:14:20.295 P00   INFO: archive-get command end: completed successfully (6ms)

Have you tried to use GitHub issue search?

[X] Yes

Anything else we need to know?
I'm reporting both problems into this single issue because I think they could be related together and caused by the same problem, error or misconfiguration.
Docker container:
Patroni and PostgreSQL are running into a Docker container with a custom build image which have both installed on it together with pgBackRest.
The pgBackRest repository is on a MinIO bucket.
pgbackRest configuration on Patroni nodes:
[global]

#repo1-path=/mnt/pgbackrest
repo1-type=s3
repo1-path=/repo
repo1-s3-endpoint=pgbackrest-minio.dev.me.com
repo1-s3-bucket=pgbackrest-dev-pg17
repo1-s3-uri-style=path
repo1-s3-verify-tls=n
repo1-s3-key=mykey
repo1-s3-key-secret=mysecret
repo1-s3-region=my_minio_region
repo1-cipher-pass=mypass
repo1-cipher-type=aes-256-cbc

repo1-retention-full=14
repo1-retention-full-type=time
repo1-host-user=postgres

archive-check=n
process-max=2
log-level-console=info
log-path=/var/log/pgbackrest
log-level-file=debug
start-fast=y
delta=y

[dev_pg17]
pg1-local=y
pg1-path=/var/lib/postgresql/patroni-pg17/data

Thank you for your answer.
Anyway, I've already wrote to the pgBackRest issue tracker, and they closed the issue because it is not a pgBackRest related problem.
You closed the issue because it's not a Patroni problem.
On the PostgreSQL Slack forum they told me that it could be a misconfiguration problem and they could be related to PostgreSQL or Patroni.
So my question is: where could I found some help on this problem? :-)

@mmartinello you shouldn't expect from people to be really engaged in debugging your configuration.
As I said, you need to start from verifying that WALs are properly archived and could be fetched using pgBackRest.
I also gave instructions what to do to reproduce the problem without Patroni.


Simple federation test not working

Hi folks,
Forgive me if I've misunderstood something from the documentation, but I'm not quite sure how to proceed here.
According to https://wiki.duraspace.org/display/FEDORA40/Filesystem+Federation, adding the below block to https://github.com/fcrepo4/fcrepo4/blob/master/fcrepo-configs/src/main/resources/config/minimal-default/repository.json and restarting Fedora should make a file in that directory called howdy.txt accessible at http://[base]:8080/rest/federated/howdy.txt, right?
    "externalSources" : {
      "federated-directory" : {
        "classname" : "org.fcrepo.connector.file.FedoraFileSystemConnector",
        "directoryPath" : "/home/axfelix/testfederation",
        "projections" : [ "default:/federated => /" ],
        "contentBasedSha1" : "false",
        "readonly" : true,
        "extraPropertiesStorage" : "none",
        "cacheTtlSeconds" : 5
      }
    }

I'm getting 404s. Do I need to do some kind of new install operation to ensure that config file is re-parsed? Thanks.

That should work. Does your Fedora process have read access to /home/axfelix/testfederation?
What do you get if you make a request on: http://[base]:8080/rest/federated/?

The directory is 777'ed, just to be on the safe side for the test ... getting 404s on just /rest/federated/ as well.

For my own testing purposes, which version of Fedora4 are you using?

A git clone from master from Wednesday. I can pull changes if desired :)

@axfelix, I just tested your exact configuration (changing only the local directory path), and it worked as expected. That means that the issue is with the documentation.
Let me know if the following update helps:
https://wiki.duraspace.org/pages/diffpages.action?originalId=68068907&pageId=68068908

Still no go. Any way it'd be loading the configuration from someplace other than https://github.com/fcrepo4/fcrepo4/blob/master/fcrepo-configs/src/main/resources/config/minimal-default/repository.json assuming I'm just following the Github readme to get up and running? Any, just to be clear, the externalSources json block doesn't need to be nested with any other?

How are you deploying your fcrepo4 application? mvn jetty:run? as a war file in tomcat? other?

mvn jetty:run. Following the github docs pretty much to a T.

Place your updated repository.json file somewhere nearby.
Then run this command from the fcrepo-webapp directory:
mvn -Dfcrepo.modeshape.configuration=file:///<absolute-path-to-repository.json> jetty:run
p.s. What OS are you on?

After doing that, I seem to be getting 503s when trying to hit the regular :8080/rest URL ... unfortunately not an improvement! This is 12.04.

Can you please paste the command you just tried here?

Sure.
mvn -Dfcrepo.modeshape.configuration=file:////home/garnett/fcrepo4/fcrepo-configs/src/main/resources/config/minimal-default/repository.json jetty:run

Hm, just noticed that file: wound up with four slashes after it rather than the three because I just pasted a / for the drive root ... let me try it with the three instead.

Nope, that didn't make a difference.

I just tested the following command... which worked successfully:
mvn -Dfcrepo.modeshape.configuration=file:///tmp/awoods/repository.json jetty:run
With the following repository.json file:
{
    "name" : "repo",
    "jndiName" : "",
    "workspaces" : {
        "predefined" : ["default"],
        "default" : "default",
        "allowCreation" : true
    },
    "storage" : {
        "cacheName" : "FedoraRepository",
        "cacheConfiguration" : "${fcrepo.ispn.configuration:config/infinispan/leveldb-default/infinispan.xml}",
        "binaryStorage" : {
            "type" : "file",
            "directory" : "${fcrepo.binary.directory:target/binaries}",
            "minimumBinarySizeInBytes" : 4096
        }
    },

    "externalSources" : {
      "federated-directory" : {
        "classname" : "org.fcrepo.connector.file.FedoraFileSystemConnector",
        "directoryPath" : "/tmp/awoods/lib",
        "projections" : [ "default:/federated => /" ],
        "contentBasedSha1" : "false",
        "readonly" : true,
        "extraPropertiesStorage" : "none",
        "cacheTtlSeconds" : 5
      }
    },

    "security" : {
        "anonymous" : {
            "roles" : ["readonly","readwrite","admin"],
            "useOnFailedLogin" : false
        },
        "providers" : [
            { "classname" : "org.fcrepo.auth.common.BypassSecurityServletAuthenticationProvider" }
        ]
    },
    "node-types" : ["fedora-node-types.cnd"]
}

If that is still not working for you, could you please send me the output of you jetty:run. You can just pipe the terminal output to a file:
mvn -D... jetty:run | tee some-file.txt

Nnnngh. Missing comma in the JSON. Working now. Thanks for telling me to pipe the terminal output so I actually read it. Thanks and sorry!


Added support for retina images

Added support for retina images (via data attribute ‘data-original-2x’,
but attribute overrideable via option ‘data_attribute_2x’).  These are
loaded instead of the ‘original’ image if the display can show retina
images.
Also fixed a tiny typo on your 'Contributing' message. :+1:

Any chance of some retina solution be merged? I saw no mention in the documentation about using retina images with the current plugin.

Retina is now supported in 2.x. Better late than never.
<img class="lazyload"
     src="thumbnail.jpg"
     data-src="normal.jpg"
     data-srcset="normal.jpg 1x, retina.jpg 2x"
     width="1024" height="768" /


VS Code opened but not showing in ubuntu

I am use ubuntu 22.04 LTS
vs code is succesfully installed
and opend but not showing.

What windowing system are you using? (Wayland or X11)? Are you using NVIDIA graphics drivers?

What windowing system are you using? (Wayland or X11)? Are you using NVIDIA graphics drivers?

This issue has been closed automatically because it needs more information and has not had recent activity. See also our issue reporting guidelines.
Happy Coding!


Improve performance of CompoundRule._build_match()

This method is currently the most important performance bottleneck.

$ python performance/profile.py Rule.match CompoundRule._build_match
Timer unit: 4.66532e-07 s

Total time: 0.000178682 s
File: src/ruler/ruler.py
Function: _build_match at line 78

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
    78                                               @classmethod
    79                                               def _build_match(cls, matched_text, sub_rule_matches):
    80                                                   """
    81                                                   Match object factory.
    82                                                   :param matched_text: The text that was matched.
    83                                                   :param sub_rule_matches: A list of pairs mapping sub-rule objects to their matches.
    84                                                   :return: A tuple (Match, None)
    85                                                   """
    86         5           19      3.8      5.0          matches = {}
    87        17           55      3.2     14.4          for rule, match in sub_rule_matches:
    88        12           73      6.1     19.1              if rule.name:
    89                                                           # The sub-rule has a name, add its match as my sub-match
    90         5           26      5.2      6.8                  if rule.name in matches:
    91                                                               raise TokenRedefinitionError(rule.name)
    92                                                           else:
    93         5           29      5.8      7.6                      matches[rule.name] = match
    94         7           41      5.9     10.7              elif match:  # match is allowed to be None here
    95                                                           # The sub-rule doesn't have a name, add its sub-matches as my own sub-matches
    96         5           91     18.2     23.8                  for rule_name, sub_match in match:
    97                                                               if rule_name in matches:
    98                                                                   raise TokenRedefinitionError(rule_name)
    99                                                               else:
   100                                                                   matches[rule_name] = sub_match
   101
   102         5           49      9.8     12.8          return Match(matched_text, matches), None

Total time: 0.000499189 s
File: src/ruler/ruler.py
Function: match at line 109

Line #      Hits         Time  Per Hit   % Time  Line Contents
==============================================================
   109                                               def match(self, text):
   110         4           16      4.0      1.5          text_to_match = text
   111         4           13      3.2      1.2          sub_rule_matches = []
   112
   113                                                   # Advance through the text, matching each iteration the next rule
   114        11           38      3.5      3.6          for sub_rule in self._rules:
   115                                                       # Try to match the next rule
   116         8          497     62.1     46.4              match, mismatch = sub_rule.match(text_to_match)
   117
   118         8           28      3.5      2.6              if mismatch:
   119         1            6      6.0      0.6                  mismatch_position = len(text) - len(text_to_match) + mismatch.position
   120         1           12     12.0      1.1                  return None, Mismatch(text, mismatch_position, mismatch.description)
   121                                                       else:
   122                                                           # Remove the matched part from the text
   123         7           64      9.1      6.0                  text_to_match = text_to_match[len(match):]
   124         7           32      4.6      3.0                  sub_rule_matches.append((sub_rule, match))
   125
   126         3           16      5.3      1.5          matched_text = text[:-len(text_to_match)] if text_to_match else text
   127         3          348    116.0     32.5          return self._build_match(matched_text, sub_rule_matches)

Fixed by 21e11485c61f5d6a66fb08a863f7f38b05cb00a8 making the matching more than twice faster!


Mixpanel.sharedWithInstanceToken on Readme is undefined

Sir
The readme you mention Mixpanel.sharedWithInstanceToken which is undefined
However I checked the android native function is Mixpanel.sharedInstanceWithToken
Please verify your Readme.

+1 need to update readme with manual instructions for android

+1

Hi all, sorry about this.. we don't this anymore, we have changed to https://github.com/davodesign84/react-native-mixpanel


Unable to use API based authenticaion for SPA applications and Traditional Web applications

Describe the issue:
When API based authenticaiton is executed from a single page application following error is returned.
{"code":"ABA-60007","message":"App native authentication is not enabled for the application.","description":"App native authentication is not enabled for this application with id cf64ae99-5528-40f0-949f-83d04c240671","traceId":"3d2c1a5d-9ec2-4ce5-86b6-8d40fecf6a1e"}

Respective configurations are not shown under the Advanced section as well

Cannot try the flow from traditional web applications as well.
How to reproduce:

Create a single-page app
Try API-based authentication from an app
Create a traditional web application and try the flow

Expected behavior:
API-based authentication should be possible for SPAs as well.
Environment information (Please complete the following information; remove  any unnecessary fields) :

Product Version: [e.g., IS 5.10.0, IS 5.9.0]
OS: [e.g., Windows, Linux, Mac]
Database: [e.g., MySQL, H2]
Userstore: [e.g., LDAP, JDBC]

Optional Fields
Related issues:

Suggested labels:

Hi Dev,
We have an ongoing discussion about whether to add ANA UI to SPA. As per last discussion, I am adding the UI config with this PR: https://github.com/wso2/identity-apps/pull/5092
If we decided to add the UI config to SPA template the fix can be found here, https://github.com/wso2/identity-apps/pull/5092/commits/b06791b73010891c3b9e97f0669c632a16cf36df
Hence removing my assignment.
CC: @janakamarasena @ayshsandu

API-based authentication UI support for Traditional Web App is added through the following;

https://github.com/wso2/identity-apps/pull/5145

Discussion is pending to decide on adding Application Native Authentication UIs for the SPA template.

In a discussion had with @janakamarasena, @jeradrutnam, @ayshsandu, @malithie following decisions were made;

ANA UIs should not be included in SPA.
ANA UIs should be included in Traditional Web Apps. However, attestation configs should not be shown.

In a discussion had with @janakamarasena, @jeradrutnam, @ayshsandu, @malithie following decisions were made;

ANA UIs should not be included in SPA.
ANA UIs should be included in Traditional Web Apps. However, attestation configs should not be shown.

Mobile and Standard-based applications as well.


Remove default axis overrride when custom ID is given.

Feature Proposal
Remove the default scale override for x/y axis if a different axis id is given.
In case you want to add a second x axis you need to add an empty x scale object which is weird.
Also when adding a custom scale that chart.js does not know the kind of (because of first letter) it does appear as an extra y scale but as soon as you specify the place it replaces the current default x/y scale
Possible Implementation
No response

Also when adding a custom scale that chart.js does not know the kind of (because of first letter) it does appear as an extra y scale but as soon as you specify the place it replaces the current default x/y scale

@LeeLenaleee maybe I'm wrong, but instead of specify the position (as you have done here https://jsfiddle.net/Leelenaleee/3b27jqah/6/), you could set axis option, axis: 'x' and then you can use whatever ID you want.

No I think you might understand it wrong, tried to explain it a bit better underneath here
Like the example you linked I want to add a second X axis, im totally fine with the original so don't need any config for that. So I add a scale config for axis x2. This would for my feeling create a second x axis or at least a new axis. But instead it overrides the default x scale.
scales: {
  x2: {} // overrides default x so still only 2 scales, 1 x and 1 y scales
}

If I instead make a scale (without any config) with an id that chart.js can not infer the type from like secondX it will create an extra scale and make it a y scale. So I have 2 y scales and 1 x scale. But as soon as I specify the axis field or position field it overrides the default y/x axis again.
scales: {
  secondX: {} // create extra y scale, 1 x and 2 y scales
}

scales: {
  secondX: { // overrides default x so still only 2 scales, 1 x and 1 y scales
    position: 'bottom', // Both the position and axis prop independintly make it override default scale
    axis: 'x'
  }
}

So only way to create a custom new scale (as far as my knowledge goes) is by adding an empty scale object for the default x/y scale which feels verry weird. Especially since if you make a scale ID chart.js cant infer without config to test if it renders it does render but then as soon as you add condig it stops rendering and makes it the default scale.
scales: {
  x: {}, // Feels weird and wrong that this needs to be done
  x2: {
    // All config
  }
}

@LeeLenaleee sorry I misunderstood that and now it's clear! I didn't recognize that the second axis will override the default one and you are definitely right. I had the doubt about the usage of position instead of axis option.

@LeeLenaleee I was thinking about this issue. Maybe you should remove the default scale override because I have seen many users which are using CHART.JS, assuming that this is the behavior.
Nevertheless I agree with you that it's annoying to add an "empty" scale definition, only to maintain the default one.
Maybe new option could be added to the cartesian scales (for instance override or overrideDefault) where the user can specify that the new scales are on top to the default one.
override?: boolean // default `true`, as is today. In this way it could not be a breaking change

when adding a custom scale that chart.js does not know the kind of (because of first letter) it does appear as an extra y scale

This one is a bug, it should override the default y-scale in that case.

@LeeLenaleee @stockiNail @kurkle Hi guys. Could you please finalize the decision about this issue?

should we disable override at all?
do it by override option?
...

My preference goes to removing it so any scale ID except for x/y creates a second scale next to the main one.
@etimberg what is your opinion on this?

If I understand correctly @LeeLenaleee this would create two x and two y axes:
const options = {
  scales: {
    x2: { type: 'category' },
    y2: { type: 'linear; },
  }
}

I think that could make sense. my one concern is that it makes upgrades harder to do because if someone set an ID before it will change and there's no way to have the case above make 2 axes because you can't delete x and y

yes your config would indeed make 2 x and 2 y axes with the proposed change.
So if we do something like this I think we need to make it verry clear at the top of the migration guide.

I encountered an example chart that was affected by this:
v3 https://codepen.io/kurkle/pen/gOzzPvE
v4 https://codepen.io/kurkle/pen/ExxdyXQ
Now you'd need to display: false on the unused default scales. Maybe we should at least change the display default to 'auto'?


Shared Wallet API status

Hi,
Wondering about the status of the Shared Wallet API.
It's reported in the docs as "unstable": https://input-output-hk.github.io/cardano-wallet/api/edge/#tag/Shared-Wallets

Is anything expected to change soon etc.

Yes @holygits we put shared wallets development on hold temporarily while we complete the work to support plutus application backend. We plan to add the final pieces of shared wallet support after that.


:bar_chart: oecd: Official Development Assistance data

Main issue: https://github.com/owid/owid-issues/issues/1620
Given the lack of documentation, this PR has taken longer than expected. We still want to make adjustments, but probably after Stockholm.
Also in this issue:

The function .read() can read parquet files.
Metadata accepts jinja for processing_level

@lucasrodes Would it be possible for you to review this one on Tuesday? Let me know if you can't!


Remove cli reconsent command

Since the PnP management shell app registration is gone, the command cli reconsent doesn't add much value anymore. Let's remove it.

Makes sense. Let's remove this.


Error when resolving STRICT_DNS cluster endpoint FQDN with trailing dot '.'

Description:
Given following envoy.yaml:
static_resources:
  clusters:
  - name: google
    type: STRICT_DNS
    connect_timeout: 0.25s
    load_assignment:
      cluster_name: google
      endpoints:
      - lb_endpoints:
        - endpoint:
            address:
              socket_address:
                address: google.com.
                port_value: 80

envoy:v1.14.6 works fine, on envoy:v.1.16.0 I see DNS refresh rate reset for google.com., (failure) refresh rate 5000 ms error in logs.
Repro steps:
Run:
docker run -it --rm --name envoy --dns-search default.svc.cluster.local --dns-search svc.cluster.local --dns-search cluster.local --dns-opt ndots:5 -v $(pwd)/envoy.yaml:/etc/envoy/envoy.yaml envoyproxy/envoy:v1.14.5 --log-level trace --config-path /etc/envoy/envoy.yaml

you'll see logs that DNS name for strict_dns clusters resolve fine:
[2020-10-15 10:09:35.386][1][debug][main] [source/server/server.cc:178] flushing stats
[2020-10-15 10:09:35.590][1][trace][upstream] [source/common/upstream/strict_dns_cluster.cc:101] starting async DNS resolution for google.com.
[2020-10-15 10:09:35.590][1][trace][upstream] [source/common/network/dns_impl.cc:196] Setting DNS resolution timer for 5000 milliseconds
[2020-10-15 10:09:35.592][1][trace][upstream] [source/common/upstream/strict_dns_cluster.cc:109] async DNS resolution complete for google.com.
[2020-10-15 10:09:35.592][1][debug][upstream] [source/common/upstream/upstream_impl.cc:275] transport socket match, socket default selected for host with address [2607:f8b0:400a:801::200e]:80
[2020-10-15 10:09:35.592][1][debug][upstream] [source/common/upstream/strict_dns_cluster.cc:162] DNS refresh rate reset for google.com., refresh rate 5000 ms

Now run this on latest envoy:
docker run -it --rm --name envoy --dns-search default.svc.cluster.local --dns-search svc.cluster.local --dns-search cluster.local --dns-opt ndots:5 -v $(pwd)/envoy.yaml:/etc/envoy/envoy.yaml envoyproxy/envoy:v1.16.0 --log-level trace --config-path /etc/envoy/envoy.yaml

you'll see logs saying that DNS resolution fails:
[2020-10-15 11:23:25.832][7][debug][main] [source/server/server.cc:190] flushing stats
[2020-10-15 11:23:25.833][7][trace][upstream] [source/common/upstream/strict_dns_cluster.cc:106] starting async DNS resolution for google.com.
[2020-10-15 11:23:25.833][7][trace][upstream] [source/common/upstream/strict_dns_cluster.cc:114] async DNS resolution complete for google.com.
[2020-10-15 11:23:25.833][7][debug][upstream] [source/common/upstream/strict_dns_cluster.cc:174] DNS refresh rate reset for google.com., (failure) refresh rate 5000 ms

Possible root cause:
Possible root cause of this issue is bug in c-ares:v1.16.1, fixed in https://github.com/c-ares/c-ares/commit/ba597817a51790a89020970da982283020312dbf (not released yet).
I've confirmed that there's a regression between c-ares #d7e070e7283f822b1d2787903cce3615536c5610 used in envoy 1.14 and later versions of c-ares (used in evoy 1.15 and forward).
I know this is undocumented feature, but how using FQDN with a trailing dot helps? When running envoy in k8s (especially as a service mesh data plane), it allows you save up to 75% of DNS traffic generated by STRICT_DNS clusters. If you specify cluster endpoint address of google.com envoy (via c-ares) will try to resolve google.com.default.svc.cluster.local, google.com.svc.cluster.local, google.com.cluster.local and finally google.com. When you use trailing dot (google.com.) envoy (via c-ares) will try to resolve just google.com.

@lmarszal do you want to try bump the c-ares dep locally? It might "just work", would be helpful to know.

@htuch yes - it "just works" (https://github.com/lmarszal/envoy/commit/927d4026da8df1e8ddf76b5babbad87d8dbd82dd)

@lmarszal PR welcome, feel free to tag me on it.


Forcing 'chartdata.php' to return the correct 'Content-Type' header

When strict MIME type checking is enabled, the calls to /chartdata.php fail as a Content-Type of text/html is returned. This PR forces a Content-Type of application/javascript.

Removed HHVM from .travis.yml as per #53.


Mobile design voor home & detailpage

Figma Mobile Designs
Mobile design - Home

For the homepage design we wanted to solve the problem that the user has to scroll a lot to get to the bottom of the page. In this design we minimized the amount to scroll to the bottom by implementing a pleasurable carousel that we would like to make with CSS. We have thought out many situations but we will look at this again next week cause we're still missing some things.

Mobile design - Detailpage

For the detailpage design we wanted to give the user/reader a feeling of a newspaper and a clear introduction to each article, which RedPers has implemented but we would like to elevate it. In the next week we will revisit the design for this page and add or change things if we feel its needed.

Both designs feel incomplete yet but we have a good base for now to be worked on throughout this project.

The design for this week is done.


Unexpected error - conditional in if statement has length gt 1

Hello. The code is from the READ.me. I've encountered an error and was able to reproduce the issue using an example provided in the documentation. The issue is when a value is provided to the year, from, or to parameters calendR errors out.
I think the issue is a result of changes in R versions. Later versions now result in an error when the condition within an if() statement has a length gt 1.
A possible solution could be to perform a multi-stage conditional check, such as:

check if special.days is of length one
then, if ^ is true, check if special.days is equal to weekend

I added tolower(special.days) for robustness
if(length(special.days) == 1 && tolower(special.days) != "weekend") ...

Error Message
Error in if (special.days != "weekend") { : the condition has length > 1

Reproducible Example
# Vector of NA which length is the number of days of the year or month
myfills <- rep(NA, 365)
# myfills <- rep(NA, 366) # For leap years

# Add the events to the desired days
myfills[c(1:4, 50, 300:315)] <- "Holidays"
myfills[16] <- "Birthday"

# works
calendR::calendR(
  special.days = myfills,
  special.col = 2:3,     # Add as many colors as events
  legend.pos = "right"  # Add a legend if desired
)

# fails
calendR::calendR(
  year = "2024",
  special.days = myfills,
  special.col = 2:3,     # Add as many colors as events
  legend.pos = "right"  # Add a legend if desired
)

Session Info
R version 4.3.1 (2023-06-16)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Linux Mint 21.2

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.10.0
LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.10.0

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8       LC_NAME=C
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C

time zone: America/Chicago
tzcode source: system (glibc)

attached base packages:
[1] stats     graphics  grDevices datasets  utils     methods   base

loaded via a namespace (and not attached):
 [1] gtable_0.3.4       jsonlite_1.8.7     dplyr_1.1.3        compiler_4.3.1     renv_1.0.3         tidyselect_1.2.0
 [7] Rcpp_1.0.11        gridGraphics_0.5-1 magick_2.8.0       ggimage_0.3.3      ggplotify_0.1.2    ggfun_0.1.3
[13] scales_1.2.1       fastmap_1.1.1      ggplot2_3.4.3      R6_2.5.1           generics_0.1.3     yulab.utils_0.1.0
[19] gggibbous_0.1.1    forcats_1.0.0      tibble_3.2.1       munsell_0.5.0      lubridate_1.9.2    calendR_1.2
[25] pillar_1.9.0       rlang_1.1.1        utf8_1.2.3         cachem_1.0.8       fs_1.6.3           timechange_0.2.0
[31] memoise_2.0.1      cli_3.6.1          withr_2.5.0        magrittr_2.0.3     digest_0.6.33      grid_4.3.1
[37] lifecycle_1.0.3    vctrs_0.6.3        data.table_1.14.8  glue_1.6.2         suncalc_0.5.1      fansi_1.0.4
[43] colorspace_2.1-0   tools_4.3.1        pkgconfig_2.0.3

@parkerbailey: Can you reproduce this error with calendRio?
I tried @SaintRod's example and got the following result:

If you encounter issues with calendRio, please let me know. I'll happily fix things there and provide the solution as a PR here, if there is interest.

@mschilli87 Yes, I can replicate this error with CalendRio.
I did some more digging, and it has something to do with how if handles arrays. According to this post, if the if statement that handles this error on line 393 is replaced with an ifelse, it may remedy this issue, or at least give us the next one down stream.
if(special.days != "weekend") {
        stop("special.days must be a numeric vector, a character vector of the length of the number of days of the year or month or 'weekend'")
      } else {
        wend <- FALSE
      }

could perhaps be changed to
ifelse(special.days != "weekend") {
        stop("special.days must be a numeric vector, a character vector of the length of the number of days of the year or month or 'weekend'"),
        wend <- FALSE
}

I'm not certain if this would work as I have no way to test it at the moment, but it's the best idea I've found so far.

Could you provide me with some copy/paste-able code that triggers this in calendRio, along with a full session info? Then I'll have a look and push a fix over the weekend. Once I can reproduce it, it should be easy to fix.

Example code:
events <- rep(NA, 365)

events[222:226] <- "Event 1"
events[245] <- "Event 2"

calendR(
  special.days = events,
  special.col = c("pink", "lightblue")
)

Session info:
R version 4.4.1 (2024-06-14 ucrt)
Platform: x86_64-w64-mingw32/x64
Running under: Windows 10 x64 (build 19045)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.utf8  LC_CTYPE=English_United States.utf8    LC_MONETARY=English_United States.utf8
[4] LC_NUMERIC=C                           LC_TIME=English_United States.utf8
system code page: 65001

time zone: America/New_York
tzcode source: internal

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

other attached packages:
 [1] calendRio_0.2.0  calendR_1.2      xts_0.14.1       zoo_1.8-12       dygraphs_<IP_ADDRESS> scales_1.3.0     sf_1.0-19
 [8] spData_2.3.3     tmap_3.99.9002   ggthemes_5.1.0   kableExtra_1.4.0 lubridate_1.9.3  forcats_1.0.0    stringr_1.5.1
[15] dplyr_1.1.4      purrr_1.0.2      readr_2.1.5      tibble_3.2.1     tidyverse_2.0.0  tidyr_1.3.1      ggpubr_0.6.0
[22] ggplot2_3.5.1    readxl_1.4.3

loaded via a namespace (and not attached):
  [1] RColorBrewer_1.1-3      rstudioapi_0.17.1       jsonlite_1.8.9          wk_0.9.4                magrittr_2.0.3
  [6] magick_2.8.5            farver_2.1.2            rmarkdown_2.29          fs_1.6.5                vctrs_0.6.5
 [11] base64enc_0.1-3         terra_1.7-83            rstatix_0.7.2           htmltools_<IP_ADDRESS>       leafsync_0.1.0
 [16] polynom_1.4-1           broom_1.0.7             raster_3.6-30           cellranger_1.1.0        s2_1.1.7
 [21] gridGraphics_0.5-1      Formula_1.2-5           sass_0.4.9              KernSmooth_2.23-24      bslib_0.8.0
 [26] htmlwidgets_1.6.4       stars_0.6-7             cachem_1.1.0            lifecycle_1.0.4         pkgconfig_2.0.3
 [31] cols4all_0.8            Matrix_1.7-1            R6_2.5.1                fastmap_1.2.0           digest_0.6.37
 [36] colorspace_2.1-1        leafem_0.2.3            pkgload_1.4.0           crosstalk_1.2.1         lwgeom_0.2-14
 [41] labeling_0.4.3          spacesXYZ_1.3-0         fansi_1.0.6             timechange_0.3.0        abind_1.4-8
 [46] mgcv_1.9-1              compiler_4.4.1          microbenchmark_1.5.0    proxy_0.4-27            bit64_4.5.2
 [51] withr_3.0.2             backports_1.5.0         carData_3.0-5           DBI_1.2.3               ggsignif_0.6.4
 [56] tmaptools_3.1-1         leaflet_2.2.2           classInt_0.4-10         tools_4.4.1             units_0.8-5
 [61] leaflegend_1.2.1        glue_1.8.0              nlme_3.1-166            grid_4.4.1              rsconnect_1.3.3
 [66] ggimage_0.3.3           generics_0.1.3          gggibbous_0.1.1         gtable_0.3.6            leaflet.providers_2.0.0
 [71] tzdb_0.4.0              class_7.3-22            data.table_1.16.2       hms_1.1.3               sp_2.1-4
 [76] xml2_1.3.6              car_3.1-3               utf8_1.2.4              pillar_1.9.0            yulab.utils_0.1.8
 [81] vroom_1.6.5             splines_4.4.1           lattice_0.22-6          bit_4.5.0               tidyselect_1.2.1
 [86] knitr_1.49              suncalc_0.5.1           svglite_2.1.3           xfun_0.49               stringi_1.8.4
 [91] ggfun_0.1.7             yaml_2.3.10             evaluate_1.0.1          codetools_0.2-20        ggplotify_0.1.2
 [96] cli_3.6.3               systemfonts_1.1.0       munsell_0.5.1           jquerylib_0.1.4         dichromat_2.0-0.1
[101] Rcpp_1.0.13-1           png_0.1-8               XML_3.99-0.17           parallel_4.4.1          viridisLite_0.4.2
[106] e1071_1.7-16            crayon_1.5.3            rlang_1.1.4

Reproduced. Will work on a fix.

@parkerbailey:
I have a fix that 'works'.
However, your code would't work on this either because (as per the documentation and error message) 'special.days must be a numeric vector, a character vector of the length of the number of days of the year or month or 'weekend''.
In your case, events has a length of 365, but the default (i.e. current) year, 2024, is a leap year with 366 days.
The following would work with my fixed version:
calendR(
  year = 2025,
  special.days = events,
  special.col = c("pink", "lightblue")
)

As would the following:
events <- rep(NA, 366)

events[222:226] <- "Event 1"
events[245] <- "Event 2"

calendR(
  special.days = events,
  special.col = c("pink", "lightblue")
)

Note, however, that both of the above also work on the latest release of both, calendRio and calendR itself. The 'bug' only masks the 'correct' error message telling you why it doesn't work.
I'll release calendRio v 0.2.1 with the fix either way these days and will open a PR here as well, but you shouldn't need to wait for that to generate your calendar(s) as long as you provide the correct number of days for the year of interest.
Could you please test and confirm?

Gah! It always comes down to a leap year or a timezone with these things. I appreciate the help, this fix works perfectly. Thanks much!

events_2024 <- rep(NA, 366) # 2024 is a leap year, thus 366 days

events_2024[122] <- "Event1"
events_2024[145] <- "Event2"

calendR(
  special.days = events_2024,
  special.col = c("pink", "lightblue")
)


tidy up the readme

I just came across this repo by way of https://github.com/paperswithcode/sota-extractor/issues/20 and noticed a couple typos in the README. This PR cleans up the typos I found.
Thanks for open-sourcing this project!

Thanks @zeke.


2247 bug multiple swagger doc configuration doesnt works as expected

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

v7.13.5
GitHub release

Your semantic-release bot :package::rocket:


SPEC: Lifecycle dates in TEA leaf

The current OpenAPI spec only provides an end_of_life date for a TEA leaf. This single date might be a little bit reductive. While the CLE specification provides a lot of dates, for the purpose of TEA IMHO two dates should be reported:

the end of security updates: after this date no further releases of the TEA leaf will appear. Users still can continue using that version with a slightly increased risk. If something happens, they will need to upgrade to a newer leaf of the same product.
the end of security checks: after this date the producer will not even accept new security reports for that leaf nor check if this leaf is affected by CVEs of other leafs of the same product. This is the real End-of-Life.

In Apache Log4j leafs will correspond to MINOR versions (2.23.x, 2.24.x, …). Since we are very strict on what constitutes a minor version bump (a single new public method in a public package forces a minor version bump), we have minor releases every 3 to 6 months. Security updates are only published for the latest minor version. In practice this mean that 90% of our user base is on a TEA leaf with no security updates.
I think that it is fine for user to miss the end of security updates (especially when semver is involved), but tools like Dependency Track could take that into account and:

warn a user, if he uses a TEA leaf with no security updates,
warn a user, if he uses an outdated version of a TEA leaf with security updates (the patch release might be a security update not yet announced),
don't warn a user, if he uses the latest patch release of a TEA leaf with security updates.

https://github.com/CycloneDX/transparency-exchange-api/blob/6b90fd4b82b8c253551ee05f8f5ae601be2ea031/spec/openapi.json#L997-L1038

I think this is a fascinating observation @ppkarwasz.
I wonder whether this is restricted purely to "security" updates as you explained - for COTS (Commercial Of The Shelf) Software, this might be phrased more in terms of:

Last date updates will be provided
Extended Support End Date
etc..

This possibly is a broader question to consider.
FYI @oej

The work to enumerate this is happening elsewhere - in the CLE. We need to have a CLE object somewhere, I think it's in the leaf. It may also be an attestation. If so, I want a flag in the LEAF indicating something along the lines "STAY AWAY FROM USING THIS RELEASE!!!!"

Is there any output from the CLE Working Group at this time @oej ? Anywhere we can cross-reference yet?

Not really. Need to jump into one of their meetings to check their time plan.

The CLE workgroup has a working Google Doc.
There is also a preregistered cdx:lifecycle Namespace Taxonomy that you can use in CycloneDX documents. The Taxonomy is administered by the CycloneDX Core Working Group.


Install not working on MacOS 11.2.1

Hi
Seems very exciting, but
pip install pyvkfft

returns
clang: error: invalid argument '-bundle' not allowed with '-dynamiclib'

I've only tested on macOS 10.13.6 (clang with Xcode 9.2).
Can you try after removing the --shared option in setup.py ?

@vincefn  As you suggested, I changed
        extra_link_args = ['-Wl,-framework,OpenCL', '--shared']

to
        extra_link_args = ['-Wl,-framework,OpenCL']

at line 70 (in locate_opencl).
Fixed, thx

I can also confirm on both macos11 and 10.15 that removing --shared is necessary to build.

Fixed by e843fdd443. The --shared may still be necessary on older Xcode/llvm compilers


RUMM-870 Make sure we get the current network state on start

What does this PR do?
Ensure we retrieve the current network status on start
Motivation
One of our customer experiences a weird behavior on some (Samsung) devices : the inital value is never received, and only when turning the airplane mode on and off does the callback get triggered.

Codecov Report

Merging #407 (ef3f2b2) into release/1.6.1 (6aadcfe) will increase coverage by 0.09%.
The diff coverage is 80.00%.

@@                 Coverage Diff                 @@
##             release/1.6.1     #407      +/-   ##
===================================================
+ Coverage            91.48%   91.57%   +0.09%
- Complexity            1167     1171       +4
===================================================
  Files                  137      137
  Lines                 3899     3903       +4
  Branches               454      455       +1
===================================================
+ Hits                  3567     3574       +7
+ Misses                 192      190       -2
+ Partials               140      139       -1

Impacted Files
Coverage Δ
Complexity Δ

...e/internal/net/info/CallbackNetworkInfoProvider.kt
92.86% <80.00%> (-1.88%)
13.00 <0.00> (+1.00)
:arrow_down:

...internal/tracking/JetpackViewAttributesProvider.kt
73.68% <0.00%> (-15.79%)
8.00% <0.00%> (-1.00%)

...droid/rum/tracking/ActivityViewTrackingStrategy.kt
83.33% <0.00%> (ø)
10.00% <0.00%> (ø%)

...l/net/info/BroadcastReceiverNetworkInfoProvider.kt
81.05% <0.00%> (ø)
28.00% <0.00%> (ø%)

...oid/src/main/kotlin/com/datadog/android/Datadog.kt
92.39% <0.00%> (+1.09%)
26.00% <0.00%> (+1.00%)

...ernal/instrumentation/gestures/GesturesListener.kt
91.23% <0.00%> (+3.51%)
45.00% <0.00%> (+2.00%)

...nal/tracking/AndroidXFragmentLifecycleCallbacks.kt
93.02% <0.00%> (+4.65%)
14.00% <0.00%> (+1.00%)


Env settings fix

Description of changes:
fix: Remove spurious character causing syntax error in script
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

Wrong submission


Make the 'clear' class work as a clearfix as well.

Make the clear class usable on the parent class so you don't have to create a new div just to clear the floats.

Newest Commit: .clear now acts as clearfix for both parents of floated items and the last floating item you want to clear. .clear-left and .clear-right do not have this functionality.


what to do with the end caps not aligning

some people think it's glaringly bad, some dont notice, some will never see it at the tiny size they'll usually see it, other's might print it on a poster and be appalled. a couple questions:

if we solve it, then we cant just point to the Dinish font
if we solve it, how will we distribute the glyphs/shapes

Upstream issue?
Maybe the Dinish font creators are open to making such changes?

While visual adjustments make sense for a font, which is visually adjusted to work best at typical reading sizes, for a word mark that is often drawn at large “display” sizes, following a more rigorously geometric solution may be preferable.
Obviously in this case the canonical version would be the SVG and distributed that way.

Agreeing with @mxdvl here — this was the one thing that bothered me using Dinish that I had to fix (though it is only following in the footsteps of original DIN fonts 😄).
While I think it's very cool to be able to recreate this in CSS with very little code, it does also mean it might look a little different based on the browser (font metrics are not always consistent across browsers) or if the fontr fails to load, and as such, two things come to mind:

it's okay to recreate the logo with the font as-is; it's a detail that can be ignored if you want to play around with it.
a "source of truth" SVG version would make sense: it is a logo after all, and as such I expect it to be used a lot more as SVG (or PNG) than an embedded HTML/CSS block of code, which means that the typeface changes can be baked into that "true" logo.

Providing SVG versions means that folks who would like to style if still can do so with CSS, meaning you could add, for example, the version number with a live piece of text using Dinish, but with a "imposed" set of paths for the CSS letters. Anyways I'm basically just repeating Max's point here!
If keeping it as editable text is essential, then I like the idea proposed by @romainmenke — it would be fairly easy to add either an alternate glyph, or a ligature, to correct this issue, but of course, that would require the proper CSS to be enabled so you still get the problem with very basic styling, so the fork might be the way to go in this case?

Works for me, but better ask @chriskirknielsen for instance.

@itsjavi or @argyleink can one of you update the figma file with the latest font?
https://github.com/playbeing/dinish/releases/tag/v4.003 the caps are aligned now

@itsjavi or @argyleink can one of you update the figma file with the latest font?
https://github.com/playbeing/dinish/releases/tag/v4.003 the caps are aligned now.
I opend a pull request #55 with the new svg using the new font

done!


Ranking with_same through association

Here's my setup
# area.rb
class Area < ActiveRecord::Base
  has_many :tasks
end

# task.rb
class Task < ActiveRecord::Base
  belongs_to :area
  has_many :project_tasks
end

# project_task.rb
class ProjectTask < ActiveRecord::Base
  belongs_to :task
  belongs_to :project # not relevant for this example, for for completeness sake
  has_one :area, through: :task

  ranks :area_order, with_same: :area_id # Doesn't work because there's not an area_id column on project_tasks
end

I'm not sure how to solve this.  I could cache area_id on the project_task, but that seems messy, and I'd then have to deal with making sure that always stays in sync.  Is there anyway to use RankedModel's with_same feature with a joined attribute?
Also, thanks for making this awesome gem!  It's saved me tons of time.

Closing this for now. Perhaps there would be a way if the default scope included a join? You've probably moved on after 10 years :D

This is something I'm looking to figure out as well, it doesn't look like adding a default scope with the join affects the query that is being produced.

True, as I think we unscope on purpose to keep our queries clean. I could imagine opening things up to scope could get out of hand pretty quickly. Still, would be an interesting exercise. Perhaps it'd be simpler to try it out on my other gem that has a much more straightforward codebase: https://github.com/brendon/positioning?

Perhaps a virtual column could work?

I'll take a look at the other gem. I think realistically for this, I'll end up copying the ID on the parent to the child and keeping them in sync with callbacks.


Dev es struct#10Es

Establishes client side directory structure with functional routing between views

Closes #10 and closes #18
Great job Philip!

Test closes #10


imported the md5 function instead of the whole object-hash

Fixes #30
Checks

[x] resulted hash/token is the same when run in the browser AND on the server (node)
[x] All tests are passing yarn test
[x] The library decreased in size

Thank you @Ekep-Obasi! Your PR is ready to be merged.
The only thing left is if you could sign your commits. See here how https://docs.github.com/en/authentication/managing-commit-signature-verification/about-commit-signature-verification

Thank you @GabrielCTroia
I have signed the commit

Merged 🎉🚀! Thank you so much @Ekep-Obasi!
Could give us a star as well please so we can bump the rep up a bit!🙏

Yeah sure ☺


JSQMessagesLoadEarlierHeaderView not call

New issue checklist

[x] I have read the README, documentation, and FAQ.
[x] Contributing guidelines confirmation: ____
[x] I have searched existing issues and this is not a duplicate.

General information

JSQMessagesViewController version:
iOS version:
Devices/Simulators:
Reproducible in the demo project? (Yes/No):
Any related issues:

What happened?
func headerView(_ headerView: JSQMessagesLoadEarlierHeaderView!, didPressLoad sender: UIButton!) {}

not call with, im using swift 3.

thank @jessesquires i solved it


added group property

Update to add the group name to be returned. Is this the only place I need to update?
@dmfenton

awesomesauce

can you update the change log and package.json please :)


bug: Windows auto session saving in nvim config directory or path with dash by LazyVim has stopped working

Did you check docs and existing issues?

[x] I have read all the LazyVim docs
[x] I have updated the plugin to the latest version before submitting this issue
[x] I have searched the existing issues of LazyVim
[x] I have searched the existing issues of plugins related to this issue

Neovim version (nvim -v)
0.10.2
Operating system/version
Windows 11
Describe the bug
LazyVim 13.2.0 latest sessions are not created in /sessions. This worked recently and then stopped working on Windows.
Steps To Reproduce

CD to AppData\Local\nvim or in my case AppData\lazy-nvim
Open Neovim with LazyVim latest on Windows
Open some files
qq
Missing seesion file in /sessions

Expected Behavior
A session file created. I suspect from the error it is the "-" in the path somehow leaking through?
Error:
Error detected while processing VimLeavePre Autocommands for "*":
Error executing lua callback: vim/_editor.lua:431: VimLeavePre Autocommands for "*"..script nvim_exec2() called at VimLeavePre Autocommands for "*":0: Vim(mksession):E190: Cannot open "C:\Users\me\AppData\Local\lazy-nvim-data\sessions\C%Users%me%AppData%Local%lazy-nvim%%^[[31;1mSet-PSReadLineOption% ^[[0mC%Users%me%OneDrive%Documents%PowerShell%Microsoft.PowerShell_profile.ps1%164^[[0m
.vim" for writing
stack traceback:
        [C]: in function 'nvim_exec2'
        vim/_editor.lua:431: in function 'cmd'
        ...nvim-data/lazy/persistence.nvim/lua/persistence/init.lua:70: in function 'save'
        ...nvim-data/lazy/persistence.nvim/lua/persistence/init.lua:58: in function <...nvim-data/lazy/persistence.nvim/lua/persistence/init.lua:43>

I tried CMD.exe to see if that mattered
Error detected while processing VimLeavePre Autocommands for "*":
Error executing lua callback: vim/_editor.lua:431: VimLeavePre Autocommands for "*"..script nvim_exec2() called at VimLeavePre Autocommands for "*":0: Vim(mksession):E190: Cannot open "C:\Users\me\AppData\Local\lazy-nvim-data\sessions\C%Users%me%AppData%Local%lazy-nvim%%Microsoft Windows [Version 10.0.22631.4169]
.vim" for writing
stack traceback:
        [C]: in function 'nvim_exec2'
        vim/_editor.lua:431: in function 'cmd'
        ...nvim-data/lazy/persistence.nvim/lua/persistence/init.lua:70: in function 'save'
        ...nvim-data/lazy/persistence.nvim/lua/persistence/init.lua:58: in function <...nvim-data/lazy/persistence.nvim/lua/persistence/init.lua:43>

Those session paths have weird shell output, so it seems your vim.o.shell is wrongly configured.
I'll update persistence to show an error in this case, but either way, this is a problem in your config.

It seems that persistence is already checking errors for git branch.
Your vim.o.shell seems to not even return exit codes > 0.


AVS cannot go into Speaking state

Hi AVS team,

SDK 1.11
ARM based embedded linux
RaspberryPi3

No sure if it's related to case #948
But I actually test it for case#948 , but the symptom is a little bit as case#948.
--> continue to play this youtube video:  https://www.youtube.com/watch?v=BNZGrN8E_EM
After hours, AVS will not go into Speaking state. Sometimes, it only stop at Listening state, or Thinking state.
Will not return normal after stopped test for hours.
While this symptom happens, it still can see History from APP, so it seems it will still send audio to the cloud site.
attached log is from Pi3, the log is huge under DEBUG9, you can find last Speaking at line 2018915
1228_pi - Copy.zip

This log is from our own DUT. Almost the same symptom, but not sure if it's the same root cause.
You can find last speaking at lint 712029
It's run about 6 hours (the log is huge, so I removed the previous lines)
no-speaking-DUT.zip

Hi @zeusshuang,
The Speak directive is being received, but the error starts at
712838 2018-12-28 17:34:16.882 [  3] E CapabilityAgent:handleDirectiveFailed:reason=messageIdNotFound,messageId=77b259c3-b09c-4ab8-bfee-70d4155a0216
This causes the Speak to be canceled. It looks to be related to the TemplateRuntime directive which comes in shortly after the Speak. Did you see these errors in previous versions of the SDK?

Hi @kjkh ,
No, this symptom is from SDK 1.11.

Thanks for opening this issue.  It has been fixed in our v1.12 release.  Thanks!


Reconstruct slc from inteferograms

fix two issues:

#4 Implemented in slc.py
#11 Implemented in examples/scripts, with README file, example SLURM script, and example Python file.

Hi @FreekvanLeijen, this PR is ready for review. After merging #15, all the changed files now are relevant for your review.
Just let me know if you need any help.

Hi @meiertgrootes, this is the PR I talked about. I implemented a function for reconstructing radar imgs from interferograms (conj multiplication of two radar images), and provided slurm + python example scripts. Can you give it a look? Thanks!

Thanks @meiertgrootes for the review! I made changes according to your comments. Only for the suggestion on RE pattern in read_metadata, I doced it in issue #14. I would tend to postpone the implementation of this one, because currently in pyDePSI there are too few cases we used metadata. I would wait for more use cases and decide on an optimal way.

Hi @FreekvanLeijen, thanks a lot for the review! Just to check, do you have more comments? I am implementing ps_selection now. It would be nice if this PR can be merged before I open another one.

Hi @FreekvanLeijen, thanks a lot for the review! I adapted most of your comments!
There are several things I decided to put them into the todo lists, they are:

Issues related to further improvements of read_metadata, see issue #14
Add "mother" image and h2ph values, see issue #22
Terminology for the reference image, see issue #23
Add a from_zarr function in sarxarray to work with the SLC zarr stac, see this issue (in sarxarray repo)

With this info, would you like to take another look and see if there are other things you want to add? Or some things you think should be fixed in this PR?

Thanks @FreekvanLeijen for approval, will merge.


Use Splash with Tor

I try to build proxy settings of splash. I assign Tor or Polipo port address to set_proxy, but it doesn't work. I get 504 error:
 function main(splash)
            local host = "localhost"
            local port = 8123
            --local type = "SOCKS5"

            splash:on_request(function (request)
               request:set_proxy{host, port}
        end)

        splash:go(splash.args.url)
        splash:wait(0.5)
        local image = assert(splash:png{render_all=true})
        return {png=image}
    end
    """

    url = 'https://www.torproject.org/'

In polipo.config(9150 is tor port):
socksParentProxy = localhost:9150
diskCacheRoot=""
#socksProxyType = socks5

In settings.py:
HTTP_PROXY = 'http://<IP_ADDRESS>:8123'
DOWNLOADER_MIDDLEWARES = {
    'thefork.middlewares.RandomUserAgentMiddleware': 400,
    'thefork.middlewares.ProxyMiddleware': 410,

How can I fix this, or is there an easier way to use splash with Tor? Please help :(

Are you running tor in the same Docker container as Splash? If not, it is likely not available at localhost address because localhost is a localhost of a container, not a localhost of your machine.
If you're running tor in a separate Docker container then you can make a link between them.
https://github.com/TeamHG-Memex/aquarium has tor set up, you can check configs there.
See also: https://github.com/scrapinghub/splash/issues/234 and https://github.com/scrapinghub/splash/issues/268.

I have installed aquarium and start it with "sudo docker-compose up" and Tor is 1:

And my port status:

Haproxy.cfg settings:
userlist users
    user ceylan_meric insecure-password XXX

defaults
    log global
    mode http

# visit <IP_ADDRESS>:8036 to see HAProxy stats page
listen stats
    bind *:8036
    mode http
    stats enable
    stats hide-version
    stats show-legends
    stats show-desc Splash Cluster
    stats uri /
    stats refresh 10s
    stats realm Haproxy\ Statistics
    stats auth    XXX

# Splash Cluster configuration
frontend http-in
    bind *:8050

    # http basic auth
    acl auth_ok http_auth(users)
    http-request auth realm Splash if !auth_ok
    http-request allow if auth_ok
    http-request deny

backend splash-misc
    balance roundrobin
    server splash-0 splash0:8050 check fall 15
    server splash-1 splash1:8050 check fall 15
    server splash-2 splash2:8050 check fall 15

Tor.ini settings:
; enable tor for all requests
[proxy]
host = tor
;host = <IP_ADDRESS>
port = 9150
type = socks5

Settings.py:
SPLASH_URL = 'http://localhost:8050/'
DUPEFILTER_CLASS = 'scrapy_splash.SplashAwareDupeFilter'
HTTPCACHE_STORAGE = 'scrapy_splash.SplashAwareFSCacheStorage'

DOWNLOADER_MIDDLEWARES = {
    'scrapy_splash.SplashCookiesMiddleware': 723,
    'scrapy_splash.SplashMiddleware': 725,

My Spider:
script = """
        function main(splash)
            splash:on_request(function(request)
            request:set_proxy{
                host = "localhost",
                port = 9150,
            }
        end)
            assert(splash:go(splash.args.url))
        """

And when I run spider i get 401 error:
DEBUG: Crawled (401) <GET https://www.torproject.org/ via http://localhost:8050/execute> (referer: None) ['partial']
2017-02-18 16:10:49 [scrapy.spidermiddlewares.httperror] INFO: Ignoring response <401 https://www.torproject.org/>: HTTP status code is not handled or not allowed

Sorry to put everything on here. But, I look at your link, couldn't solve.I am confused what am I doing wrong? Or what should I make sure to run this?

kmike , there is also this error happen when I run "docker-compose up":
tor_1      | WARNING: no logs are available with the 'none' log driver
I think problem tor is not running here. Does Aquarium has its own Tor ? If it is, I don't have to change host and port settings in tor.ini, because Aquarium's Tor has no relationship with my local Tor browser( port= 9150). How can I sure Aquarium's Tor is running ?

@ceylanMeric
request:set_proxy{host = "localhost", port = 9150}
^^ this is still incorrect - Tor is not available at Splash localhost, it is executed in a separate Docker container. It should be something like
request:set_proxy{host = "tor", port = 9050, type='socks'}
You can also just pass 'proxy=tor' argument to the request - Aquarium provides tor proxy profile by default: https://github.com/TeamHG-Memex/aquarium/blob/master/{{cookiecutter.folder_name}}/proxy-profiles/tor.ini

@kmike
Still get 401 error:
[scrapy.spidermiddlewares.httperror] INFO: Ignoring response <401 https://www.torproject.org/>: HTTP status code is not handled or not allowed
also in haproxy.cfg I have username and password
  user ceylan_meric insecure-password XXXXXX
So, do I need to send userame and password like this:
splash:on_request(function(request)
            request:set_proxy{
                host = "tor",
                port = 9050,
                type = 'socks'
                --username = "ceylan_meric",
                --password = "XXXXXXXX",
            }
        end)

In settings.py:
SPLASH_URL = 'http://<IP_ADDRESS>:8050/'
So, my spider listen to splash. But always 401 error happen.
and this error might cause problem:
tor_1 | WARNING: no logs are available with the 'none' log driver
I'm not sure docker-compose up run Tor.

@ceylanMeric Did you ever manage to solve this issue?

Closing due to a lack of feedback.


[crashing when I attempt to click on the emoji button]

Description of  Bug
It shows a you died and got slaughtered by an error level  9000.... exactly after I click on either one of both the emoji and gif buttons.
Discord Version
Stable
Additional Context
I don't have any plugins installed. I only have one theme installed (clear-vision v6.1.3).
I have restarted discord, I have also repaired better discord, and have tried reinstalling.
nothing still works. :(
What shows when I click on the emoji/gif button:

there's already a issue on this
Look at this

Duplicate of literally the previous issue #1116


Incorrect default units

Describe the bug
Units with default units are defaulting to the wrong units.
To Reproduce
Steps to reproduce the behavior:

Go to https://metadata-entry.allenneuraldynamics.org/
Select "rig" schema and scroll to Mouse Platform
Select Disc for mouse platform
See that default unit does not show up (supposed to be cm)

Expected behavior
The units rendered in the GUI should be defaulting as defined in aind-data-schema
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

@mekhlakapoor Please add details

This seems to be resolved. Default units are showing up as expected for entire rig schema (added devices and checked units for each). Also passed through a couple of the other schemas, and played around with versions. We can close this ticket once @jtyoung84 does a check

I'll close this ticket. Helen spotted some issues with defaults in nested fields, but she's working on that in a separate ticket.


[ISSUE#272]Kop unit test testLoadCustomConfig Failed

#272
Missing configuration in kop_custom.yaml: batchingPartitionSwitchFrequencyByPublishDelay: 100

Bump. Can this please be merged?


Setup workspace.

@GZGavinZhao melos is not removed, but the generated pubspec_overrides.yaml conflicts with workspace resolution.


Automatic tagging for worker instances in ASG

Worker instances are now automatically tagged with a Name by the Auto Scaling Group at launch time. This makes it easy to find worker instances in the AWS Console as well as provides tag consistency with the other instances (Scheduler and Webserver).
More info about the Tag list property of AutoScalingGroups: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-tags.html
Without this change it's hard to identify worker instances in the AWS console as the Name field appears blank.

Thanks @ferdingler! Before merge this I'm just going to be sure that this is also going to the develop branch so we don't have a regression later! ;-)

Ah my bad, should I have done the pull request to the develop branch?
By the way, I also tested this change in my AWS account and it worked flawless.

Ohh don't worry, the develop branch is now so different from master that I'll merge your change and port it to the develop branch myself :-)

Any update on this pull request?

Yes! Merging now. I thought I could race the develop branch into a release by the end of august but I clearly didn't so gotta keep master rolling in the meantime. Thanks again!


Fix documentation of port API

The patch fixes both the markdown documentation and the doc comment
in the port header.
The patch also removes an internal configuration macro guard
exposed by the public port header.
JerryScript-DCO-1.0-Signed-off-by: Akos Kiss<EMAIL_ADDRESS>

LGTM


Set v3.0.2

What does this PR do?
Sets the version to 3.0.2.
How should it be tested manually?
yarn test
# or
npm test

Pull Request Test Coverage Report for Build 36

0 of 0 (NaN%) changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build 32:
0.0%

Covered Lines:
233

Relevant Lines:
233

💛  - Coveralls


Add a quick start section for docs

Although we have a getting started section with Kind & Cloud clusters, for those who need to quickly POC KubeSlice locally/on cloud we also have scripts under the https://github.com/KubeSlice/examples folder. They can be ramped up quickly and will also be able to demonstrate the value prop for KubeSlice by creating additional slices, if required.
We need to have a separate page on the KubeSlice docs to draw attention to this since they need not go through the entire process of setting up manually if they have the pre-requisites installed. This will also require a change on the sidebars to reflect the page after creation.

@divya-mohan0209 Can I try this?

Hey @sayantani11 , yes sure!

@divya-mohan0209 I was looking through the project and was trying to understand the requirements. But can you like be more specific on what we want? Like what should that separate page consist? I hope I am able to convey what I am not understanding here, sorry if I am not making sense😅

Good question. There's a repo in the KubeSlice GitHub org - https://github.com/kubeslice/examples.
What this folder contains are scripts that set up a Kubernetes cluster using KiND on EC2/local machines along with KubeSlice + the iPerf app. If you've gone through the setup process from documentation yourself, you'd be aware that this is a fairly long drawn process & for anyone starting off this is intimidating. The scripts within this repository just need to be executed and they will automatically create + walk you through each of the components for better understanding.
This is a better way to quickly start up & gain guided experience & is what I wanted for the quickstart section to demonstrate.
Does that clarify?

Additionally, a good way to start off the actual writing process is

Try out the KiND/EC2 installation yourself without the script
Try it with the script under the repo.
Understand the value prop & then try to document the journey for #2.

@divya-mohan0209 So I finally was able to understand the entire thing!! Thanks for clarifying, that explanation basically did it all🤗 I will document the thing asap!

@sayantani11 did we progress on this?
If not, @pdorbala and I will work with someone else for this.

@divya-mohan0209 @pdorbala
Let me work on this if not resolved yet

Installing KubeSlice via KubeSlice-cli almost serves as a quick-start guide. So, we don't need a quick-start guide for OSS.
Ref: https://kubeslice.io/documentation/open-source/1.0.0/install-kubeslice/kubeslice-cli/install-kubeslice


Add lines to see the correct "scale of the 'rings'" changing the wind…

…ow size
THIS PROJECT IS IN DEVELOPMENT MODE. Any pull requests should merge to branch dev, otherwise will be rejected immediately.
Describe your changes
Add lines to see the correct "scale of the 'rings'" changing the window
Issue ticket number and link
#1046
Checklist before requesting a review

[x] I have performed a self-review of my code.
[ ] If it is a core feature, I have added thorough tests.
[x] I have checked readme and add important infos to this PR (if it needed).
[x] I have added/adapted some tests too.

@halx99
Merge it first and test the ring example again (youb will see the different radius resizing the window)

removed: PR #1054 is better


Uncaught invalid setValue parameters   (VariableDefinition.js:131)

Project Details are :
https://paste.apache.org/cpo8y
Test case is available on VDI.
Go to Inventory from Select in Menu
Go to PSSM -> Concession from Setups in Menu
File : com/dbz/modules/Common/dbzConcessionMaster.mxml
Fill all fields and then click save button

This is a side-effect of #811

@aharui Thank u so much Issue has been resolved