Well since I'm not hearing anything about these issues, I'm starting to do some troubleshooting. I have placed some database inserts in the _get_expiration_date function in uc_roles.module, so I can see what's being written to the DB.
When I process a transaction, the function is called twice, when I'm sure it should only be called once. In the database, I get the following two writes for a one month subscription:
+1 month 1227385170 (Nov 22, 2008)
+1 month 1229977170 (Dec 22, 2008)
So the routine in uc_roles adds one month to today's date (Nov 22) as it should, *then* it returns and adds another month to Dec 22, getting us the end result of Jan 22 as the role expiration date.
Obviously something wrong here!
