Tensorflow crashes on build on Ubuntu 16.04

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): no
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 16.04
TensorFlow installed from (source or binary): building from source
TensorFlow version (use command below):  5ae244e
Bazel version (if compiling from source):  0.4.5
CUDA/cuDNN version: CUDA 8.0.61, cudnn 6.0.21 (tried also 5.1)
GPU model and memory: 2x Tesla P100-PCIE-12GB
Exact command to reproduce: building
Additional information: Intel(R) Xeon(R) CPU E7-4860 v2 @ 2.60GHz, gcc version 5.4.1 20170519 (Ubuntu 5.4.1-11ubuntu2~16.04)

Describe the problem
On the regular rebuild of Tensorflow, the build crashes with bunch of error: argument of type "const void *" is incompatible with parameter of type "const something *"
Source code / logs
Crash log:
INFO: From Compiling tensorflow/core/kernels/scatter_functor_gpu.cu.cc:
/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9218): error: argument of type "const void *" is incompatible with parameter of type "const float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9229): error: argument of type "const void *" is incompatible with parameter of type "const float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9242): error: argument of type "const void *" is incompatible with parameter of type "const double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9253): error: argument of type "const void *" is incompatible with parameter of type "const double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9266): error: argument of type "const void *" is incompatible with parameter of type "const float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9277): error: argument of type "const void *" is incompatible with parameter of type "const float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9290): error: argument of type "const void *" is incompatible with parameter of type "const double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9301): error: argument of type "const void *" is incompatible with parameter of type "const double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9314): error: argument of type "const void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9325): error: argument of type "const void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9338): error: argument of type "const void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9350): error: argument of type "const void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9363): error: argument of type "const void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9374): error: argument of type "const void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9387): error: argument of type "const void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9399): error: argument of type "const void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9408): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9417): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9426): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9435): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9443): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9452): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9461): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9470): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9479): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9488): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9497): error: argument of type "void *" is incompatible with parameter of type "long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9506): error: argument of type "void *" is incompatible with parameter of type "long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9515): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9524): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9533): error: argument of type "void *" is incompatible with parameter of type "long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512fintrin.h(9542): error: argument of type "void *" is incompatible with parameter of type "long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(54): error: argument of type "const void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(62): error: argument of type "const void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(70): error: argument of type "const void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(78): error: argument of type "const void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(86): error: argument of type "void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(95): error: argument of type "void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(104): error: argument of type "void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(112): error: argument of type "void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(120): error: argument of type "void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(129): error: argument of type "void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(138): error: argument of type "void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512pfintrin.h(146): error: argument of type "void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10223): error: argument of type "const void *" is incompatible with parameter of type "const float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10235): error: argument of type "const void *" is incompatible with parameter of type "const float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10247): error: argument of type "const void *" is incompatible with parameter of type "const double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10259): error: argument of type "const void *" is incompatible with parameter of type "const double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10271): error: argument of type "const void *" is incompatible with parameter of type "const float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10283): error: argument of type "const void *" is incompatible with parameter of type "const float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10295): error: argument of type "const void *" is incompatible with parameter of type "const double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10307): error: argument of type "const void *" is incompatible with parameter of type "const double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10319): error: argument of type "const void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10331): error: argument of type "const void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10343): error: argument of type "const void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10355): error: argument of type "const void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10367): error: argument of type "const void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10379): error: argument of type "const void *" is incompatible with parameter of type "const int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10391): error: argument of type "const void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10403): error: argument of type "const void *" is incompatible with parameter of type "const long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10413): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10424): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10433): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10444): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10453): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10464): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10473): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10484): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10493): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10504): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10513): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10524): error: argument of type "void *" is incompatible with parameter of type "float *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10533): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10544): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10553): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10564): error: argument of type "void *" is incompatible with parameter of type "double *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10573): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10584): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10593): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10604): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10613): error: argument of type "void *" is incompatible with parameter of type "long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10624): error: argument of type "void *" is incompatible with parameter of type "long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10633): error: argument of type "void *" is incompatible with parameter of type "long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10644): error: argument of type "void *" is incompatible with parameter of type "long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10653): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10664): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10673): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10684): error: argument of type "void *" is incompatible with parameter of type "int *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10693): error: argument of type "void *" is incompatible with parameter of type "long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10704): error: argument of type "void *" is incompatible with parameter of type "long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10713): error: argument of type "void *" is incompatible with parameter of type "long long *"

/usr/lib/gcc/x86_64-linux-gnu/5/include/avx512vlintrin.h(10724): error: argument of type "void *" is incompatible with parameter of type "long long *"

92 errors detected in the compilation of "/tmp/tmpxft_00008f12_00000000-7_scatter_functor_gpu.cu.cpp1.ii".
ERROR: /scratch/chaimb/tensorflow/tensorflow/core/kernels/BUILD:1140:1: output 'tensorflow/core/kernels/_objs/scatter_functor_gpu/tensorflow/core/kernels/scatter_functor_gpu.cu.pic.o' was not created.
ERROR: /scratch/chaimb/tensorflow/tensorflow/core/kernels/BUILD:1140:1: not all outputs were created or valid.
Target //tensorflow/tools/pip_package:build_pip_package failed to build
INFO: Elapsed time: 147.888s, Critical Path: 69.54s

I've tried disabling most of the options (MKL, architecture optimizations, computability) but the crash happens even with full-default (except CUDA and XLA) configuration.

I had a similar problem and my workaround was to downgrade to gcc/g++ 4.8, see this page for how2.
ubuntu 17.04 64 bit, CUDA 8.0.61, cudnn 6.0.21, tensorflow tag v1.1.0, bazel configured to use -msse4.1, -msse4.2, -mavx, -mavx2, -mfma, cuda compute capabilities 6.1, gpu is nvidia geforce gtx 1080 ti, cpu is amd ryzen 1700x

From what I can see, you are trying to build with avx 512 instruction set?
I am not sure if we tested with avx512 yet. Could you try rebuilding without avx512?

@gunan No, I'm not, at least not explicitly. The processor is Ivy Bridge, and I was building with default settings.

@Randl Your build failure seems to be in avx512fintrin.h.
I think it is included through immintrin.h, but looking at the files, most of the header should be skipped.
What is the exact build command you are running before you saw this failure?

@gunan That's what I run (different options set were tried):

chaimb@hpc1:/scratch/chaimb/tensorflow$ ./configure
Please specify the location of python. [Default is /usr/bin/python]: /usr/bin/python3
Found possible Python library paths:
  /usr/lib/python3/dist-packages
  /usr/local/lib/python3.5/dist-packages
  /usr/local/lib/python2.7/site-packages
Please input the desired Python library path to use.  Default is [/usr/lib/python3/dist-packages]

Using python library path: /usr/lib/python3/dist-packages
Do you wish to build TensorFlow with MKL support? [y/N] y
MKL support will be enabled for TensorFlow
Do you wish to download MKL LIB from the web? [Y/n] y
Please specify optimization flags to use during compilation when bazel option "--config=opt" is specified [Default is -march=native]:
Do you wish to use jemalloc as the malloc implementation? [Y/n]
jemalloc enabled
Do you wish to build TensorFlow with Google Cloud Platform support? [y/N]
No Google Cloud Platform support will be enabled for TensorFlow
Do you wish to build TensorFlow with Hadoop File System support? [y/N]
No Hadoop File System support will be enabled for TensorFlow
Do you wish to build TensorFlow with the XLA just-in-time compiler (experimental)? [y/N] y
XLA JIT support will be enabled for TensorFlow
Do you wish to build TensorFlow with VERBS support? [y/N]
No VERBS support will be enabled for TensorFlow
Do you wish to build TensorFlow with OpenCL support? [y/N]
No OpenCL support will be enabled for TensorFlow
Do you wish to build TensorFlow with CUDA support? [y/N] y
CUDA support will be enabled for TensorFlow
Do you want to use clang as CUDA compiler? [y/N]
nvcc will be used as CUDA compiler
Please specify the CUDA SDK version you want to use, e.g. 7.0. [Leave empty to use system default]:
Please specify the location where CUDA  toolkit is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify which gcc should be used by nvcc as the host compiler. [Default is /usr/bin/gcc]:
Please specify the cuDNN version you want to use. [Leave empty to use system default]:
Please specify the location where cuDNN  library is installed. Refer to README.md for more details. [Default is /usr/local/cuda]:
Please specify a list of comma-separated Cuda compute capabilities you want to build with.
You can find the compute capability of your device at: https://developer.nvidia.com/cuda-gpus.
Please note that each additional compute capability significantly increases your build time and binary size.
[Default is: "3.5,5.2"]: "6.0"
Do you wish to build TensorFlow with MPI support? [y/N]
MPI support will not be enabled for TensorFlow
WARNING: Output base '/home/chaimb/.cache/bazel/_bazel_chaimb/7e5d2835edc3e2079ed27c4c385315e6' is on NFS. This may lead to surprising failures and undetermined behavior.
.....................................
INFO: Starting clean (this may take a while). Consider using --async if the clean takes more than several minutes.
Configuration finished
chaimb@hpc1:/scratch/chaimb/tensorflow$ bazel build --verbose_failures --jobs 96 --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

@csoehnel  Confirmed, using /usr/bin/gcc-4.9 is a valid workaround.

Looks like you enabled MKL support. I think that is why the build is failing.

@gunan disabling it gives same result

Same thing happens using gcc-5.4.1 on Debian 9.  This is my build command:
bazel build -c opt --config=cuda --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma //tensorflow/tools/pip_package:build_pip_package

I believe #9296 is the same issue, and switching back to gcc-4.9 seems to solve the problem.
Here seems to be a combination supported by Nvidia.
Distribution	Kernel	GCC	GLIBC
Ubuntu 16.04	4.4.0	5.3.1	2.23

Switching back to gcc-4.9 only fixes the issue because it doesn't have the intrinsic for avx512 yet.
Something in the GPU code is including immintrin.h which now includes the new avx512 instructions for hardware enablement.
gcc-5  5.4.1-11ubuntu2  is the version on my machine, and it doesn't matter if I add/remove MKL, XLA or any other options it will compile fine.  And yes I can compile with gcc-4.9 but it doesn't even natively support skylake let alone AVX512 instructions.
My C++ is rusty and bazel is new to me, but it seems like some work on includes in  tensorflow/core/platform/platform.h
Nvidia technically supports GCC 5.4 which would should this problem, and it is a problem with llvm 3.8.1 too as it also includes these intrinsic types with an include of immintrin.h.
I wish I wasn't so rusty or I would help to get access to these instructions but from looking around the  real options seem to be either pull out the inclusion of the gcc intrinsics from cudacc code or adding explicit casts for the new types.

I have this problem as well, made any progress?

Stress before saying something that is likely not useful.  I do not recall building from head in the past few weeks.  Sharing what I have done recently, which I doubt is helpful but it is the only info I have that has a remote chance of being helpful.
I built 1.3.0rc2  multiple times on a stock 16.04 setup (on AWS) with AVX2,  CUDA 8 and cuDNN 6 .  I did not use the CUDA 8 Patch 2 (which I can say performs poorly for inception3 and Resnet and possibly others on K80s even more so as I scaled from 1 to 8 GPUs. No idea why (maybe I did something wrong) and I did not try other GPUs for 1 GPU is seemed the same).
The version of Bazel I use is 0.5.1.  I do not think that matters just sharing exactly what I was using.  I would NOT use 0.5.3 although I think the problem was fixed.
I normally build with this command and the only option I add during the ./configure that is not default is CUDA.
bazel build -c opt --copt=-march="haswell" --config=cuda //tensorflow/tools/pip_package:build_pip_package

I have the exact same issue on Debian. Any update on this issue?

@jplu
I do not know if someone will look at this, but with out knowing the hash you are building from, gcc, debian version and bazel version as well as the full build command and ./configure options it is looking for a needle in a haystack.  I do custom TensorFlow builds weekly on 16.04 and I 100% understand there are many combinations of builds that could trigger a problem that I would never see.  If I know exactly what you are doing I can give it a try in my environment or possibly someone else can take a look.  Our build environment here is Ubuntu 14.04 and I mostly build ion 16.04 and sometimes amazon linux I do not remember the version.

Sorry. Here is my setup:
System information

OS Platform and Distribution: Debian Buster
TensorFlow installed from: source
TensorFlow version: commit https://github.com/tensorflow/tensorflow/commit/12a628a623a5dae81b8fc699792eaf414e6ace41
Python version: 3.5.4
Bazel version: 0.5.4
CUDA/cuDNN version: CUDA 8/CuDNN 6
GPU model and memory: 2xTesla K80 with 12GB each
CPU model: Intel Xeon E5-2683 v4
Exact command to reproduce:

bazel build -c opt --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-mfpmath=both --copt=-msse4.2 --copt=-msse4.1 --config=mkl --config=cuda --verbose_failures -k //tensorflow/tools/pip_package:build_pip_package

Or
bazel build -c opt --copt=-march=native --copt=-mfpmath=both --config=mkl --config=cuda --verbose_failures -k //tensorflow/tools/pip_package:build_pip_package

Describe the problem
I'm trying to compile a Tensorflow package specifically optimized for my machine. When I run the compilation with one of the command lines described above, I get some compilation errors. Doesn't matter if I let GCC deciding which optimization to make or if I force them. The kind of errors are always the same as described in the first post and finish by:
92 errors detected in the compilation of "/tmp/tmpxft_00007482_00000000-7_zero_initializer_op_gpu.cu.cpp1.ii".
ERROR: /opt/tensorflow/tensorflow/contrib/framework/BUILD:88:1: output 'tensorflow/contrib/framework/_objs/python/ops/_variable_ops_gpu/tensorflow/contrib/framework/kernels/zero_initializer_op_gpu.cu.pic.o' was not created
ERROR: /opt/tensorflow/tensorflow/contrib/framework/BUILD:88:1: not all outputs were created or valid
Target //tensorflow/tools/pip_package:build_pip_package failed to build
INFO: Elapsed time: 331.599s, Critical Path: 63.79s
FAILED: Build did NOT complete successfully

Am I using a wrong command line or is it a bug in the compilation process?
Thanks in advance for any help.

Hello, I have found the same error when I add  include in a .cu file (compiled by nvcc CUDA 8). This file random (/usr/include/c++/5/random in GNU/Debian 9) include opt_random.h -> x86intrin.h -> immintrin.h -> avx512vlintrin.h. I don't have this problem when I compile with debug flags in nvcc (-g -O0). Finally I solved this problem changing include dependences in my application.

Sorry @juanecito but I don't get your post. I don't see the relation between the compilation of Tensorflow and the compilation of your application. Can you give more details please.

I think the problem here is that gcc-5.5 shipped with avx512*intrin.h headers that switched to using void* and const void* (https://gcc.gnu.org/bugzilla/show_bug.cgi?id=76731) but without switching the builtins to do the same.  This is why 5.4 works but 5.5 breaks.  The tensorflow r1.4 build at least can be unbroken for 5.5 by locally rolling back the above change with e.g.:
for f in avx512fintrin.h avx512pfintrin.h avx512vlintrin.h; do
   curl -H "User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36" -o $f "https://gcc.gnu.org/viewcvs/gcc/branches/gcc-5-branch/gcc/config/i386/${f}?view=co&revision=245536&content-type=text%2Fplain&pathrev=245536"
done && mv avx512*intrin.h  /usr/lib/gcc/x86_64-linux-gnu/5/include/

This is a terrible idea (who knows what else it's rolling back? are you really cherrypicking 3 random files out of an entire release? and so on) and nobody should do it, of course.
But maybe, if you're trying to build tensorflow for GPU (so require nvcc, so require GCC < 6) inside an ubuntu:17.10 docker image (so don't have an apt-get'able gcc-5.4 option), this might be useful.

Nagging Assignee: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

I met same situation described above. It happened when my system (slackware linux) updated gcc from 5.3 to 5.5, as @fischman said.

Nagging Assignee @tfboyd: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tfboyd: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tfboyd: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tfboyd: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Similar problem here. It's odd that it happened with GCC 5.4
C++ compilation of rule '@fft2d//:fft2d' failed (Exit 1)
external/fft2d/fft/fftsg.c: In function 'cftf162':
external/fft2d/fft/fftsg.c:3028:1: error: insn does not satisfy its constraints:
 }
 ^
(insn 486 485 130 2 (set (reg:DF 50 xmm13 [orig:218 D.7773 ] [218])
        (plus:DF (reg:DF 50 xmm13 [orig:218 D.7773 ] [218])
            (reg:DF 56 xmm19 [orig:218 D.7773 ] [218]))) external/fft2d/fft/fftsg.c:2933 796 {*fop
_df_comm_mixed}
     (nil))
external/fft2d/fft/fftsg.c:3028:1: internal compiler error: in extract_constrain_insn, at recog.c:
2246

System information

OS Platform and Distribution: Ubuntu 16.04
TensorFlow installed from (source or binary): source
TensorFlow version (use command below): https://github.com/tensorflow/tensorflow/commit/92e6c3e4f5c1cabfda1e61547a6a1b268ef95fa5
Python version: 3.5.2
Bazel version (if compiling from source): 0.11.0
GCC/Compiler version (if compiling from source): 5.4.0
CUDA/cuDNN version: CUDA 9.1. cuDNN 7.1
GPU model and memory: NVIDIA K80
CPU model: 2.0 GHz Intel Xeon (Skylake) on GCP
Exact command to reproduce:

bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

Optimizations set with ./configure:
-mavx -mavx2 -mavx512f -mfma -mfpmath=both -msse4.2 -Ofast

Interestingly though, compiling without -mavx512f works just fine.

i have same error with System information:
OS Platform and Distribution: Ubuntu 16.04
TensorFlow installed from: source
TensorFlow version: 1.8
Python version: 3.6.4
GCC version: 5.4.1
CUDA/cuDNN version: CUDA 9.1/CuDNN 7.1.3
GPU model and memory: 1080 Ti
I solved this problem by switching to gcc-4.9:
$ sudo apt-get install gcc-4.9 g++-4.9
$ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 50 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
Now you can switch to gcc-4.9 by using:
$ sudo update-alternatives --config gcc
then run the following command:
$ bazel build --config=opt --config=cuda //tensorflow/tools/pip_package:build_pip_package

Same issue as hamiGH above

Nagging Assignee @tfboyd: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tfboyd: It has been 29 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Hi, has this issue been resolved? I am using Ubuntu 18.04 and the lowest version of gcc I could get there is 5.5 which gives the errors as asked in the question. On this same system, I had Ubuntu 16.04 with gcc 5.4 and TensorFlow compiled without a problem. I am really stuck and would appreciate any help! I have tested with TF version 1.9.0 and 1.8.0 both give the same error (the Cuda version I'm using is 9.0).

Nagging Assignee @tfboyd: It has been 16 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tfboyd: It has been 30 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tfboyd: It has been 45 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tfboyd: It has been 60 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tfboyd: It has been 75 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

I believe this was an nvcc issue.
I can now compile 1.11.0-rc1 with CUDA 10.0 and gcc 5.5. (But CUDA 10.0 also supports gcc 7.3, so it's kind of moot)

If I compile with Debug, the problem is gone.
xxx/xxx/build$ cmake -DCMAKE_BUILD_TYPE=Debug  /path/to/source/code

Nagging Assignee @tfboyd: It has been 14 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tfboyd: It has been 29 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Nagging Assignee @tfboyd: It has been 44 days with no activity and this issue has an assignee. Please update the label and/or status accordingly.

Closing as this is resolved

@wt-huang Could you share the fix that resolves this issue? I see the same error even with gcc-4.9. Compiling with debug isn't practical for performance reasons.


Missing scripts in example content

Describe the bug
I have a development project for testing, analyzing Juce Feedbacks that has the Feedbacks, Tween, and Utils submodules cloned to a Unity project. There appears to be missing scripts on several objects in the example content that may or may not be causing some of the demo content to not work as expected. Most of the Feedbacks specific functionality is working as intended, but I am unsure if there is other missing demo functionality from these other scripts.
To Reproduce
Steps to reproduce the behavior:

Clone the development repository here with submodules (https://github.com/jeffcampbellmakesgames/Juce-Dev).
Open the Unity project contained within.
Open any of the example content scenes in the Feedback submodules
Look at various gameobjects to see if scripts are missing. I see them most often on the MainCamera object, but there are other ones. You may be able to use something like this (https://wiki.unity3d.com/index.php/FindMissingScripts) to find them all programmatically.

Expected behavior
All scripts should be present.
Screenshots

Desktop (please complete the following information):

OS: Windows
Unity: 2019.4.11f1

Smartphone (please complete the following information):

Not applicable

Additional context
It's possible that there are scripts being used outside of these three submodules or that the scripts that were previously on these objects were deleted or the GUIDs for the scripts are being broken/unassociated some other way.

Thank you very much for this @jeffcampbellmakesgames ! I will look into it as soon as I can :)

They were just old scripts that I forgot to remove. Fixed 👍


SMTP connect() failed

2021/05/31 09:28:35 [error] 1928#1928: *1 FastCGI sent in stderr: "PHP message: Send reset URL https://ssp:8089/index.php?action=resetbytoken&token=3vUCAG8MEQmsO5ExZQaXvCLZA1ccdar4h8bZvPIoI%2Fsggg7Z%2BgQfEi1drcAuBlGEn8D0VfLqWJj%2BMjbwynades5yG2hObRpHVcErjkM7bSFZi3sQ3rE5Y9yiKTpofMOjvV0UWbIrLCO4e8mwSOGC%2B%2Fo%3DPHP message: send_mail: SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/TroubleshootingPHP message: Error while sending token to<EMAIL_ADDRESS>(user linmuqin)" while reading response header from upstream, client: <IP_ADDRESS>, server: , request: "POST /?action=sendtoken HTTP/1.1", upstream: "fastcgi://<IP_ADDRESS>:9000", host: "ssp:8089", referrer: "http://ssp:8089/?action=sendtoken"

I can access the mail server, but the mailbox has not been able to receive emails. I turned on debug=4, but I didn’t see any logs, please help
version: '3'
services:
self-service-password:
image: 'tiredofit/self-service-password:latest'
container_name: 'self-service-password'
ports:
- '8089:80'
environment:
- LDAP_SERVER=ldap://ldap-server:389
- LDAP_BINDDN=cn=admin,dc=xxx,dc=com
- LDAP_BINDPASS=xxxxxx
- LDAP_BASE_SEARCH=ou=xxxx,dc=xxx,dc=com
-<EMAIL_ADDRESS>- SMTP_DEBUG=4
- SMTP_HOST=smtp.qq.com
-<EMAIL_ADDRESS>- SMTP_PASS=xxxxxxxx
- SMTP_PORT=465
- SMTP_SECURE_TYPE=ssl
- SMTP_AUTH_ON=true
- IS_BEHIND_PROXY=true
volumes:
- ./srv/self-service-password/data:/www/ssp
- ./srv/self-service-password/logs:/www/logs

I can't open the resetURL in the nginx log,But I think this shouldn’t affect receiving mail

check your config
mail_smtp_port:
mail_smtp_secure:
mail_smtp_user: [  don't use user name  like @xx.com， so careless am i !


Add pHYs handling in Reader and Writer classes

Hello
I needed pHYs to create data with different x and y resolutions (sonar images).
Alain

I like this in principal. I think I'd like it even more if there was only one new parameter to the already ridiculous constructor for the Writer class.
A test that included a pHYs chunk would definitely ease the passage of this pull request. :)

Do you mean that a tuple (x_pixel_per_unit, y_pixel_per_unit, unit_is_meter) would be ok as a single parameter?
I'll prepare a test for pHYs chunk...

yes, I was thinking
Writer(blah blah blah, phys=(xppu, yppu, ismetre))

It is also possible to have:

There's a bigger discussion as to how to introduce arbitrary new chunks. We haven't thought about that much, so just do whatever you feel is tasteful.

Ok.
I was also thinking of the tIME chunk, that may be useful to me... So, the second way may be better...
I'm not used to git and github, if I commit new code (for pHYs and tIME), is it possible to merge it to this pull request? Or would you prefer a new pull request?
Is the discussion about arbitrary chunk visible on the net? I'm intersted in following it...
I may be busy next days, I think I'll code and propose tests at the end of the week.
Thanks.

I merged. Now you're new code can go in a new pull request. :)


Bluetooth: hci_ecc: Follow BT spec when public key is invalid

Follow Bluetooth specification recommendation of setting the output
of the DH_Key field in the LE Generate DHKey Complete event when the
public key is invalid.
If the Remote_P-256_Public_Key parameter of the HCI_LE_Generate_DHKey
command (see Section 7.8.37) was invalid (see [Vol 3] Part H, Section
<IP_ADDRESS>.1), then all octets of the DH_Key event parameter should be
set to 0xFF.
Signed-off-by: Joakim Andersson<EMAIL_ADDRESS>

CC: @thomasstenersen


show token/ETH rate with discount rate in past funding cycles

we should revisit ways to show this data over time on a graph. for now, simple change to make this accessible in the funding cycle details


Django Compressor error after clean install

Just installed cabot on a fresh AWS 12.04 instance using this guide: http://www.unicoda.com/?p=1624
..and I got these error when I tried to use the webapp:
ERROR 2015-01-02 11:55:26,875 base 20084<PHONE_NUMBER>74304 Internal Server Error: /accounts/login/
Traceback (most recent call last):
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 137, in get_response
response = response.render()
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/response.py", line 105, in render
self.content = self.rendered_content
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/response.py", line 82, in rendered_content
content = template.render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 140, in render
return self._render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 854, in render_node
return node.render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 123, in render
return compiled_parent._render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 854, in render_node
return node.render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/compressor/templatetags/compress.py", line 149, in render
return self.render_compressed(context, self.kind, self.mode, forced=forced)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/compressor/templatetags/compress.py", line 89, in render_compressed
cached_offline = self.render_offline(context, forced=forced)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/compressor/templatetags/compress.py", line 73, in render_offline
'You may need to run "python manage.py compress".' % key)
OfflineGenerationError: You have offline compression enabled but key "5f791e890c250326ad4b57e708d81554" is missing from offline manifest. You may need to run "python manage.py compress".
ERROR 2015-01-02 11:55:27,600 base 20082<PHONE_NUMBER>74304 Internal Server Error: /favicon.ico
Traceback (most recent call last):
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 150, in get_response
response = callback(request, **param_dict)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/utils/decorators.py", line 99, in _wrapped_view
response = view_func(request, *args, **kwargs)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/views/defaults.py", line 30, in page_not_found
body = template.render(RequestContext(request, {'request_path': request.path}))
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 140, in render
return self._render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 854, in render_node
return node.render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/loader_tags.py", line 123, in render
return compiled_parent._render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 134, in _render
return self.nodelist.render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 840, in render
bit = self.render_node(node, context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/django/template/base.py", line 854, in render_node
return node.render(context)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/compressor/templatetags/compress.py", line 149, in render
return self.render_compressed(context, self.kind, self.mode, forced=forced)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/compressor/templatetags/compress.py", line 89, in render_compressed
cached_offline = self.render_offline(context, forced=forced)
File "/home/ubuntu/venv/local/lib/python2.7/site-packages/compressor/templatetags/compress.py", line 73, in render_offline
'You may need to run "python manage.py compress".' % key)
OfflineGenerationError: You have offline compression enabled but key "5f791e890c250326ad4b57e708d81554" is missing from offline manifest. You may need to run "python manage.py compress".
I was able to workaround the problem (sort of) by editing /home/ubuntu/cabot/cabot/settings.py and adding "COMPRESS_OFFLINE = False" but I think that's messing other things up, as the CSS doesn't look right in some places now.  Help!

Thanks for the heads up. This is indeed to do with Django-Compressor but without knowing exactly what you did to set it up, it's hard to debug.
Is there a deployment step in your config which involves running ./manage.py compress?
For instance, in the stock fabfile.py, this gets run as part of collect_static (which is itself part of the deploy process):
https://github.com/arachnys/cabot/blob/474acbe2983dabebc0515fddf8ce9bcd66866e49/fabfile.py#L62
Let me know if that helps. In the meantime I will close because although I agree getting started guide could be better, this isn't actually a bug in the code.


Add support for multi DER

related to #177
the fw would need to support multiple DERs. Eg. PV and Battery. This should be flexible enough so that any DER can be added. At the highest level there are Production DERs (PV), Consumption DERs (heater) and combination PruductonAndConsumption (battery).
Maybe we can find some common interface(s) and work with that. DERs should support harvesting data and controll (depending on DER type). The underlying mechanism to do this is currently via an inverter -> modbus tcp. So this seems like another layer of abstraction on top of things?
This would mean the harvester works with a DER and not an inverter. The DER then implements the actual harvesting.
An open issue is if a user has both Solar and Battery, will it be able to participate in controll contracts of both kinds or is the control at the level of the "facility"?

One interesting aspect is that as the tasks are now threads of their own the Harvest can actually be simplified (as the non blocking task requirement is no more). This would allow for some other design alternatives. I.e we could push some parts of the retry functionality to the inverter (or some new middle man class i.e. InverterHarvest) That is something not also a Task (as we do not need to return but can simply sleep).
In fact the harvest can be one perpetual task with e.g. a while true loop in it. Though then we do loose the ability to control, i.e kill,  the thread if we do not specifically create something new here in this extreme case.
But the Harvest task could essentially be
t```
ry:
backoff_time = self.der.harvest()
self.time += backoff_time
harvest transport stuff
except:
... possibly no need to do anything here

This is basically the current design
classDiagram
    Inverter <|-- ModbusTCP
    Inverter <|-- ModbusRTU
    Inverter <|-- SolarmanTCP

    TaskScheduler --> "*" ITask

    ITask <|.. Task

    Task <|-- Harvest
    Task --> BlackBoard

    BlackBoard--> "*" Inverter

    Harvest --> Inverter
    Harvest ..> HarvestTransport
    Task <|-- HarvestTransport

    class Task {
        event_time:int
    }

    class ITask {
      <<interface>>
    }

latest iteration
classDiagram

    namespace der_hardware_protocol {
        class ICom {
            <<interface>>
            +connect()*
            +read_harvest_data()*
            +get_harvest_data_type()*
            +get_hw_id()*
        }

        class HarvestDataType {
            <<enumeration>>
            MODBUS_REGISTERS
            JSON_OBJECT
        }

        class ModbusTCP {
            +connect()
        }

        class ModbusRTU {
            +connect()
        }
        class MagickAPI
        class Solarman {
        }

        class Sunspec

        class hwc_factory {
            create_from_string(...) ICom
            create_from_json(...)
        }
    }

    hwc_factory ..> ModbusTCP
    hwc_factory ..> ModbusRTU
    hwc_factory ..> Solarman
    hwc_factory ..> MagickAPI
    hwc_factory ..> Sunspec
    ICom ..> HarvestDataType
    ModbusTCP ..|> ICom
    ModbusRTU ..|> ICom
    Solarman ..|> ICom
    MagickAPI ..|> ICom
    Sunspec ..|> ICom

    class DER {
        +read_harvest_data()*
        +get_hw_id()*
    }

    class IConsumer {
        <<interface>>
        +consume(percent)*
    }

    class IProducer {
        <<interface>>
        +produce(percent)*
    }

    class IStorage {
        <<interface>>
        +stateOfCharge()*
        +getConfig()*
    }

        class Solar {
        +produce()
    }

    namespace tasks {
        class ITask {
           <<interface>>
        }

        class Task {

        }

        class ControlProduction {

        }

        class Harvest
        class OpenDERTask
        class OpenDERPerpetualTask

    }

    namespace der {
        class DER
        class IProducer
        class IConsumer
        class IStorage
        class Solar
        class PoolHeater
        class Battery
    }

    BlackBoard --> "*"IConsumer
    BlackBoard --> "*"IProducer
    BlackBoard --> "*"IStorage

    Task ..|> ITask
    Task --> BlackBoard

    Harvest --|> Task
    OpenDERPerpetualTask --|> Task
    OpenDERTask --|> Task
    ControlProduction --|> Task
    ControlProduction --> IProducer
    Harvest --> DER
    OpenDERPerpetualTask --> DER
    OpenDERTask --> DER
    TaskQueue --> "*" ITask

    DER <|-- PoolHeater
    DER <|-- Battery

    IStorage <|.. Battery
    IConsumer <|.. PoolHeater
    IProducer <|.. Solar
    DER <|-- Solar

    DER --> "icomm" ICom :

I will suppose this issue should be divided into several smaller ones to not create a mega merge and break everything.

The hw_factory side is partially implemented now. Consider making ModbusRTU/TCP/Solarman use SunSpecModbusClientDevice for "normal" modbus operations, e.g. read/write registers.
Updated version:

classDiagram

    namespace der_hardware_protocol {
        class ICom {
            <<interface>>
            +connect()*
            +read_harvest_data()*
            +get_harvest_data_type()*
            +get_hw_id()*
        }

        class HarvestDataType {
            <<enumeration>>
            MODBUS_REGISTERS
            JSON_OBJECT
        }

        class ModbusTCP
        class ModbusRTU
        class MagicAPI
        class Solarman
        class SunSpec

        class hwc_factory {
            create_from_string(...) ICom
            create_from_json(...)
        }

        class ModbusDevice
        class SunSpecModbusClientDevice
    }

    hwc_factory ..> ModbusTCP
    hwc_factory ..> ModbusRTU
    hwc_factory ..> Solarman
    hwc_factory ..> MagicAPI
    hwc_factory ..> SunSpec
    ICom ..> HarvestDataType
    ModbusTCP --|> ModbusDevice
    ModbusRTU --|> ModbusDevice
    Solarman --|> ModbusDevice

    SunSpec --|> SunSpecModbusClientDevice
    SunSpecModbusClientDevice ..|> ICom

    ModbusDevice ..|> ICom

    MagicAPI ..|> ICom

    class DER {
        +read_harvest_data()*
        +get_hw_id()*
    }

    class IConsumer {
        <<interface>>
        +consume(percent)*
    }

    class IProducer {
        <<interface>>
        +produce(percent)*
    }

    class IStorage {
        <<interface>>
        +stateOfCharge()*
        +getConfig()*
    }

        class Solar {
        +produce()
    }

    namespace tasks {
        class ITask {
           <<interface>>
        }

        class Task {

        }

        class ControlProduction {

        }

        class Harvest
        class OpenDERTask
        class OpenDERPerpetualTask

    }

    namespace der {
        class DER
        class IProducer
        class IConsumer
        class IStorage
        class Solar
        class PoolHeater
        class Battery
    }

    BlackBoard --> "*"IConsumer
    BlackBoard --> "*"IProducer
    BlackBoard --> "*"IStorage

    Task ..|> ITask
    Task --> BlackBoard

    Harvest --|> Task
    OpenDERPerpetualTask --|> Task
    OpenDERTask --|> Task
    ControlProduction --|> Task
    ControlProduction --> IProducer
    Harvest --> DER
    OpenDERPerpetualTask --> DER
    OpenDERTask --> DER
    TaskQueue --> "*" ITask

    DER <|-- PoolHeater
    DER <|-- Battery

    IStorage <|.. Battery
    IConsumer <|.. PoolHeater
    IProducer <|.. Solar
    DER <|-- Solar

    DER --> "icomm" ICom :

I would say that this is done now although it did not turn out exactly as we thought :D


Fixed Spelling.

Thanks for the edit, this is committed to trunk/1.7/1.6 release branches in r1839622/r1839623/r1839624.


I got beaned

So I have a bit of a dilemma here, I got beaned.
Now the reasons I got banned was for pretty much being a dummy and provoking people for no reason. I can provide no proof that I won't do this again, but I will promise you my heart and soul that I will stop being such a disrespectful player on this community,

Can you explain to me what you did to get banned? Any instance that you were warned about before being banned would be appreciated.

@skunkass you seem to have disappeared... can you open a new ticket once you are back to life? Jona seems to have missed you by a few days and you poofed.


Reimplement functions and iterators from std

As a matter of likelihood of the reimplemenations on this project, I need to reimplement some default features from the std library into the ft namespace. The functions, iterators and / or classes to be reimplemented are stated as the following ones.

[x] <iterator>

[x] std::iterator_traits
[x] std::reverse_iterator

[x] <algorithm>

[x] std::equal
[x] std::lexicographical_compare

[x] <type_traits>

[x] std::enable_if
[x] std::is_integral

[x] <utility>

[x] std::pair
[x]  std::make_pair

Stilll need to write the unit tests for these template functions. Let's keep this issue open for a while.

Good to go! Still need to think about more tests on iterator.hpp, but for now we are fine. Might be easier to test the behaviors on the containers to be implemented. :ship:


How can apply the step 8 of guide for mac in case of linux?

I followed the MacOS guide for Linux case but the step 8 show me that message in the terminal

remove "" and ""

Aha, u forgot to cd into the the .git/hooks folder. It's a hidden folder, use ls -al and you'll see it.

u need to place the pre-commit & post-commit in this folder lol.
It's in here.
Read the wiki carefully lol 🤣

hmmm, that's weird. never seen that before.
Could u tried disable all plugins and do a re-index in logseq?

Also what's the theme? It looks cool!

I just switched to Linux last month.

Welcome to the penguin family!  🐧🐧🐧

@CharlesChiuGit really thanks ... sorry for my clumsiness, I just switched to Linux last month. Anyway... I finished all steps and seems have problems to sync

Wait a sec! I saw one weird thing!
U link the .git folder as a graph folder! That's not possible!
Instead, u should create the folder structure like this:
/home/{username}/Workspace/Logseq_db/.git

And the Logseq_db is where u should link to logseq as a graph.

So u can use logseq with git now?

yeah, it's going to be a tough war lol.
feel free to open a discussion instead of an issue if u need more elaborate steps!


Deprecated warning

It's working for me, but I am getting these warnings.
[ControlNet] warning: using deprecated 'controlnet_*' request params
[ControlNet] warning: consider using the 'control_units' request param instead

I had to change this line in the demo.py
# prepare server url
#server_url = "http://localhost:7860" + "/controlnet/txt2img"
server_url = "http://localhost:7860" + "/sdapi/v1/txt2img"

Thanks that worked!

sorry it's broken right now, check notes on sd-webui addon.

Migrated to the new ControlNet API already, please refer to the readme for any changes.


nextjs-mf v8 is crashing dev server startup and build

I've just upgraded to "@module-federation/nextjs-mf": "8.0.1-2" in order to explore the new capabilities, and for me it looks like the plugin is crashing both next dev as well as next build. If I remove the plugin, the both tasks are working fine again.
The following error is thrown:
Error: ENOENT: no such file or directory, open '/workspace/.next/fallback-build-manifest.json'
    at readFileSyncUtf8 (node:internal/fs/read/utf8:20:3)
    at readFileSync (node:fs:466:12)
    at loadManifest (/workspace/node_modules/next/dist/server/load-manifest.js:30:54)
    at loadManifestWithRetries (/workspace/node_modules/next/dist/server/load-components.js:34:51)
    at async loadDefaultErrorComponentsImpl (/workspace/node_modules/next/dist/server/load-default-error-components.js:30:24)
    at async DevServer.getFallbackErrorComponents (/workspace/node_modules/next/dist/server/dev/next-dev-server.js:565:20)
    at async DevServer.renderErrorToResponseImpl (/workspace/node_modules/next/dist/server/base-server.js:1871:40)
    at async pipe.req.req (/workspace/node_modules/next/dist/server/base-server.js:1728:30)
    at async DevServer.pipeImpl (/workspace/node_modules/next/dist/server/base-server.js:825:25) {
  errno: -2,
  syscall: 'open',
  code: 'ENOENT',
  path: '/workspace/.next/fallback-build-manifest.json'
}

Environment Info:

Next.js 13.5.4
@module-federation/nextjs-mf: 8.0.1-2

Reproducible sample:
https://codesandbox.io/p/sandbox/nextjs-mf-v8-l2rwlz
After installing the dependencies, running npm run dev will result in an error

do you have process.env.NEXT_PRIVATE_LOCAL_WEBPACK = true and npm install webpack

you may need to apply env to the command directly in the terminal not via .env, but it looks like webpack is missing as well, and the serilize errors your getting looks like either webpack is missing or next is still using its subset of webpack and not the node_module

Thanks for the feedback! I thought putting it in the .env file like in your /apps directory would also be sufficient 🙂
Anyhow, after installing webpack and modifying the npm scripts, I'm now running into a different error:
TypeError: __webpack_require__.f.remotes is not a function
    at /workspace/.next/server/pages/_document.js:356:56
    at Array.forEach (<anonymous>)
    at __webpack_exec__ (/workspace/.next/server/pages/_document.js:356:11)
    at async Promise.all (index 0)
    at async loadComponentsImpl (/workspace/node_modules/next/dist/server/load-components.js:54:33)
    at async DevServer.findPageComponentsImpl (/workspace/node_modules/next/dist/server/next-server.js:438:36)
    at async DevServer.findPageComponents (/workspace/node_modules/next/dist/server/dev/next-dev-server.js:545:20)
    at async DevServer.renderErrorToResponseImpl (/workspace/node_modules/next/dist/server/base-server.js:1800:26)
    at async pipe.req.req (/workspace/node_modules/next/dist/server/base-server.js:1728:30)
    at async DevServer.pipeImpl (/workspace/node_modules/next/dist/server/base-server.js:825:25) {
  page: '/'

I've updated my initial sandbox, but for some reasons it can't be started in CSB anymore. Downloading the sandbox and running npm i && npm run dev should be sufficient to reproduce the error.

Okay f.remotes, that looks like a bug. Im guessing whatever you're sharing has no remotes in its plugin config.
Silly oversight in my templating, can issue PR now

https://github.com/module-federation/universe/pull/1519 that should fix it

I can confirm that the server startup and build is now working fine with 8.0.1-3, thanks for fixing this so quickly!
One more question:
I'm now facing the errors Initialization of sharing external failed: TypeError: Cannot read properties of undefined (reading 'call') in my application (looks like the react default share scope to me). My host application is running on module federation v8, my two remote apps with v7. Do they all need to be on v8 in order to work due to the new enhanced module federation package?


System.Diagnostics.DiagnosticSource Causing Error Evaluating the function timedout

Description
When I upgrade the package System.Diagnostics.DiagnosticSource from 4.7.1 to 5.0.0, I get the error saying:
Evaluating the function 'System.Diagnostics.TraceInternal.Listeners.get' timedout and needed to be aborted in a unsafe way. This may have corrupted the target process.
Configuration
.Net Framework 4.8
Windows 10
x64
As @fcorbeil said:
This issue prevents me from doing the following updates :
Microsoft.Extensions.Logging.3.1.10 -> Microsoft.Extensions.Logging.5.0.0
Microsoft.ApplicationInsights.Web.2.15.0 -> Microsoft.ApplicationInsights.Web.2.16.0
Microsoft.ApplicationInsights.WindowsServer.2.15.0 -> Microsoft.ApplicationInsights.WindowsServer.2.16.0
Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.15.0 -> Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.16.0
Microsoft.ApplicationInsights.TraceListener.2.15.0 -> Microsoft.ApplicationInsights.TraceListener.2.16.0
Microsoft.ApplicationInsights.PerfCounterCollector.2.15.0 -> Microsoft.ApplicationInsights.PerfCounterCollector.2.16.0
Microsoft.ApplicationInsights.DependencyCollector.2.15.0 -> Microsoft.ApplicationInsights.DependencyCollector.2.16.0
Microsoft.ApplicationInsights.2.15.0 -> Microsoft.ApplicationInsights.2.16.0
System.Diagnostics.DiagnosticSource.4.7.1 -> System.Diagnostics.DiagnosticSource.5.0.0
Describe the bug
Unable to debug application. Visual Studio raises error System.Diagnostics.DiagnosticSource Causing Error Evaluating the function timedout.
Work around
Enable "Use Managed Compatibility Mode" from Visual Studio to debug application.
This issue is created from original issue https://github.com/dotnet/runtime/issues/44503 that contains all the details

Note that
System.Diagnostics.DiagnosticSource 5.0.1 still has the same issue

Note that
System.Diagnostics.DiagnosticSource 5.0.1 still has the same issue

Any news on a fix for this issue?

Who is the ApplicationInsights team representative here?

This issue prevents me from doing the following updates :
Microsoft.Extensions.Logging.3.1.10 -> Microsoft.Extensions.Logging.5.0.0
Microsoft.ApplicationInsights.Web.2.15.0 -> Microsoft.ApplicationInsights.Web.2.17.0
Microsoft.ApplicationInsights.WindowsServer.2.15.0 -> Microsoft.ApplicationInsights.WindowsServer.2.17.0
Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.15.0 -> Microsoft.ApplicationInsights.WindowsServer.TelemetryChannel.2.17.0
Microsoft.ApplicationInsights.TraceListener.2.15.0 -> Microsoft.ApplicationInsights.TraceListener.2.17.0
Microsoft.ApplicationInsights.PerfCounterCollector.2.15.0 -> Microsoft.ApplicationInsights.PerfCounterCollector.2.17.0
Microsoft.ApplicationInsights.DependencyCollector.2.15.0 -> Microsoft.ApplicationInsights.DependencyCollector.2.17.0
Microsoft.ApplicationInsights.2.15.0 -> Microsoft.ApplicationInsights.2.17.0
System.Diagnostics.DiagnosticSource.4.7.1 -> System.Diagnostics.DiagnosticSource.5.0.1 (source of the problem)

I'm not sure if this is helpful or not but I'll give you this as an additional datapoint:
I just ran into this same behavior with Microsoft.ApplicationInsights.TraceListener @ 2.15.0 after adding Microsoft.Configuration.ConfigurationBuilders.Azure @ 2.0.0
I managed to downgrade my Microsoft.ApplicationInsights suite of dependencies and avoid this issues, but I had to go all the way down to 2.2.0. Removing Microsoft.ApplicationInsights.TraceListener entirely allows me to run the rest of the ApplicationInsights packages at 2.17.0
The work-around of enabling "Use Managed Compatibility Mode" causes some projects that use netstandard2.0 in my solution to be unable to be debugged.
This is a huge blocker for my team at present.
I have a minimal reproduction available at 2.2.0, 2.3.0 and 2.15.0 that I can put in a repo if you need a sample for this

I have a minimal reproduction available at 2.2.0, 2.3.0 and 2.15.0 that I can put in a repo if you need a sample for this

@gavinbarron Really appreciate it if you can share the minimal repro!

I have a minimal reproduction available at 2.2.0, 2.3.0 and 2.15.0 that I can put in a repo if you need a sample for this

@gavinbarron Really appreciate it if you can share the minimal repro!

Done: https://github.com/gavinbarron/app-inisghts-issue-reproduction
To make it easier I made branches of various version combinations and the behavior I saw, it's all outlined in the ReadMe on the repo for you.
Hope this helps

Any update on this issues? This has been going on for months since Nov 2020 why still no fix?

Yeah, also experiencing this issue. Is there any updates on this issue? their provided fix on the other ticket is to remove the tracing listener which is not a real fix. can somebody who manages this take a look on this please?

I have a minimal reproduction available at 2.2.0, 2.3.0 and 2.15.0 that I can put in a repo if you need a sample for this

@gavinbarron Really appreciate it if you can share the minimal repro!

Done: https://github.com/gavinbarron/app-inisghts-issue-reproduction
To make it easier I made branches of various version combinations and the behavior I saw, it's all outlined in the ReadMe on the repo for you.
Hope this helps

on this part:
feature/app-insights-2.15.0-no-trace: Removed Microsoft.ApplicationInsights.TraceListener and upgraded System.Diagnostics.DiagnosticSource to 5.0.1 and Visual Studio is able to launch a debugging session.
somebody said it will not call the app insights anymore when removing that part from the config
is it confirm?

I'm not exactly sure what you're asking, but the feature/app-insights-2.15.0-no-trace will log requests, dependencies, etc. to App Insights when the ApplicationInsights.config is set up with an <InstrumentationKey>your iKey here</InstrumentationKey> element.
The thing you're giving up with this configuration is the capturing of any Trace logging, e.g. System.Diagnostics.Trace.WriteLine calls which can be a pretty big thing to give up.

We found that disabling IntelliTrace seems to prevent this issue in VS 2019 Enterprise.
Hopefully a proper fix is available soon.

May I know if version 2.13.x also has this issue? Its dependency of pnpcore.

This issue just started happening after I moved my App Service to P1V2. I can no longer use Remote Debugging and this issue pops up when I try to debug locally. Since I can't debug, I am totally stuck!

any updates here?

Ah . . . so updating System.Diagnostics.DiagnosticSource from 4.7.1 to 5.0.0 was a bad idea!
I see reports from back from November of last year in 2020.
Why has this been a known issue for over 9 months without a fix?

It's not perfect, but disabling IntelliTrace does let the debugger work again, until this gets fixed

Update
We still don't know the root cause, but we are investigating with the dotnet runtime team.
We know this is a conflict between VS Debugger & AI Trace Listener.
Please follow this other issue (https://github.com/dotnet/runtime/issues/55696) to track progress.

Slightly better than modifying the Visual Studio setting on each machine is to add the following to affected projects:
        <!-- Enable "Managed Compatibility Mode" to work around debugger incompatibility with Application Insights.
             see https://devblogs.microsoft.com/devops/switching-to-managed-compatibility-mode-in-visual-studio-2013/
             and https://github.com/microsoft/ApplicationInsights-dotnet/issues/2161
            -->
        <DebugEngines>{351668CC-8477-4fbf-BFE3-5F1006E4DB1F}</DebugEngines>

Any update from the owner of app insights?

Any update from the owner of app insights?

https://github.com/microsoft/ApplicationInsights-dotnet/issues/2161#issuecomment-883612856 Please see this comment.

Update from the VS team

This issue has been fixed. It will be released with VS 2022, Preview 4. If there is a large need to have it in VS 2019, we can see about back porting the fix. Let us know.

https://github.com/dotnet/runtime/issues/55696#issuecomment-892178183

Update from the VS team

OK, we have fixed the issue in VS 2019 as well, version 16.11.2. It should be released in the next month or two as our servicing releases come out.

https://github.com/dotnet/runtime/issues/55696#issuecomment-901429033


Weird behavior with 'hover()'

Hi
I took the movement functions that the teleopt module uses, i.e. speed.py.
With that speed module I can give the drone an order to go to a direction using velocity vector, and it keeps moving until I tell it to stop.
How do I tell it to stop? two options, both problematic.

I can set the velocity vector to zeros. It stops, after a drift caused by its movement. But it stops.
I can call the 'hover()' function. That stops the drone immediately which is what I need.

But if I use the second option, when performing another movement on another direction, I still get leftovers from the former movement.

That is not desirable at all...
Is that a bug?

It looks like a bug, @RPS98 any idea on what might be happening?

If you want I can add code and screen recording

If you want I can add code and screen recording

Sure, that will be helpful to reproduce the error.

So here is my DroneInterface:
from as2_python_api.drone_interface_base import DroneInterfaceBase # /opt/ros/humble/lib/python3.10/site-packages/as2_python_api/drone_interface_base.py
from as2_python_api.drone_interface_teleop import DroneInterfaceTeleop

class MyDroneInterface(DroneInterfaceBase):

    class Directions:
        FORWARD=[1,0,0]
        BACKWARD=[-1,0,0]
        LEFT=[0,1,0]
        RIGHT=[0,-1,0]
        UP=[0,0,1]
        DOWN=[0,0,-1]
        ZERO=[0,0,0]

    def __init__(self, drone_id: str = "drone0", verbose: bool = False,
                 use_sim_time: bool = True) -> None:
        super().__init__(drone_id=drone_id, verbose=verbose, use_sim_time=use_sim_time)
        self.motion = DroneInterfaceTeleop()
        self.pose_frame_id='earth'
        self.twist_frame_id='earth'

    def hover(self):
        """Hover."""
        self.motion.motion_ref_handler.hover()

    def move_at_speed_in_plane(self, velocities, height, yaw_angle=0.0, verbose=False):
        """Move at speed."""
        if verbose:
            cprint(f'DEBUG::move_at_speed_in_plane()\tvelocities: {velocities}\theight: {height}', 'light_green')
        self.motion.motion_ref_handler.speed_in_a_plane.send_speed_in_a_plane_command_with_yaw_angle(
                        twist=velocities,
                        height=height,
                        twist_frame_id=self.twist_frame_id,
                        pose_frame_id=self.pose_frame_id,
                        yaw_angle=yaw_angle
                        )

Then I have a wrapper for using the interface:
from MyDroneInterface import MyDroneInterface

class bridge_test:
    def __init__(self):
        rclpy.init()
        self.drone_interface = MyDroneInterface("drone0", verbose=False, use_sim_time=True)
        self.directions_dict = {
            'FORWARD': self.drone_interface.Directions.FORWARD,
            'BACKWARD': self.drone_interface.Directions.BACKWARD,
            'LEFT': self.drone_interface.Directions.LEFT,
            'RIGHT': self.drone_interface.Directions.RIGHT,
            'UP': self.drone_interface.Directions.UP,
            'DOWN': self.drone_interface.Directions.DOWN,
            'ZERO': self.drone_interface.Directions.ZERO
        }

    def hover(self):
        self.drone_interface.hover()

    def go_to_direction(self, direction, speed=1.0, duration=None, verbose=False):
        self.drone_interface.move_at_speed_in_plane(
            velocities=[speed*d for d in self.directions_dict[direction]],
            height=self.height,
            verbose=verbose
            )

        if duration is not None:
            time.sleep(duration)
            ## Option A - set velocity vector to zero
            self.drone_interface.move_at_speed_in_plane(
                velocities=self.directions_dict['ZERO'],
                height=self.height
            )
            ## Option B - use hover()
            self.hover()

Results of using hover():
https://github.com/aerostack2/aerostack2.github.io/assets/15073370/e349d436-473b-4d63-a4b1-2ae3f282dff2
Results of using zero velocity:
https://github.com/aerostack2/aerostack2.github.io/assets/15073370/d56e37bb-4040-4c85-8dde-2d1ced9ae7e9
(You can see at the first movement the leftovers of the former video that uses hover...)

Not sure what it is happening. Also, why are you inheriting from DroneInterfaceBase instead of inheriting directly from DroneInterfaceTeleop? It might not be the issue here but you are duplicating every ros interface in DroneInterfaceBase class

You are completely right.
The reason is that I started to use the DroneInterfaceTeleop module functions only after I build the interface...
Anyway I switched it now to inherit from DroneInterfaceTeleop. Thanks for that.
It seems that the 'hover' phenomena is still exist but much more tolerable, as can been seen.
Still, it is a weird behaviour.
https://github.com/aerostack2/aerostack2.github.io/assets/15073370/9cf98deb-bb5e-408a-b297-8fd5e93b0d44

Hi @OdedHorowits,
This issue should have been fixed in https://github.com/aerostack2/aerostack2/pull/584. Can you test it?

I would change the src code according to the change in that issue, re-compile and report.

So I cant check it since I installed the package using the binaries...
I will try to builld it from src


Authentication logs errors until succeeds in Azure Function

Using the dependency injection as described in the official documentation, an Azure Function running in isolated mode works but the authentication logs many errors before continue with normal execution. These are the logs, it starts attempting to authenticate after line 26, then it logs errors until line 243 when it successfully authenticates with Visual Studio and finally continues the execution in line 261. This is a sample project (branch debugging-di-errors) that can be used to validate the incorrect behavior. This does not happen when creating the client normally using DefaultAzureCredential:
var client = new EventGridPublisherClient(new Uri("https://evgt-pocif-dev-bs2-1.brazilsouth-1.eventgrid.azure.net/api/events"), new DefaultAzureCredential());

@JoshLove-msft all the log information seems to be coming from the extension. Would you be able to comment?

It looks like this issue was also opened in the .NET repo. I've responded there - https://github.com/Azure/azure-sdk-for-net/issues/33642#issuecomment-1412610615

Thank you, Josh.
@elias-rod I'm closing this in favor of the issue Josh has shared, but please let us know if you have any other questions.


Fix broken ErrorDataVolumeNotFound functest

Signed-off-by: Zvi Cahana<EMAIL_ADDRESS>What this PR does / why we need it:
Fix the ErrorDataVolumeNotFound functest which was broken  two-way:

The test relies on the referenced DataVolume to not be created, but uses a utility function (NewRandomVirtualMachineInstanceWithOCSDisk()) that does create it 🤦🏼♂ .
This utility function also happens to Skip() the test when Ceph StorageClass is missing.

The fixed test now makes sure to use a volume with a reference to a DV that doesn't exist.
Release note:
NONE

/assign @iholder-redhat @enp0s3 can you guys take a look at this?

BTW - do we have a lane with ceph storage so we can run it and test it works?

This test doesn't need Ceph to run. It did so on mistake, and this got fixed with this PR.

/hold cancel
Forgot that it will run only once when holded.
Lets track the CI results then


migrate packages/, repo/, finder.sh, install.sh to Adafruit-Occidentalis

Quick sanity check, @toddtreece?
Other repo here: https://github.com/adafruit/Adafruit-Occidentalis

@brennen looks good. up to you if you want to move the occi docs. it would probably be good to only have one set of occi docs to maintain

Yeah.  I'll untangle that.


New Sheet for "Rivers Of London"

Submission Checklist
Required

[x] The pull request title clearly contains the name of the sheet I am editing.
[x] The pull request title clearly states the type of change I am submitting (New Sheet/New Feature/Bugfix/etc.).
[x] The pull request makes changes to files in only one sub-folder.
[x] The pull request does not contain changes to any json files in the translations folder (translation.json is permitted)

New Sheet Details

The name of this game is: Rivers Of London  (i.e. Dungeons & Dragons 5th Edition, The Dresden Files RPG)

The publisher of this game is: Chaosium (i.e. Wizards of the Coast, Evil Hat)

The name of this game system/family is: Rivers Of London (i.e. Dungeons & Dragons, FATE)

[x] I have followed the Character Sheets Standards when building this sheet.

[ ] I have authorization from the game's publisher to make this an official sheet on Roll20 with their name attached.
[ ] This game is not a traditionally published game, but a copy of the game rules can be purchased/downloaded/found at: <   >
[ ] This sheet is for an unofficial fan game, modification to an existing game, or a homebrew system.

Changes / Description
Uploading the sheet we have been using for a while in our own games.

Character Sheet Info Roll20 Internal Use only.


Continued startup speedup

Problem
Startup continues to be slow.
See: https://github.com/neondatabase/neon/issues/4025, https://github.com/neondatabase/neon/issues/4183
Earlier in saga:

#4366
#4368

Summary of changes

pretty the functional improvements from #4366 into utils::completion::{Completion, Barrier}
extend "initial load completion" usage up to tenant background tasks

previously only global background tasks

spawn_blocking the tenant load directory traversal
demote some logging
remove some unwraps
propagate some spans to spawn_blocking

Again this needs to be tested on staging, but there are no really controversial changes here.
Runtime effects should be major speedup to loading, but after that, the BACKGROUND_RUNTIME will be blocked for a long time (minutes). Possible follow-ups:

complete initial tenant sizes before allowing background tasks to block the BACKGROUND_RUNTIME

Checklist before requesting a review

[x] I have performed a self-review of my code.
[x] If it is a core feature, I have added thorough tests.
[x] Do we need to implement analytics? if so did you add the relevant metrics to the dashboard?
[x] If this PR requires public announcement, mark it with /release-notes label and add several sentences in this section.

Checklist before merging

[x] Do not forget to reformat commit message to not include the above checklist

Oh, this is a new one:
ERROR test_runner/regress/test_timeline_delete.py::test_timeline_resurrection_on_attach[release-pg14-True-mock_s3] - AssertionError: assert not ['2023-05-30T12:54:31.842158Z ERROR compaction_loop{tenant_id=2c768f27e47546fad60025da63b54338}: Compaction failed, retrying in 2s: queue is in state Stopped\n']

Those nagging compaction failed ... but I wonder if we should just allow this?

Staging deployment results: https://github.com/neondatabase/neon/issues/4183#issuecomment-1568528482

I do not think that we need barrier to delay spawning of some tasks til some point.

Agreed, the solution here is rather counter-intuitive, and it looks like it shouldn't work. However, I think it works because we get to complete so many tenant activations before WalReceiver (and storage_broker) connections catch up, so it ends up working almost by accident. Of course, it will not work always.
However, as far as simplicity goes, I think this is well balanced for hasty fix.

We just need to reduce number of concurrent task to avoid their influence on page server performance. It cn be naturally doe with one global semaphore and just few lines of code.

If we were to go on this route (compared to what I was thinking about in on the #4183 issue) we would be left with:

global semaphore which might need to be "released" after the limiting phase (initial load) is complete

this is the sort of hack which I'd hope to avoid
could be that no "release" is needed, because (next point)

the single added global semaphore is not all of the ratelimiting story, because there are 2 other semaphores (pageserver config, eviction task)

So instead of a new global semaphore, I am thinking of two phased approach:

delay tenant background tasks further until timeout or all initial logical sizes have been calculated

I think repartition is the worst offender, so I think this would be fine
a timeout of "minutes" would protect us from some obscure wal_receiver technical reason

additionally implement the page_service.rs guided pressure

However, it could be that we are already good with this change.


C# MySqlConnector error on connection

Tested versions
C#, 4.2. Stable, nuget MySqlConnector 2.3.1
System information
C#, 4.2. Stable, Windows 10 Pro, Android 13
Issue description
When connecting to a database via MySqlConnector 2.3.1 on Windows it works flawlessly, but on Android it crashes with an error.
There is a feeling that the conflict is in the safety of Physics2DConstraintSolveIslands.
But again, there is no error on the Desktop and there is also no error in the .Net application on Android without Godot.
There may be an error at the permission level on Android; permissions are selected with a checkmark, but the application does not always ask about their permission during installation.
Here are the first lines of the error:
E 0:00:08:0044 :0 @ Interop+CryptoInitializer..cctor(): BUG: Unreferenced static string to 0: Physics2DConstraintSolveIslands
<C++ source code>core/string/string_name.cpp:127 @ unref()
:0 @ Interop+CryptoInitializer..cctor()
:0 @ Interop+Crypto..cctor()
:0 @ int System.Security.Cryptography.HashProviderDispenser+OneShotHashProvider.HashData(string, System.ReadOnlySpan1[System.Byte], System.Span1[System.Byte])
:0 @ bool System.Security.Cryptography.SHA1.TryHashData(System.ReadOnlySpan1[System.Byte], System.Span1[System.Byte], System.Int32&)

:0 @ System.Byte[] MySqlConnector.Protocol.Serialization.AuthenticationUtility.HashPassword(System.ReadOnlySpan1[System.Byte], string) :0 @ System.Byte[] MySqlConnector.Protocol.Serialization.AuthenticationUtility.CreateAuthenticationResponse(System.ReadOnlySpan1[System.Byte], string)
:0 @ MySqlConnector.Protocol.PayloadData MySqlConnector.Protocol.Payloads.HandshakeResponse41Payload.Create(MySqlConnector.Protocol.Payloads.InitialHandshakePayload, MySqlConnector.Core.ConnectionSettings, string, bool, MySqlConnector.Protocol.CharacterSet , System.Byte[])
:0 @ void MySqlConnector.Core.ServerSession+d__98.MoveNext()
:0 @ void

Steps to reproduce
Install 4.2. Stable mono(C#), add the MySqlConnector 2.3 nuget, try to connect in the standard way, my connection is like this:
const string M_str_sqlcon = "server=xxx .xx .60.80;Port=3306;user id=ХХХ;password=PASSWORD;database=default_db;SslMode=none; AllowPublicKeyRetrieval = True; AllowZeroDateTime=True";

Launch on your Android device.
Minimal reproduction project (MRP)
mysql_test.zip

mysql_test2.zip
Here is a version with a connection to my database, so as not to bother finding a server.
Just unzip and run, you should get lines like:
"rec1 rec2 rec3"

A potential problem in the hash implementation of string_name notwithstanding please never have a database available directly via the internet but always put a (web) API with proper authentication in front of it.
Fetching and sending data via HttpClient would give you a more solid architecture while also solving this issue you are currently having and reducing the size of you APK by not having to pack the MySQL dependencies; win-win-win imho.

A potential problem in the hash implementation of string_name notwithstanding please never have a database available

Thanks for the advice, I perfectly understand the flaws of this method, and I am aware of what I am doing.
I use this scheme exclusively for personal purposes and rapid prototyping, and right now I don’t have the time and money to set up my own server and learn a new web language.
And it’s not required, since I need MySQL more in read mode than direct access. Therefore, everything is decided by user privileges.
In general, thanks for the advice, but unfortunately this does not apply to solving the problem described above. By all indications, there shouldn’t be a conflict, and perhaps solving this problem will reveal a certain chain of bugs.

Thanks for the advice, I perfectly understand the flaws of this method, and I am aware of what I am doing.

Apologies if I sounded condescending - experience levels on the internet differ and I got burned often enough that I now prefer to err on the side of caution even at the risk of annoying a colleague.
End of off-topic :)

May be related to https://github.com/godotengine/godot/issues/84559. C# Android exports use linux bionic which doesn't provide OpenSSL.
Try the suggestion in https://github.com/godotengine/godot/issues/84559#issuecomment-1824365633:

One thing you can try is downloading and extracting https://dl.google.com/android/maven2/com/android/ndk/thirdparty/openssl/1.1.1p-beta-1/openssl-1.1.1p-beta-1.aar and packaging libssl.so and libcrypto.so into the app and see if that helps.

Может быть связано с #84559 . При экспорте C# Android используется Linux Bionic, который не поддерживает OpenSSL.

When building a project without Godot on Android, I looked at the contents of the apk, and the libssl.so and libcrypto.so files you specified are also not there, is this the answer to your suspicion?

Were you using the linux-bionic runtime identifier or android? android doesn't rely on OpenSSL so it doesn't need to include libssl.so or libcrypto.so. Godot uses linux-bionic but doesn't package OpenSSL so if that's your issue then it's a duplicate of https://github.com/godotengine/godot/issues/84559.
If you are able to package libssl.so and libcrypto.so into the app, then you can see if that's the issue. If it is it would confirm that it's a duplicate of https://github.com/godotengine/godot/issues/84559.
I'm not very familiar with MySql but I think the SslMode option only specifies the protocol used to connect to the database and not whether SSL will be used at all.

Were you using the linux-bionic runtime identifier or android? android doesn't rely on OpenSSL so it doesn't need to include libssl.so or libcrypto.so. Godot uses linux-bionic but doesn't package OpenSSL so if that's your issue then it's a duplicate of #84559.

You may be right, to be honest, I don’t know how to attach the files you specified to the created apk, although I understand that this is just an archive, but I previously experimented with assembling the apk, but none of the apk were installed on the Android platform.
If anyone has the opportunity and skill, I would be glad to hear the results of the experiment. Above is a project that connects to an existing database and you don’t need to write anything.

I've tried exporting an APK with libssl.so and libcrypto.so included and it fixed the issue for me, so I'll close this issue to consolidate in https://github.com/godotengine/godot/issues/84559.
There's also a new PR that changes the way Android exports work to use the android runtime identifier instead of linux-bionic. This means we can use the JNI for crypto support, so it should fix the issue without you having to manually include the libssl.so and libcrypto.so libraries in the APK.

https://github.com/godotengine/godot/pull/88803

Unfortunately, it still crashes even though I specified the build option via gradle. And also libssl.so and libcrypto.so are missing from the assembly.
Godot 4.3 dev 5

@Zamir7 The current Godot releases still use linux-bionic for Android exports and require that you add libssl.so and libcrypto.so yourself, they won't be added automatically by Godot. You'll have to wait until https://github.com/godotengine/godot/pull/88803 is merged or package the missing libraries in the APK.


Only query for xcode version on macs

This is a great change. I added one comment before it's ready 👍

Oh right, operator precedence.

That's great, tests are passing now, thanks 👍


Upgrade sbt plugins.

Most notably, use the latest sbt-scalatex unblocking us from wiping out
the scalameta/maven bintray repository.

LGTM


Palette Options Are Not Functional in Canvas Editor

Description:
The palette options in the canvas editor are not operational, affecting various features essential for drawing. Users will be experiencing difficulties with selecting brush sizes, shapes, colors, and other drawing tools. This limitation significantly hinders their ability to create and customize their artwork, undermining the primary goal of the website, which is to provide a platform for users to draw effectively.
Steps to Reproduce:
Open the canvas editor on the website.
Attempt to access the palette options for brush size, shape, color, etc.
Test the selection and application of different options to see if they respond correctly.
Expected Behavior:
Users should be able to select and apply various options from the palette seamlessly, enabling them to draw and customize their projects effectively.

@vishanurag would like to work on it if you can assign me would be great

@vishanurag please review my PR once and add appropriate labels and level for gssoc!!


Add test OLP RDM API manufacturer website test

As soon as https://github.com/OpenLightingProject/rdm-app/pull/138 is merged, add a test that uses the API to check if our manufacturer websites are the same as theirs.

Well it's merged, but we still need to work on improving our speed of deployment...
Feel free to test against the offline version anyway.

The URLs are deployed, but there's currently no API to access them, only the web pages:
http://rdm.openlighting.org/manufacturer/display?manufacturer=31344
I've started working on improving the API, but no PR yet...


Service locale labels should not be empty

It is currently possible to define a new workflow with a locale, but that locale label can be empty. On the portal side, this results in a button with no text on it. Make locale labels a required field if a locale is created.

The add button will now remain disabled until at least 1 locale label is created.


Workshop Choice Bar

As
user
I want to
have a slidebar with example workshop pictures and Topics for inspiration
In order to
know what kind of ws i could ask for
Acceptance Criteria:

[ ] I have a display of options, ideally with pictures and a Title (topic)
[ ] OPTIONAL this could be in form of a slidebar

@hendraet Please have a look on the screener attached. Is the first orange panel fitting to your expectations?

@radscheit Sorry, but I don't see an attachement

@hendraet This is already a PR #438. Please check it, since the acceptance criteria are letting room for interpretation.

@hendraet ?

@julisa99 @radscheit Told Matthias that he should merge it into dev so I can review it.

@julisa99 @hendraet Sorry I was distracted by my birthday and my final presentation for Dschool that will take place today. I will push it this night. :)

@julisa99 @hendraet I just noticed that i already pushed it days ago: https://github.com/hpi-swt2/workshop-portal/pull/438 :)

@radscheit really? I don't see it

@julisa99 Wo hast du es dir denn angeschaut?

@radscheit Sorry, but I have to reopen this issue. The autoscrolling is a nice idea but is just annoying when you try to read the text. Please remove it.

@radscheit an please exchange the text. Just copy them from here: https://hpi.de/open-campus/schuelerakademie/projekttage.html

@hendraet As an alternative for dropping autoplay, i could offer stopAutoplay on mousehover?

Passt


Remove misleading arguments in header examples

The examples and demo code for using a custom account_link were misleading as they continued to pass arguments to the method as well as providing a block.
When providing a block this arguments are ignored. Updated the example and demo code to reflect this.
Spotted whilst pairing with @pksterling

@pksterling If you are interested in reviewing this next week you can see the change in this preview app https://64bab3b3562722058a14cc6c--citizens-advice-design-system.netlify.app/components/header/#account-link-slot and/or I can show you how to run the design system source locally if you are interested at some point.


Update Doxyfile.in

test12

@jonastest00 has been requested to review this pull request as specified in the REVIEWERS file.


[Question] how to hide Cody settings icon

How to hide Cody settings icon on VSCode status bar?

my Bad :)


[cpr] Changed library linkage to static.

The CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS flag prevents cpr from being built with a /GL and /LTCG toolchain.
Tested with this:https://github.com/qis/toolchains/blob/075a467b671cc08b3f94c1f37ef503bc1627f2fe/windows.cmake
@vicroms Please forgive me for pinging you specifically, but this issue is very similar to the fmt one we resolved recently. This time I see no way to make it shared.
I tried just removing CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS but it failed to build since cpr does not explicitly use __declspec(dllexport).
Did I miss something? Are these kinds of PRs OK with the vcpkg team? In my opinion, it's quite important to support /LTCG builds since it may attract game developers and other performance oriented users that might contribute to the project.

P.S.: Is it OK if I do the same for the tiff port? Vcpkg doesn't set CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS, but the library itself does.

Hi @qis
It is OK to remove CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS.
It is a hack to get dynamic libraries, that causes more trouble than it is worth. We'll try to disallow it from being used in other ports in the future.
Now, for some reason no CI build was triggered for this PR, so I'll queue a build manually and merge it once it's done.


Warning logs can be seen during the server startup

We can see following warning logs during the server startup.
[2019-03-23 03:20:20,648]  WARN {org.wso2.carbon.idp.mgt.IdentityProviderManager} -  SAMLMetadataValidityPeriod in identity.xml should be a numeric value
[2019-03-23 03:20:20,648]  WARN {org.wso2.carbon.idp.mgt.IdentityProviderManager} -  SAMLMetadataSigningEnabled in identity.xml should be a boolean value

This issue is being closed due to extended inactivity. Please feel free to reopen it if further attention is needed. Thank you for helping us keep the issue list relevant and focused!


Implement Scheduling Algorithm

Task Overview
This task focuses on developing a scheduling algorithm to match customers' service requests with service providers based on their expertise and availability. The algorithm will use the data provided by the service providers (e.g., expertise, certifications) and customer service requests to assign the right technician to each job.

Fork the Repository
Fork the LapProFix repository to your local machine.

Install Packages
Navigate to the project directory and install the necessary packages using:
bash
npm install i

Run the Project
bash
npm run dev

Understand the Data

Review the service provider data, including:

Fields of expertise (e.g., display repair, keyboard issues, cleaning, upgrades).
Certification and authorization status.
Number of technicians available.

Understand the customer service requests from the cart, which will include the type of service needed (e.g., display repair, keyboard fix).

Design Scheduling Algorithm

Create an algorithm that matches the customer’s service request with a service provider based on:

Expertise of the service provider.
Availability of technicians.
Certification/authorization status.
Customer’s location (optional, based on service proximity).

Optimize Scheduling

Ensure that the algorithm efficiently assigns jobs to service providers based on availability and specialization to minimize customer wait times and balance workloads.

Implement the Algorithm

Integrate the scheduling logic with MongoDB to fetch provider data and customer requests.
Match customers to the most qualified and available service provider for each job.
Provide real-time updates to customers about the status of their technician assignment.

Expected Outcome

The scheduling algorithm efficiently assigns service requests to the most appropriate service provider based on expertise and availability.
Real-time updates are provided to both customers and service providers about job assignments.
The system ensures a balanced workload distribution among technicians and minimizes wait times for customers.

@VishalAadiith
I’d love to work on the scheduling algorithm task. With 2 years of development experience and a solid foundation in Operating Systems and Data Structures & Algorithms, I believe I can contribute effectively to this feature. Could you please assign me the issue?

@TecHAyusH6476 You can start working on it. But make sure if you have any doubts clear it beforehand. As the services pages are still in progress, you can assume these criteria's (e.g., display repair, keyboard issues, cleaning, upgrades).

@VishnuAmit Sounds good! I'll start planning and let you know if I need any additional information

@TecHAyusH6476 Any updates?

@TecHAyusH6476 Yeah have been working on it
Took a while to setup the repo as my node version was conflicting
I have gone through initial phase for algo

Good. Just wanted to know what's your plan? If you come up with one, do mention here.


Multi user mode

Currently, Oxy is designed to be run as a user-privileges user. Not running as root, ever, has some pretty nice security benefits. However, there are some advantages to being able to accept multiple user logins.
#26 <- multiple user-privileged processes & connections are distributed out to each user-privilege process by a gateway server has some merits
#5 <- Locking command execution down to "su - " and then su does the password prompting is also an idea.
Probably I'm ultimately going to make a mode where oxy can run as root and setuid itself down to different users, but I don't think that's the most ideal setup.
The most ideal setup is single-user hosts, probably. >.>

Really, there's a kinda separate prerequisite issue inherent in this which is: fuller-featured key management. I don't know if I want servers to support heterogeneous knock data or not... probably not. But the part where host keys and client keys are the same right now is definitely a bummer.


Warn if user profile isn't linked to a party

If there is no party associated with a user, the user should be warned that their profile is incomplete. Many tasks require a party ID (e.g., create activity).

Is this still an issue since I see that we create a Party if necessary in the Create User API.

We could add a warning to Store UserID On Session if PartyId is missing.

Added SCD to Store UserID on Session if PartyId is missing.


Fast State Changed notifications

Summary: Forwarding State Change notification immediately in rialto server manager
MSE/EME cleanup before sending notification in Rialto Server
Type: Feature
Test Plan: UT
Jira: RIALTO-4

https://jenkins.code.rdkcentral.com/job/github-triggered/30318/ started

https://jenkins.code.rdkcentral.com/job/build-component/66879/ started.

https://jenkinsrdkm.cmf.code.rdkcentral.com/job/github-triggered/299/ started

https://jenkinsrdkm.cmf.code.rdkcentral.com/job/build-component-platform/483/ started.

Smoke tests for ['build-rpi-hybrid-refapp2'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/552/

Smoke tests for ['build-rpi-hybrid-wpe-dunfell'/'build-rpi-mc-wpe-dunfell'] added.
https://jenkinsrdkm.cmf.code.rdkcentral.com/job/test-components-flow/553/