Program: 42130
Project: 42130
Buggy source:
public static void postUpdateBlock(World world,BlockPos pos){
  int i1=(pos.getZ() & 15) << 4 | (pos.getX() & 15);
  Chunk chunk=world.getChunkFromBlockCoords(pos);
  try {
    int[] precMap=(int[])field_Chunk_precipitationHeightMap.get(chunk);
    if (pos.getY() >= precMap[i1] - 1) {
      precMap[i1]=-999;
    }
  }
 catch (  Exception e) {
  }
  int j1=chunk.getHeightMap()[i1];
  boolean flag=pos.getY() >= j1;
  IBlockState newState=chunk.getBlockState(pos.getX() & 15,pos.getY(),pos.getZ() & 15);
  Block newBlock=newState.getBlock();
  int k2=255;
  if (flag) {
    chunk.generateSkylightMap();
  }
 else {
    int j2=newBlock.getLightOpacity(newState,world,pos);
    try {
      if (j2 > 0) {
        if (pos.getY() >= j1) {
          methodHandle_Chunk_relightBlock.invokeExact(chunk,pos.getX() & 15,pos.getY() + 1,pos.getZ() & 15);
        }
      }
 else       if (pos.getY() == j1 - 1) {
        methodHandle_Chunk_relightBlock.invokeExact(chunk,pos.getX() & 15,pos.getY(),pos.getZ() & 15);
      }
      if (j2 != k2 && (j2 < k2 || chunk.getLightFor(EnumSkyBlock.SKY,pos) > 0 || chunk.getLightFor(EnumSkyBlock.BLOCK,pos) > 0)) {
        methodHandle_Chunk_propagateSkylightOcclusion.invokeExact(chunk,pos.getX() & 15,pos.getZ() & 15);
      }
    }
 catch (    Throwable t) {
    }
  }
  world.checkLight(pos);
  markBlockForUpdate(world,pos);
  if (!world.isRemote) {
    world.neighborChanged(pos,Blocks.AIR,pos);
    world.neighborChanged(pos,newBlock,pos);
    world.notifyNeighborsOfStateChange(pos,newBlock,false);
    if (newState.hasComparatorInputOverride()) {
      world.updateComparatorOutputLevel(pos,newBlock);
    }
  }
}

Fixed version (ground truth):
public static void postUpdateBlock(World world,BlockPos pos){
  int i1=(pos.getZ() & 15) << 4 | (pos.getX() & 15);
  Chunk chunk=world.getChunkFromBlockCoords(pos);
  try {
    int[] precMap=(int[])field_Chunk_precipitationHeightMap.get(chunk);
    if (pos.getY() >= precMap[i1] - 1) {
      precMap[i1]=-999;
    }
  }
 catch (  IllegalAccessException e) {
    throw new RuntimeException(e);
  }
  int j1=chunk.getHeightMap()[i1];
  boolean flag=pos.getY() >= j1;
  IBlockState newState=chunk.getBlockState(pos.getX() & 15,pos.getY(),pos.getZ() & 15);
  Block newBlock=newState.getBlock();
  int k2=255;
  if (flag) {
    chunk.generateSkylightMap();
  }
 else {
    int j2=newBlock.getLightOpacity(newState,world,pos);
    try {
      if (j2 > 0) {
        if (pos.getY() >= j1) {
          methodHandle_Chunk_relightBlock.invokeExact(chunk,pos.getX() & 15,pos.getY() + 1,pos.getZ() & 15);
        }
      }
 else       if (pos.getY() == j1 - 1) {
        methodHandle_Chunk_relightBlock.invokeExact(chunk,pos.getX() & 15,pos.getY(),pos.getZ() & 15);
      }
      if (j2 != k2 && (j2 < k2 || chunk.getLightFor(EnumSkyBlock.SKY,pos) > 0 || chunk.getLightFor(EnumSkyBlock.BLOCK,pos) > 0)) {
        methodHandle_Chunk_propagateSkylightOcclusion.invokeExact(chunk,pos.getX() & 15,pos.getZ() & 15);
      }
    }
 catch (    Throwable throwable) {
      throw new RuntimeException(throwable);
    }
  }
  world.checkLight(pos);
  markBlockForUpdate(world,pos);
  if (!world.isRemote) {
    world.neighborChanged(pos,Blocks.AIR,pos);
    world.neighborChanged(pos,newBlock,pos);
    world.notifyNeighborsOfStateChange(pos,newBlock,false);
    if (newState.hasComparatorInputOverride()) {
      world.updateComparatorOutputLevel(pos,newBlock);
    }
  }
}