Z-prismatic-joint can't work. which makes the body shaking and overcome the gravity

<link name="z_block">
    <origin xyz="0 0 0" rpy="0 0 0" />
          <visual>
      <origin
        xyz="0 0 0"
        rpy="0 0 0" />
      <geometry>
        <cylinder length="0.02" radius="0.02"/>
      </geometry>
    </visual>
  </link>

  <joint name="z_prismastic_joint" type="prismastic">
    <origin xyz="0 0 0" rpy="0 0 0" />
    <parent link="z_block"/>
    <child link="roll_block"/>
    <axis xyz="0 0 1"/>
    <!-- <dynamics damping="0" friction="0"/> -->
    <limit lower="-0.05" upper="0.05" effort="1000" velocity="10"/>
  </joint>

if z-joint is set as “prismatic”, xy-prismatic and rpy joint don’t work (all of them are passive joint)
Once the z-joint is set as “fixed”, xy-prismatic and rpy revolve joint can work