i'm facing a very disappointing issue with the machine where Tableau server is installed.
I've developed a script in R that run perfectly in my computer (with Rserve in localhost). That script also run perfectly with an Rserve instance installed in a linux enviroment in another machine (AWS cloud).
I've tested that another PC can run these script succesfully.
But when i try to run the same workbook, with the very same script from the Tableau Server machine (also in the same AWS cloud), i get this error, both from the tableau desktop installed here and from the web portal where the workbook is published:
Unable to complete action
IPC_SocketConnection::Read(len=16, connection=xxx.xxx.xxx.xxx:yyyyy->zzz.zzz.zzz.zzz:wwww): An error has occurred in IPC_Socket::Recv(len=16): The semaphore timeout period has expired
The route between the tableau server machine and Rserve machine are fully opened, they can see each other, fully tested with telnet.
On tableau desktop in the server machine, under External Service Connection menù, the Rserve connection is succesful.
Everywhere we have installed the same version of Tableau, 2018.3.2 (20183.18.1219.1533) 64-bit.
After some investigation, i've discovered that when i pass some argument in the script with the ATTR() aggregation, i get that error.
I've tried to write some very basic script, also with sample superstore dataset, reproducing perfectly that error.
When i don't use the ATTR(), the scripts are ok.
I repeat, when i launch that script from my computer using the external Rserve machine, everything runs fine.
When i try to open the same workbook on the Tableau server machine, these scripts failed.
It seems that when i have a few of rows (<=23) in the table where i use the script, it runs.
when i increase the number of rows (by opening a filter on a dimension) the script fail.