Why is my membership contribution page not generating a contribution or transaction?
The symptom was caused by a misconfigured membership priceset. Specifically, it had a price field with an assigned membership type that had been disabled.

If you want to check your database for a similar issue, you can use this sql:

select pf.label,fv.id,fv.price_field_id,fv.is_active,fv.label,mtype.name,mtype.is_active from civicrm_price_field_value fv left join civicrm_membership_type mtype on fv.membership_type_id = mtype.id left join civicrm_price_field pf on pf.id = fv.price_field_id where fv.membership_type_id > 0 and fv.is_active = 1 and mtype.is_active != 1;

If that sql returns any rows, you probably want to disable the corresponding price field values in the price field labelled by the first column of the results.