Summary
User is unable to update an existing reflection or created a new reflection, with an unexpected error that the reflection could not be created suggesting a context sensitive function was in use.
Reported Issue
There is an issue with this specific 24.3.0 image of Dremio that can cause Refresh fails with "Reflection could not be created as it uses context-sensitive functions".
Relevant Versions
- 24.3.0-202312190021150029-52db2faf
Troubleshooting Steps
Inspect the failing query profile and you will see the error:
VALIDATION ERROR: Reflection could not be created as it uses context-sensitive functions. Functions like IS_MEMBER, USER, etc. cannot be used in reflections since they require context to complete.
Steps to Resolve
A bug fix was released and an updated 24.3.0 image shipped to replace the original 24.3.0 image. Please make sure you are using the image that was produced on 2023-12-22.
Old: 24.3.0-202312190021150029-52db2faf New: 24.3.0-202312220021110714-f19d865e
If you are using a Kubernetes deployment, there are additional steps needed to make sure you pull the latest 24.3.0 release by pulling the latest image tags: Image Tags:
docker pull dremio/dremio-ee:24.3 docker pull dremio/dremio-ee:24.3.0 docker pull dremio/dremio-ee:latest Image Hash: 99dc75316156
Repo Tags:
Docker Hub: https://hub.docker.com/r/dremio/dremio-ee/tags
Quay.io: https://quay.io/repository/dremio/dremio-ee?tab=tags
Please note that the Docker engine / Kubernetes nodes might have a cached version of 24.3. Make sure you purge the same and force the image pull by modifying image pull policy to 'Always'. To make this change, edit all occurrences of imagePullPolicy in the templates found under charts/dremio_v2/templates, from IfNotPresent to Always.
Example of setting download to force and bypass cached files:
$ cat dremio-master.yaml … containers: - name: dremio-master-coordinator image: {{ $.Values.image }}:{{ $.Values.imageTag }} imagePullPolicy: Always … - name: chown-data-directory image: {{ $.Values.image }}:{{ $.Values.imageTag }} imagePullPolicy: Always … - name: upgrade-task image: {{ $.Values.image }}:{{ $.Values.imageTag }} imagePullPolicy: Always … - name: generate-ui-keystore image: {{ $.Values.image }}:{{ $.Values.imageTag }} imagePullPolicy: Always
The files which need to be changed are:
_helpers_executor.tpl, dremio-admin.yaml, dremio-coordinator.yaml, dremio-executor.yaml and dremio-master.yaml
Note: This will slow down the pod restart as it no longer uses the cached image. Please make a copy of the above files if you wish to revert this behaviour after upgrade.
Next Steps
Once Dremio has restarted, check the installed version under Help -> About Dremio.
Additional Resources
Context Functions: http://docs.dremio.com/sql-reference/sql-functions/CONTEXT/