dsBase and dsBaseClient 6.3.4 - RC4 (release candidates 4)

This is the third release candidate (RC3) for dsBase and dsBaseClient 6.3.4 are available.

6.3.4-RC4 contains a reworking of “corTestDS.R” to workaround noLD issue on Mac.

Thanks for the update, BTW I tried RC4 version using local .tar.gz, yet I still encounter this error (which wasn’t present in 6.3.0 and before that).

 object '.Random.seed' not found[1] "Histogram of Age..."
  Aggregated (exists("Age", D)) [========================================================] 100% / 0s
  Aggregated (classDS("D$Age")) [========================================================] 100% / 0s
  Aggregated (histogramDS1(D$Age,1,3,0.25)) [============================================] 100% / 0s
Error:
! There are some DataSHIELD errors:
x study1: Command 'histogramDS1(D$Age,1,3,0.25)' failed on 'study1': Error while evaluating 'dsBase::histogramDS1(D$Age, 1, 3, 0.25)' -> Error in
  dsBase::histogramDS1(D$Age, 1, 3, 0.25) : object '.Random.seed' not found

x study2: Command 'histogramDS1(D$Age,1,3,0.25)' failed on 'study2': Error while evaluating 'dsBase::histogramDS1(D$Age, 1, 3, 0.25)' -> Error in
  dsBase::histogramDS1(D$Age, 1, 3, 0.25) : object '.Random.seed' not found

x study3: Command 'histogramDS1(D$Age,1,3,0.25)' failed on 'study3': Error while evaluating 'dsBase::histogramDS1(D$Age, 1, 3, 0.25)' -> Error in
  dsBase::histogramDS1(D$Age, 1, 3, 0.25) : object '.Random.seed' not found
Backtrace:
    x
 1. \-dsBaseClient::ds.histogram(x = "D$Age", datasources = connections)
 2.   +-base::unique(unlist(DSI::datashield.aggregate(datasources, as.symbol(cally1))))
 3.   +-base::unlist(DSI::datashield.aggregate(datasources, as.symbol(cally1)))
 4.   \-DSI::datashield.aggregate(datasources, as.symbol(cally1))
 5.     \-DSI:::.handle_errors(errors.print)
 6.       \-cli::cli_abort(...)
 7.         \-rlang::abort(...)

I have tried to reproduce this issue using the dataset “CNSIM.CNSIM1” with the table “LAB_HDL” but without success. That was with “privacyControlLevel” set to “banana”, “permissive” and “non-permissive“. Was your tests with Armadillo or Opal?

Could you also let me know the version of R you are using so I can try to reproduce the issue

Opal image: obiba/opal:5 (the latest container from dockerhub) with default mode, R 4.5.0, Rock image datashield/rock-base:6.3, dsBase installed with install.packages(

    "/lib/dsBaseClient-6.3.4-RC4.tar.gz", 

    repos = NULL, 

    type = "source"

) (locally deployed .tar.gz) the same for dsBaseClient

Hi,

I think I understand what you are seeing. The ‘.Random.seed’ variable is a server side variable that is only directly interacted with by dsBase, not dsBaseClient. I suspect you have dsBase-6.3.3 install on your server, and 6.3.4-RC4 on your client. This version of dsBase has an issue if the variable ‘.Random.seed’ if it has not been created yet, which is what I think you are seeing. This is one of the issues intended to be addressed by 6.3.4. You can determine the version of dsBase using the script below:

#
# Simple Use of 'dsListPackages'
# Need to check/change 'username', 'password' and 'url'.
#

require('DSOpal')
require('DSI')

conn <- dsConnect(DSOpal::Opal(), "server1", username = "administrator", password = "datashield_test&", profile = "default", url = "https://localhost:844>

dsListPackages(conn = conn)

dsDisconnect(conn)

Could you confirm you have 6.3.3 on your server. If is is the case, I will process to produce RC5 (which addresses an issue with Long Doubles on MacOS - requested by CRAN).

If you wish to upgrade dsBase on your server, the process is as follows:

  • Log into Opal webportal
  • Enable ‘Allow R package management’:
    • Navigate to “Administrator” → “General Settings”
    • Under “Configuration” select “Edit” icon and Enable ‘Allow R package management’
  • Delete old dsBase
    • Navigate to “Administrator” → “DataSHIELD”
    • In Packages area, place cursor over word “dsBase” in “Name” column, this will revile “Delete” icon", press “Delete” icon and “CONFIRM”
  • Install new dsBase
    • Run the script below to install ‘6.3.4-RC4’
#
# Use of 'dsadmin.install_local_package' to install '6.3.4-RC4.tar.gz'.
# Need to check/change 'username', 'password' and 'url', and possible 'path'.
#

library(opalr)

o <- opal.login("administrator", "datashield_test&", url = "https://localhost:8443", profile = "default")
dsadmin.install_local_package(o, path = "6.3.4-RC4.tar.gz", profile = "default")
opal.logout(o)

Stuart

Thx, I’m going to follow up and get back with results.

> dsListPackages(conn) package version 1 dsBase 6.3.3

That explains the error with histograms.

Thank you, for that feedback. I will processed with creating RC5.

Regards, Stuart

BTW unfortunately I hit the limit when trying to install (and upload) the .tar.gz package.

Error: [Client error: (413) Request Entity Too Large]

Is your server deployment based on a publicly available Opal docker image which I could test? My test deployment is based on “obiba/opal:5.2.0”, and didn’t encounter that issue. It could be related Rock. I will try a standard Rock profile.

Stuart

To workaround the message size limit, instead of installing a local package, you could push the dsBase code in a branch and ask for installing this github branch. See dsadmin.install_github_package