Umpfack errors with periodic boundary and slightly large mesh in 3D problem

I’m solving a 3D heat problem. This is a minimal working version of the code:

load "msh3";	

func T0 = x < .5;

int p = 10;

mesh3 dominio = cube(p, p, p);

fespace Vh(dominio, P2,
	periodic = [ [1, x, z], [3, x, z], [2, y, z], [4, y, z], [5, x, y], [6, x, y] ]
);

Vh T = T0, v, Tant;

real dt = 0.1;

problem termico(T, v)
    = int3d(dominio)(
          T * v / dt
        + (
              dx(T) * dx(v)
            + dy(T) * dy(v)
            + dz(T) * dz(v)
        )
    )
    + int3d(dominio)(
        - Tant * v / dt    		
    )
;


for(real t = 0; t < 30; t += 5){
	Tant = T;
	termico; 
	plot(T);
}

This code runs OK. But if I raise the number of points on the mesh (for example: p = 20 instead of p = 10), then the following error occurs when solving each iteration:

Error umpfack umfpack_di_numeric  status  -1
Error umfpack_di_solve  status  -3

If I remove the periodic condition, then no error occurs. What might be happening?

I am using version v4.5-18-gcf799e13, installed from the deb package available in freefem.org and Debian 10.

Use another solver, like MUMPS, or even UMFPACK64.

Indeed, using UMFPACK64 solves the problem. Thanks!

solver UMFPACK64,May it be used to solve PDE in complex fields?