Mysql throwing table full error when adding new column
tmp_table_size and max_heap_table_size are useful for certain complex SELECTs, not for ALTER.  It is not wise to raise either of those above 1% of RAM.
ALTER works in one of two ways, depending on version and the specifics of the query.

Copy the table over, making the change as it goes.  This seems to be what is happening.
Certain optimizations that avoid needing to copy the table.  It seems that this option was either not available due to using an old version or the complexity of the ALTER.

(Please provide the version of MySQL and the text of the ALTER.)
The &quot;copy&quot; method needs disk space to make a full copy of the table, then it does something like RENAME TABLE to swap it into place.  In your case, there needed to be about 30GB free on disk to perform the Alter.  Without the space, you get that error.
It may be that that space needs to be in the &quot;tmpdir&quot;.  Could it be that that is a separate disk partition, and that partition is too small?
At the time of running the Alter, what was the value of innodb_file_per_table?  If it was OFF (or 0), then you have a nasty problem -- ibdata1 would be expanded by the 30GB, and not shrunk back.  You may have that table so larger that the disk is full.  Ouch.
Since you mentioned 844MB and 3TB, I would guess that that setting was ON (or 1).  That is, your 30GB table was probably a .ibd file on disk.  And another 30GB file was being built, but disk space ran out.
Please provide more info (as requested above); we may be able to help you find a not-too-painful way out of your predicament.
(As for SO vs dba.SE -- There are a zillion and one questions on SO; no human can even glance at all the questions, especially those that have only one tag.  No traction =&gt; no responses.)